EvolvePy is a Python module created to allow the easy creation and execution of evolutionary algorithms.
Documentation: EvolvePy's documentation.
Presentation video (Portuguese, click on the image):
(Links to example using the feature)
- Allows to create complex individual generators using different strategies:
- Crossover (one-point, n-point, mean)
- Mutation (sum, multiplication, binary)
- Dynamic mutation
- Elitism
- Randomic predation
- Incremental evolution
- Define individuals with different chromosomes, with different types, ranges, sizes and parameters in the generator.
- Evaluate individuals using simple functions or multiple processes.
- Fitness cache to avoid evaluate the same individual several times.
- Fitness functions with different scores, which can be aggregated with different strategies.
- Evaluate the same individual several times to avoid noise.
- Log the evolution data to analyze later.
- Integrations with other modules:
- Wandb
- Tensorflow/Keras
- Gym
- Unity ML Agents (using Gym)
-
EvolvePy can be installed using pip:
pip install --upgrade pip pip install evolvepy
-
For install with all integrations dependecies (gym, tensorflow, wandb, gym_unity):
pip install --upgrade pip pip install evolvepy[all_integrations]
-
For installing from the repository:
git clone https://github.com/EltonCN/evolvepy cd evolvepy pip install --upgrade pip pip install .
The "examples" folder have a lot of examples of how to use EvolvePy.
Created by students from Unicamp's Institute of Computing (IC-Unicamp) as a project for the evolutionary systems subject at ICMC-USP, taught by prof. Eduardo do Valle Simoes.