diff --git a/eo/tutorial/html/eoEngine.html b/eo/tutorial/html/eoEngine.html
index b939046b8..35ae194c1 100644
--- a/eo/tutorial/html/eoEngine.html
+++ b/eo/tutorial/html/eoEngine.html
@@ -239,8 +239,10 @@ two objects of respective types eoReduce
and you can probably guess what each of them actually does :-)
-
Available instances of eoMergeReduce
-replacement include
+
+
+
Available instances of eoMergeReduce replacement
+include
-
eoCommaReplacement, one of
@@ -274,7 +276,7 @@ number of offspring.
Though not mandatory, it is implicitely assumed that few offspring
have been generated. Hence, all derived replacement procedures of class
eoReduceMerge
-are termed eoSGAxxx, as they
+are termed eoSSGAxxx, as they
are the ones to use in SteadyState Genetic Algorithm engine. This gives
the following instances of eoReduceMerge:
@@ -287,17 +289,33 @@ additional argument needed);
eoSSGADetTournamentReplacement
in which parents to be killed are chosen by a (reverse) determinitic tournament.
Additional parameter (in the constructor) is the tournament size, an unsigned
-int).
+int.
-
eoSSGAStochTournamentReplacement
in which parents to be killed are chosen by a (reverse) stochastic tournament.
-Additional parameter (in the constructor) is the tournament rate, a double).
+Additional parameter (in the constructor) is the tournament rate, a double.
-
-eoSurviveAndDie is
-
+eoSurviveAndDie
+replacement strategies are a generalization of both the above that allows
+strong elitist and eugenism in both the parent population and the offspring
+population. The eoSurviveAndDie
+building block takes one population, kills the worse and moves the best
+to some safe place. The corresponding replacements apply an eoSurviveAndDie
+to the parents, another one to the offspring, and finally merges the remaining
+parents and offspring before reducing the resulting population to the right
+size. Available instances of eoSurviveAndDieReplacement
+are limited todayto the eoDeterministicSaDReplacement,
+the that uses a deterministic MergeReduce.
+
+
Note: The basic use (and initial
+motivation) for eoSurviveAndDie
+takes 2 arguments, an eoMergeReduce and a number of surviving parents.
+It starts by copying the best parents to the new populations, then merges
+the remaining parents with the offspring before reducing to the number
+of remaining seats in the new population.
Replacement: Adding
@@ -340,74 +358,71 @@ the number of individuals in the initial population.
-
Generational Genetic Algorihtm:
-popularized by Holland (75) and Goldberg (89), it uses
-Number of offspring:
-P
-Selection: Proportional
+popularized by Holland (75) and Goldberg (89), it uses
+
+
Number of offspring:
+P
+
Selection: Proportional
(the historical roulette wheel) when maximizing
a positive scalar fitness, ranking or
-tournament (stochatic or deterministic) in all cases.
-Replacement:
-Generational.
-Remark: You could
+tournament (stochatic or deterministic) in all cases.
+
Replacement: Generational.
+
Remark: You could
use also the Comma replacement, with exactly the same result as there are
as many offspring as we need indiviudals in the next population. And using
the eoSSGAWorseReplacement would also give the same result, but would be
-very inefficient!
-You can also add weak elitism to preserve the
-best individual.
-
+very inefficient!
+
You can also add weak
+elitism to preserve the best individual.
Steady-State Genetic Algorithm:
-widely used in GA/GP community
-Number of offspring:
-small (historically, 1)
-Selection: tournament
-(you can use ranking or proportional, but it will be rather inefficient).
-Replacement:
-An eoSSGAxxxReplacement.
-Remark: You can
-also use the eoPlusReplacement, but you divert from the original SSGA
+widely used in GA/GP community
+
Number of offspring:
+small (historically, 1)
+
Selection: tournament
+(you can use ranking or proportional, but it will be rather inefficient).
+
Replacement: An
+eoSSGAxxxReplacement.
+
Remark: You can
+also use the eoPlusReplacement, but you divert from the original SSGA
(MU+Lambda)-Evolution Strategy:
-The elitist ES strategy (Rechenberg 71 and Schwefel 81)
-Number of offspring:
-Any
-Selection: eoDetSelect
-(batch deterministic).
-Replacement:
-eoPlusReplacement
-Remark: You could
-also use eoEPReplacement, to smoothen the selective pressure during replacement,
-thus getting close to EP evolution engine
+The elitist ES strategy (Rechenberg 71 and Schwefel 81)
+
Number of offspring:
+Any
+
Selection: eoDetSelect
+(batch deterministic).
+
Replacement: eoPlusReplacement
+
Remark: You could
+also use eoEPReplacement, to smoothen the selective pressure during replacement,
+thus getting close to EP evolution engine
(MU,Lambda)-Evolution Strategy:
-The non-elitist ES strategy
-Number of offspring:
-> P
-Selection: eoDetSelect
-(batch deterministic).
-Replacement:
-eoCommaReplacement
-Remark: You can
-also add weak elitism to preserve the best individual
-- though you'd probably use the plus strategy if you want (strong) elitism.
+The non-elitist ES strategy
+
Number of offspring:
+> P
+
Selection: eoDetSelect
+(batch deterministic).
+
Replacement: eoCommaReplacement
+
Remark: You can
+also add weak elitism to preserve the best individual
+- though you'd probably use the plus strategy if you want (strong) elitism.
Evolutionary Programming:
-The historical method of L. Fogel (65)
-Number of offspring:
-P
-Selection: eoDetSelect
-(batch deterministic). Every individual reproduces exactly once.
-Replacement:
-eoEPReplacement, though one historical replacement was the determnistic
-replacement - i.e. in EO the eoPlusReplacement).
-Remark: Close
-to an (P+P)-ES
+The historical method of L. Fogel (65)
+
Number of offspring:
+P
+
Selection: eoDetSelect
+(batch deterministic). Every individual reproduces exactly once.
+
Replacement: eoEPReplacement,
+though one historical replacement was the determnistic replacement - i.e.
+in EO the eoPlusReplacement).
+
Remark: Close to
+an (P+P)-ES
You name it :-):
you can of course choose whatever combination you like - respecting a few
@@ -613,6 +628,32 @@ methods.
Survive and
Die
+
This class is highly politically incorrect: it implements strong elitism
+and eugenism :-)
+
It starts by killing the worse individuals from the source argument,
+then appends the best ones to the destination argument and removes them
+from the source argument. It is used in eoSurviveAndDieReplacement,
+where the same dest is used successively for the parents and the offspring.
+eoSurviveAndDie: interface
+
The class interface for its operator()
+is
+
+void operator()(eoPop<EOT>& _source,
+eoPop<EOT>& _dest)
+
+which you could have guessed from the inheritance tree for class eoSurviveAndDie,
+as you see there that eoSurviveAndDie
+derives from class eoBF<eoPop<EOT>&,
+eoPop<EOT>&, void>.
+
Its constructor takes 3 argumenrts:
+
+eoHowMany(double _survive, double _die,
+bool _interpret_as_rate = true)
+
+to indicate how many (or what proportion, according to _interpret_as_rate)
+of the source should be copied to the dest population, and how many (or
+what proportion, according to _interpret_as_rate)
+should be erased from the source.
Local: Introduction
- Selection - Replacement
@@ -630,6 +671,6 @@ documentation
Marc Schoenauer
Last
-modified: Tue. Dec. 19 2000
+modified: Tue. Jan. 9 2001