diff --git a/eo/tutorial/html/eoEngine.html b/eo/tutorial/html/eoEngine.html index 6012fc814..42e8b4306 100644 --- a/eo/tutorial/html/eoEngine.html +++ b/eo/tutorial/html/eoEngine.html @@ -2,55 +2,27 @@
- +
Contents
-
The term evolution engine denotes the different parts of an Evolutionary Algorithm that simulate the Darwinism:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Available instances of eoMergeReduce replacement include
Many classes in selection/replacement procedures will handle a number of individuals that may either be fixed or be a fraction of some argument-population size. @@ -401,7 +387,8 @@ derives from
Its constructor takes 2 argumenrts:
eoHowMany(double _rate, bool _interpret_as_rate -= true)
It is used in eoSelectMany (which supersedes
eoSelectPerc
@@ -413,15 +400,22 @@ methods.
Survive and
Die
-
The characteristic of crossover operators is that they involve two parents. However, there are crossover operators that generate two parents, and some @@ -236,8 +235,7 @@ EO might not know it should compute the fitness again and will keep the old value. -
The best thing to do is to go to the Lesson2 of the tutorial, where everything is explained. You will find out how you @@ -289,18 +287,18 @@ _pop)
// do whatever the operator is supposed to
@@ -320,14 +318,12 @@ were parents, it needs to insert them into the list using the
-
-
void operator()(eoPopulator&
+
void operator()(eoPopulator&
_pop)
where select is any selector you like. Note the const: you are not allowed
to modify an element of the original population (but you could of course
have copied it!). Now to find out where that selector comes from, you'll
-have to wait until next section. If you can't wait, go directly there.
-
+have to wait until next section. If you can't wait, go directly there.
void operator()(eoPopulator&
_pop)
{
EOT & eo1 = *_pop; // get
(select if necessary) the guy
-
++_pop;
+
++_pop;
// advance
// Now create second offspring - eo1
@@ -351,36 +347,45 @@ If you think "generational", the first idea is to get the parents from
outside the curent list, so the total number of (intermediate) offspring
is always equal to the initial population size. By chance, the eoPopulatorhas
a handle on the initial population that was used to start the process,
-and you can access it from inside the GenOp method. For instance
+and you can access it from inside the GenOp method. For instance
+
+
+
{
EOT & eo1 = *_pop; // get
(select if necessary) the guy
-
++_pop; // advance
+
++_pop;
+
+// advance
const EOT & eo2 = select(_pop.source());
void operator()(eoPopulator&
_pop)
{
EOT & eo1 = *_pop; // get
(select if necessary) the guy
-
++_pop; // advance
+
++_pop;
+
+// advance
EOT & eo2 = *_pop; // get
(select if necessary) the guy
-
++_pop; // advance
+
++_pop;
+
+// advance
// do whatever needs to be done, modifying
eo1 but not eo2
_pop.delete(); //
-removes (untouched) eo2 from the list
+removes (untouched) eo2 from the list
Warning: if you use operators that
have different number of parents than offspring, you are deviating from
@@ -636,10 +641,10 @@ _pop)
{
EOT & eo1 = *_pop; // get
(select if necessary) the first guy
-
++_pop;
+
++_pop;
// advance
-
EOT & eo2 = findBlonde(_pop.source());
+
EOT & eo2 = findBlonde(_pop.source());
// select mate
// do whatever the operator is supposed to
@@ -656,8 +661,8 @@ in its constructor for instance, which should give something like:
- Combinations - General
Operators - Populators - General
combinations- Advanced operators
-
General: Algorithm-Based
-page - Component-Based - Programming
+
General: Algorithm-Based
+- Component-Based - Programming
hints -EO
documentation