Implementation of standard, diffusion and migration models of genetic algorithms.
Implementation of standard, migration and diffusion models of genetic algorithms (GA) in python 3.5.
Benchmarking was conducted by COCO platform v15.03.
The project summary may be found in project_summary.pdf.
Link to GitHub
Link to PyPI.
Link to Read The Docs.
- standard, diffusion and migration models
- with real values (searching for global minimum or maximum of the specified function)
- with binary encoding combination of some input data
- old population is completely replaced with a new computed one at the end of each generation (generational population model)
- two types of fitness value optimalization
- three parent selection types
- roulette wheel selection
- rank wheel selection
- may be specified mutation probability
- may be specified any amount of random bits to be mutated
- may be specified crossover probability
- different types of crossover
- multiple point up to uniform crossover
- elitism may be turned on/off (the best individual may migrate to the next generation)
- /geneticalgs/ contains source codes
- /docs/ contains sphinx source codes
- /2.7/ contains files converted from python 3.5 to python 2.7 using 3to2 module as COCO platform used in benchmarking supports only this version of python. These files (not installed package geneticalgs) are used in benchmarking. Must be copied in the directory with my_experiment.py or my_timing.py.
- /2.7/benchmark/ contains the following files:
- my_experiment.py is used for running benchmarking. Read more here.
- my_timing.py is used for time complexity measurements. It has the same run conditions as the previous file.
- pproc.py is a modified file from COCO platform distribution that must be copied to bbob.v15.03/python/bbob_pproc/ in order to post-process measured data of migration GA (other models don’t need it). It is necessary due to unexpected format of records in case of migration GA.
- /benchmarking/ contains measured results and the appropriate plots of benchmarking.
- /time_complexity/ contains time results measured using my_timing.py.
- /examples/ contains examples of using the implemented genetic algorithms.
- /tests/ contains pytest tests
Install package by typing the command
python -m pip install geneticalgs
If you have problems installing NumPy it is strongly recommended to use Anaconda.
You may run tests by typing from the package directory
python setup.py test
Go to the package directory and then to docs/ and type
pip install -r requirements.txt
Then type the following command in order to generate documentation in HTML
And run doctest
Licensed under Apache License Version 2.0.