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 @@ - + Genetic Engine -Algorithm-Based - Component-Based -- Programming hints - EO -documentation +General: Algorithm-Based +- Component-Based - Programming +hints - EO +documentation +
Local:
Introduction  +- Selection - Replacement +- Popular evolution engines - Tournaments +- Merge - Reduce - HowMany +- SurviveAndDie

Evolution Engine

-


Contents -

-
-
Introduction +
Evolution +Engines

The term evolution engine denotes the different parts of an Evolutionary Algorithm that simulate the Darwinism:

@@ -124,6 +96,20 @@ and you can probably guess what each of them actually does :-)
 

  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
 

Available instances of eoMergeReduce replacement include

so by default the double is indeed interpreted as a rate.

It is used in eoSelectMany (which supersedes eoSelectPerc @@ -413,15 +400,22 @@ methods.
Survive and Die

-


Algorithm-Based - Component-Based -- Programming hints -EO -documentation +
Local: Introduction  +- Selection - Replacement +- Popular evolution engines - Tournaments +- Merge - Reduce - HowMany +- SurviveAndDie
-
+
+
General: Algorithm-Based +- Component-Based - Programming +hints - EO +documentation +
Marc Schoenauer

Last -modified: Tue. Dec. 5 2000  +modified: Tue. Dec. 19 2000  diff --git a/eo/tutorial/html/eoOperators.html b/eo/tutorial/html/eoOperators.html index 3626af515..bcd070cbc 100644 --- a/eo/tutorial/html/eoOperators.html +++ b/eo/tutorial/html/eoOperators.html @@ -2,12 +2,12 @@ - + Variation Operators -General: Algorithm-Based -page - Component-Based - Programming +General: Algorithm-Based +- Component-Based - Programming hints - EO documentation
@@ -105,8 +105,7 @@ the -Simple +
Simple operators: Crossover

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. -


-Combining +
Combining simple operators: proportional combinations

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)
{
  EOT & eo1 = *_pop; // get (select if necessary) the guy -
  ++_pop;        +
  ++_pop;       // advance
  EOT & eo2 = *_pop; // get (select if necessary) the guy -
  ++_pop;        +
  ++_pop;       // advance
...
  EOT & eoN = *_pop; // get (select if necessary) the guy -
  ++_pop;        +
  ++_pop;       // advance

// do whatever the operator is supposed to @@ -320,14 +318,12 @@ were parents, it needs to insert them into the list using the eoPopulator as in the following: -
  -

  -

void operator()(eoPopulator& +


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 + +
  +

 

void operator()(eoPopulator& _pop)
{
  EOT & eo1 = *_pop; // get (select if necessary) the guy -
  ++_pop;       // advance +
  ++_pop;      + +// advance
  const EOT & eo2 = select(_pop.source());

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.

  • If you don't care about the size of the offspring population, you can use the delete method of the class eoPopulator. -For instance +For instance
  • +
    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