Implementation of standard, migration and diffusion models of genetic algorithms (GA)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
2.7
benchmarking
docs
examples
geneticalgs
tests
time_complexity
.gitignore
.travis.yml
LICENSE
MANIFEST.in
README.rst
goals.md
project_summary.pdf
setup.cfg
setup.py

README.rst

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

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.