Evolute – evolutionary algorithm toolbox for Python – reddit discussion
https://github.com/csxeba/evolute
Evolute is a simple tool for quick experimentation with evolutionary algorithms for numerical optimization.
It defines a population of individuals, represented as floating point vectors, and applies a configurable set of evolutionary operators to them in a predefined order.
The order is the following:
- Selection: a subset of individuals are discarded, depending on their fitness value
- Reproduction: the discarded individuals are replaced by new individuals, somehow generated from the survivors
- Mutation: mutate some of the individuals
- Update: update the fitnesses of the individuals
Some nomenclature:
-
individual: a single member of the population.
-
genotype: refers to an individual in the encoded state. Evolute encodes information in floating point vectors.
-
locus: a member of a genotype (a single scalar in the vector)
-
phenotype: refers to an individual in the decoded state. In the case of neuroevolution, this would be a neural network object, which is encoded as a genotype. Evolute is not doing any genotype – phenotype conversion, this has to be implemented by the user in the fitness calculation.