|
|
| Features |
 |
|
Requisites
Download
Papers
Products
Links
History |
GAGS is a C++ class library
which contains classes used to program all the elements that constitute
a Genetic Algorithm. As
such, it includes classes for
-
Chromosomes, which are the basic building blocks of a genetic algorithms.
Chromosomes are bit strings, and have a variable length.
-
Genetic operators, which are not part of the chromosome class, but
are outside it; this way, operators are not reduced to mutation and crossover:
there are 9 predefined genetic operators: bit-flip mutation, crossover
(uniform, 1 and n-point, and gene-boundary respecting), creep (change gene
value by 1), remove/reinsert, transpose (permute genes), and kill, remove,
and randomAdd, which alter the length of the chromosome. New operators
can be added and used in the same way as the predefined. Operators can
be applied blindly, or to a certain part of a chromosome.
-
Views, which represent the
chromome and are used to evaluate and print it; views are objects to watch
the chromosome as a float or int array or whatever is needed to evaluate
it.
-
Population, which includes a list of chromosomes to be evaluated,
sorts them when they are; and includes operators for generational replacement,
and a list of genetic operators together with their rates; the number of
chromosomes and the list of operators and their rates can be changed in
runtime.
The evaluation or fitness function can be any C or C++ function, and it
can return any class or type; thus, fitness is not reduced to a floating
point number: it can be an array or any other user-defined type; the only
requirement is that it has ordering operators defined.
Current version is 1.0, which is a conceptual improvement over version
0.95; some things have been dropped, and some others added.
A more complete conceptual description is in a paper
presented in MALFO´96. A tutorial on how to
write GA programs using GAGS is also available online; you can also
download a
PostScript version. Examples from that tutorial are at ftp://geneura.ugr.es/GAGS/gags-examples.tar.gz. |
| Requisites |
 |
|
Features
Download
Papers
Products
Links
History |
GAGS needs and works with the following packages:
-
The GNAT auxiliary package
has to be downloaded first. This is an auxiliary toolbox which includes
a spoof of the STL library. It will probably be dropped soon. To
install it, do it the usual way:
configure, make and
make install, and then install it in a place in which
GAGS can see it. If it is not an standard directory, you will have
to add it by hand to the GAGS Makefile.
-
gcc 2.7.2 or later, which can be downloaded from your closest
GNU site, like ftp://prep.ai.mit.edu,
or ftp://ftp.etsimo.uniovi.es
in Spain.
Do not forget to read the README file before installing. |
|
|
| Download and install |
 |
|
Features
Requisites
Papers
Products
Links
History |
Latest version is at ftp://geneura.ugr.es/GAGS/GAGS-1.0.2.tar.gz.
There is a version for Win95/NT available (see below).
Install gnat before, and then, to compile and install it, type
unix% mkdir GAGS-1.0.2
unix% cd GAGS-1.0.2
unix% gzcat ../GAGS-1.0.2.tar.gz | tar xvf -
unix% configure --prefix=
unix% make
unix% make install
unix% make demo
unix% po , which will compile (with some warnings, but don't pay them much
attention), install, and then compile and run a demo, which runs a genetic
algorithm on a variable-size chromosome. Fitness is just the sum of
the gene values.
More GAGS in the bag
Matthew Faupel has created an incredible Java port of GAGS, called
GAJIT,
which is free and available under the GNU's General Public
License. You can also download the local mirror.
The Windows version, ported by Alex Iskold, is also available from
ftp://geneura.ugr.es/GAGS/VC-GAGS.zip | ; this zip-file includes everything needed to compile GAGS, included examples, and works with Microsoft's Visual C++ 5.0.
| |
| Papers |
 |
|
Features
Requisites
Download
Products
Links
History |
Some cute things have
been made using GAGS; some of them are available online:
|
|
|
| Products |
 |
|
Features
Requisites
Download
Papers
Links
History |
Some products have been developed using
GAGS, mainly in-house, and here they are:
-
DEGAS, which is a DDE (Dynamic Data Exchange) client-server application:
a client is written using GAGS, and DDE servers, which evaluate the fitness
function, can be written using any language that supports Windows DDE.
It is available as the self-extracting archive degas003.exe,
but it is in Spanish. Download instructions
for installing first. Besides the three evaluators (in Visual
Basic, Delphi and BC++) that are bundled in the package, a new,
generic function evaluator, FX, has been
released. FX can parse a generic function, written in a
kind-of inverse polish notation, which will be evaluated by
DEGAS. It's fully documented (in Spanish), and can serve also as
an example of how to build evaluators for DEGAS. FX, as well as
most of the DEGAS code, has been developed by Pedro Castillo
Valdivieso.
-
a GA to play MasterMind; in this Web
page you select a combination and the GA tries to find it out.
|
|
|
| Links |
 |
|
Features
Requisites
Download
Papers
Products
History |
These links are mainly pages that mention gags, or offer similar products.:
- TOLKIEN, Toolkit for Genetics-based applications, a library by Anthony Tang, which very well written, and uses the Standard Template Library.
- Nova
Genetica software, a comprehensive, but withouth much added
value, list of evolutionary sofware.
- Linux
AI/Alife Mini-HowTo, a more comprehensive list of how to
cook your own alife system using Linux, with reviews and
comments, by John A. Eikenberry.
-
Thomas Pedersen, a swedish student-hacker, inspired his
work in GAGS.
-
From
the tcl/tk FAQ. Although the link does not work very well.
-
Mark Smucker's Evolutionary
Computation and Artificial Life Page, it's a little bit further down
the page.
- Matthew's GALib, a full
C++ class library with an X user interface.
|
| History |
 |
|
Features
Requisites
Download
Papers
Products
Links |
- Version 1.0.3
- released Sep5 10, 1997, with new operators (double,
split), added chrom::getID,
Population::desEval(), which eliminates all the evaluated
population and sned its to the non-evaluated population, and
updated examples files.
pgenop.cc
- DEGAS002
- released Sept 5, 1997. Mostly a bugfix release over 001.
- Version 1.0.2
- released Aug 22, 1997, with a new
operator (shift), some error checking added to the
creep operator, and updated example file
pgenop.cc
- Version 1.0.1
- released Aug 18, 1997. First documented 1.0 version, with
changes in the overall structure over 0.9x versions.
|