From 91c169770193e877c2d24a0c82d4b3d3d2975be0 Mon Sep 17 00:00:00 2001 From: Johann Dreo Date: Mon, 1 Nov 2010 22:08:37 +0100 Subject: [PATCH] more explanations in doc main page, remove HTML markup, remove deprecated link pages --- eo/doc/index.h | 109 ++++++++++++++++++------------------------------- 1 file changed, 40 insertions(+), 69 deletions(-) diff --git a/eo/doc/index.h b/eo/doc/index.h index 35de836c..079397a4 100644 --- a/eo/doc/index.h +++ b/eo/doc/index.h @@ -2,87 +2,58 @@ @section intro Introduction -EO is a templates-based, ANSI-C++ compliant evolutionary computation library. It -contains classes for almost any kind of evolutionary computation you might come + %EO is a template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic optimization algorithms insanely fast. + +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. +Designing an algorithm with %EO consists in choosing what components you want to use for your specific needs, just as building a structure with Lego blocks. + +If you have a classical problem for which available code exists (for example if you have a black-box problem with real-valued variables), you will just choose components to form an algorithm and connect it to your fitness function (which computes the quality of a given solution). + +If your problem is a bit more exotic, you will have to code a class that represents how your individuals (a solution to your problem) are represented, and perhaps some variations operators, but most of the other operators (selection, replacement, stopping criteria, command-line interface, etc.) are already available in %EO. @section tutorial Tutorial -The best place to learn about the features and approaches of EO is to look at +The best place to learn about the features and approaches of %EO is to look at the tutorial. - -@section install Installation - -The installation procedure of the package is detailed in the README file in the top-directory of the source-tree. - - - @section design Overall Design -For an introduction to the design of EO you can look at the slides from a talk -at EA 2001 or the corresponding article in Lecture Notes In -Computer Science 2310, Selected Papers from the 5th European -Conference on Artificial Evolution. +%EO is a framework. It is oriented toward facilitating the design of adhoc evolutionary algorithms. +It is not (at the moment) a complete library of algorithms ready to use on canonical problems. + +If you have a well-known problem and want to solve it as soon as possible, try another software. +If you have a real problem and want to build the best evolutionary algorithm to solve it, you've made +the good choice. + +Bascially, %EO manipulate "individuals" with a "fitness", that is objects +encoding a solution to a given optimization problem, associated with +the quality of this solution. The fitness is defined in the %EO class, +but the representation of a solution cannot be as generic. Thus, %EO +massively use templates, so that you will not be limited by interfaces +when using your own representation. + +Once you have a representation, you will build your own evolutionary algorithm +by assembling @ref Operators in @ref Algorithms. +In %EO, most of the objects are functors, that is classes with an operator(), that you +can call just as if they were classical functions. For example, an algorithm is a +functor, that manipulate a population of individuals, it will be implemented as a functor, +with a member like: operator()(eoPop). Once called on a given population, it will +search for the optimum of a given problem. + +Generally, operators are instanciated once and then binded in an algorithm by reference. +Thus, you can easily build you own algorithm by trying several combination of operators. + +For an more detailled introduction to the design of %EO you can look at the +slides from a talk at EA 2001 or at the corresponding +article in Lecture Notes In Computer Science, 2310, Selected Papers from the 5th European Conference on Artificial Evolution: + - http://portal.acm.org/citation.cfm?id=727742 + - http://eodev.sourceforge.net/eo/doc/LeCreusot.pdf + - http://eodev.sourceforge.net/eo/doc/EO_EA2001.pdf */ - - -/** @page webpages Related webpages - -- EO homepage -- EO Tutorial. -- SourceForge project page -- README -- NEWS -*/ - - - -/** @page Related Projects - -

ParadisEO

- -ParadisEO is a project that -extends EO for the flexible design of single solution-based metaheuristics, -metaheuristics for multi objective optimization as well as hybrid, parallel and distributed -metaheuristics. -*/ - - - -/** An old TODO list for EO, this could be updated... - -@todo (old) Provide a way to easily manipulate the algorithm in runtime, be it from -grafically or text; expand command-line capabities? - -@todo (old) Provide a graphical interface for Windows, in VC++ or BBuilder. - -@todo (old) Create more examples of the objects of which there is only one instance: -algorithms, evaluators. Try to adapt most well-know algorithms to EO - -@todo (old) Integrate the gTK interface seamlessly in the library. - -@todo Complete documentation. - -@todo (for release 1.1) Update README, INSTALL, ... for cmake based build system. -*/ - - - -// Local Variables: -// coding: iso-8859-1 -// mode: C++ -// c-file-offsets: ((c . 0)) -// c-file-style: "Stroustrup" -// fill-column: 80 -// End: