1 #ifndef GRAIL_MUTATION_H
2 #define GRAIL_MUTATION_H
16 enum class MutationSelectionType
25 Mutation(
double mutationPhaseRate = 1.0,
double mutateIndividualRate = 0.09,
double mutateChromosomeRate = 0.5,
bool mutateBothParentsAndChildren =
true, std::mt19937_64::result_type seed = std::random_device{}());
29 virtual void Perform(
const std::vector<std::unique_ptr<EvoScript>>& parentPopulation,
const std::vector<std::unique_ptr<EvoScript>>& childrenPopulation);
31 std::vector<std::unique_ptr<EvoScript>> populationAfter{};
47 MutationSelectionType RandomResolutionTypeForIndividual = MutationSelectionType::SELECT_P_OF_N;
48 MutationSelectionType RandomResolutionTypeForChromosome = MutationSelectionType::SELECT_P_OF_N;
51 std::mt19937_64 randGen;
53 virtual void MutateIndividual(
EvoScript& individual);
Definition: EvoScript.hh:13
Definition: IEvoParam.hh:12
Definition: Mutation.hh:23
double MutateIndividualRate
Definition: Mutation.hh:38
double MutateChromosomeRate
Definition: Mutation.hh:42
bool MutateBothParentsAndChildren
Definition: Mutation.hh:45
double MutationPhaseRate
Definition: Mutation.hh:34