geneticalgs
===========
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 `__.
Implemented features
====================
- 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
- minimization
- maximization
- three parent selection types
- *roulette wheel selection*
- *rank wheel selection*
- *tournament*
- 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
- single-point
- two-point
- multiple point up to uniform crossover
- elitism may be turned on/off (the best individual may migrate to the next generation)
Content description
===================
- **/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
Requirements
============
- python 3.5+
- `NumPy `__
- `bitstring `__
- `sphinx `__ for documentation
- `pytest `__ for tests
Installation
============
Install package by typing the command
``python -m pip install geneticalgs``
If you have problems installing NumPy it is **strongly** recommended to use `Anaconda `__.
Running tests
=============
You may run tests by typing from the package directory
``python setup.py test``
Documentation
=============
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
``make html``
And run doctest
``make doctest``
License
=======
Licensed under `Apache License Version 2.0 `__.