** Privacy and Security Notice **

GA Archives

Source Code Collection

This is an index of source code for implementations of genetic algorithms and other EC methods. Many of these packages are archived here at GA Archive, others are maintained as links. This list is now maintained alphabetically, and by language.

Please note: Many of the links in the GA Archive connect to sites outside of this NCARAI web server. We are not responsible for the content of these other sites.

Index

C/C++
Eiffel
FORTRAN
Java
Lisp
Other (matlab etc.)

---------------------------

C/C++

BUGS.tar.Z
BUGS (Better to Use Genetic Systems) is an interactive program for demonstrating the Genetic Algorithm and is written in the spirit of Richard Dawkins' celebrated Blind Watchmaker software. Written by J. R. Smith (I think). Submitted by: unknown.

dgenesis-1.0.tar.Z
DGENESIS is a distributed implementation of a Parallel Genetic Algorithm. It is based on John Grefenstette's GENESIS 5.0. Each subpopulation is handled by a Unix process and communication between them is handled with Berkeley sockets. The user can set the migration rate, the migration interval and the topology of communication between subpopulations. Tested on DECstations 5000, microVAXen 3100, Sun workstations and PCs running 386BSD 0.1. Submitted by Erick Cantu-Paz (ecantu@lamport.rhon.itam.mx) of the Instituto Tecnologico Autonomo de Mexico.

GAC.shar.Z
GAC: A simple GA (conceptually based on Genesis) written in C. Submitted by William M. Spears (spears@aic.nrl.navy.mil).

GAS
GAS is a steady state genetic algorithm with subpopulation support. It is capable of optimizing functions with a high number of local optima. The parameter setting is based on theoretical results. A paper describing GAS is also available. For more information, contact jelasity@inf.u-szeged.hu or jelasity@usa.net (Submitted by Mark Jelasity, jelasity@inf.u-szeged.hu)

GAucsd14.sh.Z
GAucsd 1.4: Submitted by Nici Schraudolph. Send email to the GAucsd mailing list: (GAucsd-request@cs.ucsd.edu). This file is a shar file and can be unpackd by using "sh".

genesis.tar.Z
Genesis 5.0: This is an updated version of the original Genesis system. Submitted by John J. Grefenstette (gref@aic.nrl.navy.mil). Updated on 9/22/94 with fixes to the f5 function.

GENEsYs-1.0.tar.Z
GENEsYs 1.0: Submitted by Thomas Baeck ( baeck@home.informatik.uni-dortmund.de). Implementation based on Grefenstette's software package GENESIS. It includes extensions for experimental purposes, e.g. different selection mechanisms (linear ranking, Boltzmann selection, (mu, lambda)-selection) and extended recombination operators (m-point, uniform, discrete and intermediate recombination).

genetic2.tar.Z
Genetic-2. Optimization package for the linear transportation problem. Submitted by Zbigniew Michalewicz (zbyszek@mosaic.uncc.edu).

genetic2n.tar.Z
Genetic-2N. Optimization package for the nonlinear transportation problem. Submitted by Zbigniew Michalewicz (zbyszek@mosaic.uncc.edu).

genocop.tar.Z
GENOCOP (GEnetic algorithm for Numerical Optimization for COnstrained Problems). This system is optimizing any function with any number of linear constraints (equalities and inequalities). Submitted by Zbigniew Michalewicz (zbyszek@mosaic.uncc.edu).

libga100.MAC.hqx
libga100 is example C source code on how to write simple applications using genetic algorithms. Originally written in K&R C, the included source has been ported to ANSI C and compiled using MetroWerks CodeWarrior 9. libga100 is originally copyright by Art Corcoran, and this port is distributed with his permission. Submitted by Bernie Wieser, octavian@agt.net.

libga100.tar.Z
GA library written in C. Simple, easy to use, many knobs to turn. Both generational and steady state models supported. Many standard operators. Config file obviates recompilation. Function pointers to all operators. Runs under Unix, DOS, NeXT and Amiga. Free for non-commercial use. Submitted by Art Corcoran, corcoran@penguin.mcs.utulsa.edu.

Lithos
Lithos is a stack based evolutionary computation system. Unlike most EC systems, its representation language is computationally complete, while also being faster and more compact than the S-expressions used in genetic programming. The version presented here applies the system to the game of Go, but can be changed to other problems by simply plugging in a different evaluation function. Source code and Windows executable are provided. Let me know by email if you have any queries or interesting results or modifications. Writen in C. Written and submitted by Russell Wallace rwallace@esatclear.ie.

Link to Matthew's GAlib - A C++ Genetic Algorithms Library
Matthew's GAlib is a C++ library that provides the application programmer with a set of genetic algorithm objects. The library contains list, tree, array, and binary string chromosomes with many initialization, crossover, and mutation operators. It also includes an assortment of selection, scaling, and termination functions as well as support for overlapping and non-overlapping populations. The library has been used on various UNIX platforms as well as MacOS and DOS. Written and submitted by Matthew Wall (mbwall@mit.edu).

paragenesis.tar.Z
A parallel version of Grefenstette's genesis program. This version runs on the CM-200 (Connection Machine). The parallel code was developed and submitted by Mike Van Lent (vanlent@cs.utk.edu).

pga-2.5.tar.Z
PGA, the Parallel Genetic Algorithms testbed -- version 2.5 PGA is a simple testbed for basic explorations in genetic algorithms. Command line arguments control a range of parameters, there are a number of built-in problems for the GA to solve. PGA allows multiple populations, with periodic migration between them, and a range of other options. Developed/maintained by Peter Ross (peter@aisb.ed.ac.uk). The original version by Geoffrey H. Ballinger (geoff@ed.ac.uk).

pgapack.tar.Z
PGAPack is a general-purpose, data-structure-neutral, parallel genetic algorithm library being developed at Argonne National Laboratory. PGAPack V1.0 is now available. (Updated to V1.0 on Feb. 5, 1996.) Submitted by David Levine (levine@mcs.anl.gov).

Link to REGAL3.2
REGAL is a distributed genetic algorithm-based system, designed for learning First Order Logic concept descriptions from examples. REGAL is based on a selection operator, called Universal Suffrage operator, provably allowing the population to asymptotically converge, on average, to an equilibrium state, in which several species coexist. This version of REGAL is provided with a graphical user interface. Written and submitted by Attilio Giordana and Filippo Neri at University of Torino, Dipartimento di Informatica, Italy, (attilio@di.unito.it, neri@di.unito.it).

sga-c.tar.Z
SGA-C: a C-language translation and extension of Goldberg's SGA. Submitted by Rob Smith (rob@galab2.mh.ua.edu).

sga-cube.tar.Z
SGA-Cube: SGA-C with modifications for the nCube hypercube computer (See description for sga-c.tar.Z). Submitted by Rob Smith (rob@galab2.mh.ua.edu).

sgpc1.01.tar.Z
SGPC is a simple Koza and Rice workalike written in C by Walter Tackett and Avi Carmi. Submitted by Avi Carmi (gpc@ipld01.hac.com). UPDATED, 06/08/93

Link to SUGAL GA
SUGAL is written in ANSI C, and runs on PCs and UNIX machines. It features a wide range of operators and datatypes. A particular emphasis has been laid on making SUGAL easy to extend and/or configure, without intervening in the existing source code. Written and submitted by Andy Hunter (cs0ahu@isis.sund.ac.uk). (Link updated 26/4/99).

Eiffel

Link to GAEiffel, a GA class library written in Eiffel.
The library is based on bit-string GAs, and incorporates both generational and steady-state algorithms. The distribution includes a demonstration program for solving some numerical minimization and maximization problems. Written and submitted by I. M. Ikram (ikram@cs.und.ac.za).

FORTRAN

Link to a GA written in Fortran
This is a Genetic Algorithm implementation written in Fortran. This is written and submitted by D.L. Carroll at the University of Illinois Urbana-Champaign (carroll@uiuc.edu).

JAVA

ECJ: A Java-based Evolutionary Computation and Genetic Programming Research System
ECJ is a research EC and GP system written in Java. It was designed to be highly flexible, with nearly all classes (and all of their settings) dynamically determined at runtime by a user-provided parameter file. All structures in the system are arranged to be easily modifiable. Even so, the system was designed with an eye toward efficiency, and it is reasonably competitive with popular C-based GP systems in speed. Written and submitted by Sean Luke, sean@cs.gmu.edu.

The GA Playground
The GA Playground is a general purpose genetic algorithm toolkit where the user can define and run his own optimization problems. The toolkit is implemented in the Java language, and requires (when used as an application, in its full mode), a Java compiler and a very basic programming knowledge (just enough for coding a fitness function). Defining a problem consists of creating an Ascii definition file in a format similar to Windows Ini files, and modifying the fitness function in the GaaFunction source file. In addition, other methods can (optionally) be overwritten (e.g. the drawing method), other classes can be extended or replaced, and additional input can be supplied through Ascii files.

Two JAVA-based GP Applications
Two genetic programming applications using a fully Turing-equivalent subset of Lisp as the representation language. One co-evolves a population to play the game of Go, the other co-evolves two populations of programs, one to analyze the other, in a way that is conjectured to be truly open-ended. Java source code provided. (Submitted by Russell Wallace, manorsof@iol.ie.)

GA Optimizer - Artificial Intelligence Lab, University of Arizona
Here you can see very nice demos of genetic algorithms, and also download the source code as JAVA Applets. Author is Marshall Ramsey (mramsey@ai2.bpa.arizona.edu).

GAJIT - A Simple Java Genetic Algorithms Package
GAJIT (Genetic Algorithm Java Implementation Toolkit) is a rather contrived name for a simple set of classes that I wrote to experiment with genetic algorithms. Based on J. J. Merelo's GAGS C++ classes. J. J. Merelo has kindly granted permission for these classes to be redistributed under the terms of the GNU public licenses. Written and submitted by Matthew Faupel (Matthew.Faupel@ansa.co.uk).

LISP

GAL.shar.Z
GAL: A simple GA (conceptually based on Genesis) written in Common Lisp. Submitted by William M. Spears (spears@aic.nrl.navy.mil).

GECO-v2.0.tar.Z or GECO-v2.0.cpt.bin
GECO is a toolbox for constructing genetic algorithms. It provides a set of extensible classes and methods designed for generality. Some simple examples are also provided to illustrate the intended use. Written in Common Lisp. You can download Unix documentation or Mac Documentation. Submitted by George P. W. Williams, Jr. (george.p.williams@boeing.com).

koza.gp.txt
Koza.gp is a pure (CLtL2) Common Lisp implementation of the Genetic Programming Paradigm, as described in "Genetic Programming" by John R Koza, MIT Press, 1992 (ISBN 0-262-11170-5). Written by John Koza (koza@cs.stanford.edu) and James Rice (rice@sumex-aim.stanford.edu). This code is Copyright (c) John Koza, All rights reserved. U.S. Patent #4,935,877. Other patents pending. Submitted by Howard Oakley (Howard@quercus.demon.co.uk), with permission.

Other

Link to GAOT, GA Optimization Toolbox (for Matlab)
GAOT implements simulated evolution in the Matlab environment using both binary and real representations. (Ordered base representation is in the debugging stage.) This implementation is very flexible in the genetic operators, selection functions, termination functions as well as the evaluation functions that can be used. Papers on toolbox available. Link submitted by Andre Van Moer (avanmoer@ulb.ac.be).

Return to GA Archives home page.

Alan C. Schultz, Naval Research Laboratory, schultz@aic.nrl.navy.mil