Home

Code

Genetic Algorithm code Version 1.2 (Not yet available)
Notes on version 1.2 (the latest version):
New features have been added to visualization.py enabling views of slices of higher dimensional fitness landscapes.
Speed has been increased by using cython and also storing rather than recalculating certain values.
A setup script has been added. This will need to be run with ./setup.sh before using the GA. This script creates and compiles cython files, which are OS specific.
The README is greatly expanded and improved.
Another bug/typo in Whitley's function F9 has been fixed.
Feel free to email me with any questions, concerns, or great successes you have!


Genetic Algorithm code Version 1.1
Notes on version 1.1 (the latest version): The code has been cleaned up to reduce the number of arguments in a variety of functions. The GA modules have been cleaned up so that only non-buggy versions are included.
Typos in the implementations of F9 Whitley's function and F7 Schwefel's function have been fixed.
exerciser.py, which can be run as "python exerciser.py" will run a series of basic tests on the code.
Other improvements have been made. A simple README is now included. Feel free to email me with any questions, concerns, or great successes you have!


Genetic Algorithm code Version 1.0
Notes on version 1.0: A tarball of the complete code for the genetic algorithm written in python can be found through the above link. The benchmark functions are not implemented in this tarball as they are described here. The implementation is, however, very similar. Specifically, the benchmark functions have been modified to all be maximization functions, despite the fact that many are described as minimization functions on this website.

There are also some oddities to how the algorithms are named. For example, the classic GA is called classicGA2. Also classicGA.py and classicSteady0.py are known to be buggy. Don't use these.

The GRUNGE (aka randomized gaussians) benchmarks must be pre-compiled in cython due to their slow run times. In this version, only 10-dimensional 20 and 200 gaussian landscapes for random seeds 0 through 99 have compiled. Furthermore, the cython files are OS specific. The ones in the tarball will only run on linux-x86 64bit 2.7 machine. However, code is included in the tarball for generating GRUNGE cython files for your own machine in the folder randomGauss. Email me with any questions, concerns, or great successes you have!


Optimization Algorithms

Generic Genetic Algorithm

Steady State Genetic Algorithm

Select Down to Size

Lonely Mutant

Every Man is an Island

Hill Climber

King of the Hill