alogos.systems.dsge.mutation
¶
Mutation functions for DSGE.
Functions¶
|
Change randomly chosen integers to new random values with some restrictions. |
|
Change randomly chosen integers to new random values with some restrictions. |
Detailed object descriptions¶
- alogos.systems.dsge.mutation.int_replacement_by_probability(grammar, genotype, parameters=None)[source]¶
Change randomly chosen integers to new random values with some restrictions.
Restrictions on what can be mutated according to the 2018 paper:
A randomly chosen gene needs to have more than one option for expansion.
A randomly chosen integer needs to be used in the genotype-to-phenotype mapping.
The maximum tree-depth needs to be respected.
References
Software implementations by the authors of the approach
Python: dsge
core/sge.py:
def mutate(p)
is the implementation of the mutation operator
Papers
Lourenço et al. in 2018: Structured Grammatical Evolution: A Dynamic Approach (DSGE)
p. 145: “The mutation operator is restricted to integers that are used in the genotype to phenotype mapping and changes a randomly selected expansion option (encoded as an integer) to another valid one, constrained to the restrictions imposed by the maximum tree-depth. To do so, we first select one gene. Then, we randomly select one of its integers and replace it with another valid possibility. Note that genes where there is just one possibility for expansion are not considered for mutation purposes.”
- alogos.systems.dsge.mutation.int_replacement_by_count(grammar, genotype, parameters=None)[source]¶
Change randomly chosen integers to new random values with some restrictions.
Restrictions on what can be mutated according to the 2018 paper: - A randomly chosen gene needs to have more than one option for
expansion.
A randomly chosen integer needs to be used in the genotype-to-phenotype mapping.
The maximum tree-depth needs to be respected.
Notes
This mutation operator is not mentioned in DSGE literature, but a straightforward variant of the default procedure.