alogos.systems.dsge.mutation

Mutation functions for DSGE.

Functions

int_replacement_by_probability(grammar, genotype, parameters=None)

Change randomly chosen integers to new random values with some restrictions.

int_replacement_by_count(grammar, genotype, parameters=None)

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.