# EO Evolutionary Computation Framework

## What is EO?

EO is a templates-based, ANSI-C++ compliant evolutionary computation library. It contains classes for almost any kind of evolutionary computation you might come up to - at least for the ones we could think of. 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 classes.

EO was started by the Geneura Team at the University of Granada, headed by Juan Julián Merelo. The original Web site is also the only place where you will find old releases of EO (up to 0.8.7), but beware that it is not compatible at all with the current version.

The developement team has then been reinforced by Maarten Keijzer, the C++ wizzard, and Marc Schoenauer. Later came Jeroen Eggermont, who, among other things, did a lot of work on GP, Sébastien Cahon, who developped the parallel version of EO, ParadisEO, Olivier König, who did a lot of useful additions and cleaning of the code and Jochen Küpper, working on automatic installation procedures.

## Platforms

EO should work on Windows and any Un*x-like operating system with a standard-conforming C++ development system.

Recent versions of EO have been tested on the following platforms:

- Linux x86 with GCC 3.x and 4.x
- Linux x86_64 with GCC 3.x and GCC 4.x (t-MGE1bit fails)
- MacOS X/Darwin PowerPC with GCC 3.3
- Solaris SPARC with GCC 3.3.2
- Solaris x86 with GCC 3.3.2 (t-MGE1bit fails)
- CygWin (Windows XP) with GCC 3.3.1 (cygming special).
- Win95/NT with VC++ 5.0 and Borland Builder. Makefiles and projects files are provided.

If you have tested EO on a system not listed here, please let us know.

If you are working on a system with an older C++ compiler there is a good chance that eo-0.9.3z.1 works. It is tested on Linux with gcc-2.9x and several systems (IRIX, Solaris) with egcs.

## Documentation

The tutorial demonstrates that writing an evolutionary algorithm evolving your own structures is now easy, using ready-to-use template files. Although it has not been upgraded for some time now and refers to version 0.9.2 of EO, it nevertheless remains the best way to dive into EO. You can start by trying it on-line at LRI or SourceForge, before downloading it. The tutorial is also included in the released sources.

The latest tutorial release includes a introduction to ParadisEO, the parallel version of EO.

The complete code is also well documented and you can look at the generated interface documentation.

## Presentations

A functional and "philosophical" overview of EO was presented at EA'01 conference. You can download the paper or the slides.

An older (but huge) PowerPoint presentation shows the EO philosophy, and it includes a Visual Basic macro for evolving objects in Visual Basic for Applications. You can download it from here.

You can also look a the list of publications that used EO to solve real problems.

## Download

The current release is 0.9.3z.1. It supports GCC 3.x, 4.x, and good old g++ 2.9x. This is the version you should use now (September 2005). Current cvs and all subsequent versions will require GCC 3.x or later.

You can obtain the latest version directly via cvs or download a daily snapshot from LRI.

All releases can be obtained from the SourceForge download area.

## Mailing Lists

We would like EO to be an open development effort; that is why we have created two mailing lists to discuss future developments, solve technical problems, announce releases, publish patches, and discuss evolutionary computation in general. Join the EO mailing lists

## EO@sourceforge

The following resources are available, thanks to sourceforge

- EO SourceForge Project Page
- EO automatic documentation page at SF
- EO tutorial page at SF
- Releases
- Mailing Lists
- Message Forums
- Bug Submission and Tracking
- Technical Support
- Patch Submission
- CVS repository

## License

EO is distributed under the GNU Lesser General Public License

## Related Apps

ParadisEO provides extensions for EO on parallel architectures.

DegaX is an ActiveX control developed by three degree students which embeds EO 0.8.4. (Currently these links are dead. Please let us know where they should point.)

MOEO, a multi-objective package on top of EO.

## Links

- The Hitch-Hiker's Guide to Evolutionary Computation, FAQ for comp.ai.genetic.
- Wikipedia on Evolutionary algorithms.
- Charles Darwin: The Origin of Species.

maartenkeijzer@users.sourceforge.net - merelo@users.sourceforge.net - evomarc@users.sourceforge.net

Hosted by:

Please send comments on this webpage to the EO mailing list.