EO has been completely redesigned for version 0.9 and moved to SourceForge. Main EO designers are now Maarten Keijzer and Marc Schoenauer.
You can still download old versions from here, and use http://geneura.ugr.es/~jmerelo/eo
for the documentation, ftp://geneura.ugr.es/pub/eo/eo-0.8.7.tgz
for the release. Latest release is 0.8.7, latest snapshot September 14 1999.
|EO is a templates-based, ANSI-C++ compliant evolutionary
computation library. It contains classes for any kind of evolutionary computation
(specially genetic algorithms) you might come up to. It is component-based, so that if you don't
find the class you need in it, it is very easy to subclass
existing abstract or concrete class. Here are its features
There is a huge PowerPoint presentation which shows the EO fphilosophy, and it includes a Visual Basic macro for evolving objects in Visual Basic for Applications. You can download it from here.
Chromosomes: Can be defined by the user, by subclassing the EOBase
class; binary, floating point, bidimensional, string and
value plus sigma, used in evolution strategies, are
provided. All algorithms defined work on all kind of
Genetic operators: Can be defined by the user, by subclassing the
EOOp class. Operators can be unary, binary or n-ary (orgy) operators.
Many floating point, bitstring, and generic operators are defined, like
mutation, crossover, and things like that.
Selection/elimination procedure: Can be defined by the user, by
subclassing the EOSelect class. Steady-State and rank-based are
Reproduction procedure: Can be user defined (I'll skip that from
now on, but everything can be user-defined) by subclassing EOBreed.
Random, lottery, and rank-based are provided.
Replacement procedure: Can be defined by the user, by
subclassing the EOReplace class. Eliminate-all,
eliminate-worst are provided
Termination conditions: (user-definable) fitness and generation-based.
Algorithms: Easy Ga, Goldberg's SimpleGA,
Evolution Strageties and simulated annealing with user-definable
Some utilities: command-line parsing, random-number generations
Examples: examples that test all features and classes, plus genetic mastermind.
User interface: an example that uses gtk and
another with Borland Builderis provided
Documentation in html.
|EO has been tested and works on the following platforms:
Linux with egcs 1.0.2
Irix 4.0 with egcs 1.0.2
Solaris with egcs 1.0.2 and gcc 2.8.1
Win95/NT with CygWin/egcs 1.0.2, VC++ 5.0 and Borland Builder. Makefiles and projects files
|EO 0.8.4 has been
embedded in an ActiveX control, called DegaX by 3 degree students. You can download it
from the DegaX
directory. It's better if you download it by parts:
- Start by
the documentation, which is, as everthing else, in Spanish,
explains how to decompress and use everything, and the evolutionary
and Microsoftie basics. The documentation is also available from here.
- Follow by downloading the ActiveX
control, and install it. You'll need this to embed it in any
- Several apps that use the ActiveX control are also there: in Visual Basic,
in Visual C++,
and in Excel.
- Finally, if you feel like it, download the sources for everything.
|Free, free distribution, but for commercial uses,
check with us.
|New releases are made very often. Check at
the EO site.
All daily snapshots are available from ftp://geneura.ugr.es/pub/eo.
We have also set up remote CVS read access to the source tree. To get
the version we are working in currently, first download a cvs client
from Cyclic or from your closest GNU
repository, and then do this:
csh%setenv CVSROOT :pserver:firstname.lastname@example.org:/home/cvs
$ cvs login <press enter here>, and
(Logging in to email@example.com)
$ cvs -z9 checkout oldEO
, which will download all the code, compressed to the maximum. This
will create the eo source tree; from them on, you can check changes,
get daily updates, and so on. This will be much faster than
downloading the whole zipfile, and besides, if you have made local
changes, cvs will merge them with whatever changes we have made.
|We would like EO to be an open development effort;
that is why we have created a mailing list to discuss future developments,
solve technical problems, announce releases, publish patches, and discuss
evolutionary computation in general. Join the mailing list by