Evolife

Jean-Louis Dessalles


  1. Overall description
  2. How to execute Evolife (+ download)
  3. Evolife source files
  4. Evolife classes
  5. Evolife functions
  6. How Evolife works
  7. Create your own Evolife scenario
  8. Use Evolife’s components separately (graphics, ecology, genetic algorithm)



1. Overall description

Evolife has been developed by Jean-Louis Dessalles for scientific and didactic purposes. Initially written in C++, it has been entirely rewritten in Python to improve readability.

The core of Evolife is a genetic algorithm (GA). In a GA, ‘individuals’ represent variant tentative solutions to a problem. Individuals’ behaviour is controlled by a binary vector called genome or DNA. They live, and reproduce ‘sexually’ (though sexes are usually not differentiated). Reproduction is achieved by hybridizing genomes through crossover. Each ‘year’, best individuals are selected for reproduction. Evolife implements two modes of selection:

The first method is more in line with typical GA, whereas the second one looks more ecological.
Scores depend on a ‘problem’ to be solved. A few problems are already coded in the package, such as:

Evolife is modular, which means that its code can be understood locally without full understanding of the whole programme.