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 `__.