d911: Evolute – evolutionary algorithm toolbox for Python

Evolute – evolutionary algorithm toolbox for Python – reddit discussion


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:

  1. Selection: a subset of individuals are discarded, depending on their fitness value
  2. Reproduction: the discarded individuals are replaced by new individuals, somehow generated from the survivors
  3. Mutation: mutate some of the individuals
  4. 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.