A few additions and corrections ...

This commit is contained in:
evomarc 2000-12-27 11:37:05 +00:00
commit 769b1fe31e

View file

@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.75 [en] (X11; U; Linux 2.2.17-21mdksmp i686) [Netscape]"> <meta name="GENERATOR" content="Mozilla/4.75 [en] (X11; U; Linux 2.2.17-21mdk i686) [Netscape]">
<title>Genetic Engine</title> <title>Genetic Engine</title>
</head> </head>
<body text="#000000" link="#0000EF" vlink="#51188E" alink="#FF0000" background="beige009.jpg"> <body text="#000000" link="#0000EF" vlink="#51188E" alink="#FF0000" background="beige009.jpg">
@ -94,44 +94,29 @@ two objects</a></font></font> of respective types <b><font color="#009900"><a hr
and <b><font color="#009900"><a href="#reduce">eoReduce</a></font></b> and <b><font color="#009900"><a href="#reduce">eoReduce</a></font></b>
and you can probably guess what each of them actually does :-)</li> and you can probably guess what each of them actually does :-)</li>
<br>&nbsp; <p><br>Available <font color="#FF6600">instances of eoMergeReduce</font>
<p>&nbsp; replacement include
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<p>Available <font color="#FF6600">instances of eoMergeReduce</font> replacement
include
<ul> <ul>
<li> <li>
<b><tt><font color="#009900">eoCommaReplacement</font></tt></b>, one of <b><tt><font color="#009900">eoCommaReplacement</font></tt></b>, one of
the two standard strategies in <font color="#FF6600">Evolution Strategies</font>, the two standard strategies in <font color="#000000">Evolution Strategies</font>,
selects the best offspring. It is an <b><tt><font color="#993300">eoMergeReduce(eoNoElitism, <b><font color="#FF6600">selects the best offspring</font></b>. It is an
eoTruncate)</font></tt></b>.</li> <b><tt><font color="#993300">eoMergeReduce(eoNoElitism, eoTruncate)</font></tt></b>.</li>
<li> <li>
<b><tt><font color="#009900">eoPlusReplacement</font></tt></b>, the other <b><tt><font color="#009900">eoPlusReplacement</font></tt></b>, the other
standard <font color="#FF6600">Evolution Startegies</font> replacement, standar<font color="#000000">d Evolution Startegies repla</font>cement,
where the best from offspring+parents become the next generation. It is where <b><font color="#FF6600">the best from offspring+parents</font></b>
an <b><tt><font color="#993300">eoMergeReduce(eoPlus, eoTruncate)</font></tt></b>.</li> become the next generation. It is an <b><tt><font color="#993300">eoMergeReduce(eoPlus,
eoTruncate)</font></tt></b>.</li>
<li> <li>
<b><tt><font color="#009900">eoEPReplacement</font></tt></b>, used in the <b><tt><font color="#009900">eoEPReplacement</font></tt></b>, used in th<font color="#000000">e
<font color="#FF6600">Evolutionary Evolutionary
Programming</font> historical algorithm, doing a stochastic tournament Programming historical </font>algorithm, does an EP stochastic tournament
among parents + offspring. It is an <b><tt><font color="#993300">eoMergeReduce(eoPlus, among parents + offspring. It is an <b><tt><font color="#993300">eoMergeReduce(eoPlus,
eoEPReduce)</font></tt></b> and its constructor requires as argument the eoEPReduce)</font></tt></b> and its constructor requires as argument T,
size of the tournament (unsigned int).</li> the size of the tournament (unsigned int).</li>
</ul> </ul>
<li> <li>
@ -189,7 +174,7 @@ an elitist replacement makes no sense - but will not harm either :-)
file</font></b> file</font></b>
<p>The file <b><tt><font color="#993300">t-eoReplacement</font></tt></b> <p>The file <b><tt><font color="#993300">t-eoReplacement</font></tt></b>
in the <b><font color="#FF6600">test directory</font></b> implements all in the <b><font color="#FF6600">test directory</font></b> implements all
above replacmenet procedures withni a very simple and easy-to-monitor Dummy above replacmenet procedures within a very simple and easy-to-monitor Dummy
EO class. EO class.
<p> <p>
<hr WIDTH="100%"> <hr WIDTH="100%">
@ -237,34 +222,41 @@ selection can be used to select a single individual, both uses are probably
a waste of CPU time. a waste of CPU time.
<ul> <ul>
<li> <li>
<b><tt><font color="#009900">Deterministic Tournament</font></tt></b> of <a NAME="detTournament"></a><b><tt><font color="#009900">Deterministic
size T selects returns the best of T uniformly chosen individuals in the Tournament</font></tt></b> of size T returns the best of T uniformly chosen
population. It is implemented in the <b><tt><font color="#009900">eoDetTournamentSelect</font></tt></b> individuals in the population. Its size T should be an integer >= 2. It
is implemented in the <b><tt><font color="#009900">eoDetTournamentSelect</font></tt></b>
class, a sub-class of eoSelectOne, as well as in the <b><tt><font color="#009900">eoDetTournamentTruncate</font></tt></b> class, a sub-class of eoSelectOne, as well as in the <b><tt><font color="#009900">eoDetTournamentTruncate</font></tt></b>
class that repeatidly removes from the population the "winner" of the inverse class that repeatidly removes from the population the "winner" of the inverse
tournament.&nbsp; These objects use the C++ function determinitic_tournament tournament.&nbsp; These objects use the C++ function determinitic_tournament
in&nbsp; <a href="../../doc/html/selectors_h-source.html">selectors.h</a>.</li> in&nbsp; <a href="../../doc/html/selectors_h-source.html">selectors.h</a>.</li>
<li> <li>
<b><tt><font color="#009900">Stochastic Tournament</font></tt></b> of rate <a NAME="stochTournament"></a><b><tt><font color="#009900">Stochastic Tournament</font></tt></b>
R first choses two individuals from the population, and selects the best of rate R first choses two individuals from the population, and selects
one with probability R and the worse one with probability (1-R). It is the best one with probability R (the worse one with probability 1-R). Real
implemented in the <b><tt><font color="#009900">eoStochTournamentSelect</font></tt></b> parameter R should be in [0.5,1]. It is implemented in the <b><tt><font color="#009900">eoStochTournamentSelect</font></tt></b>
class, a sub-class of eoSelectOne, as well as in the <b><tt><font color="#009900">eoStochTournamentTruncate</font></tt></b> class, a sub-class of eoSelectOne, as well as in the <b><tt><font color="#009900">eoStochTournamentTruncate</font></tt></b>
class that repeatidly removes from the population the "winner" of the inverse class that repeatidly removes from the population the "winner" of the inverse
tournament.&nbsp; These objects use the C++ function determinitic_tournament tournament.&nbsp; These objects use the C++ function determinitic_tournament
in&nbsp; <a href="../../doc/html/selectors_h-source.html">selectors.h</a>.</li> in&nbsp; <a href="../../doc/html/selectors_h-source.html">selectors.h</a>.<br>
<b><font color="#FF0000">Note</font></b>: A stochastic tournament with
rate 1.0 is strictly identical to a deterministic tournament of size 2.</li>
<li> <li>
<b><tt><font color="#009900">EP Tournament</font></tt></b> of size T is <a NAME="EPTournament"></a><b><tt><font color="#009900">EP Tournament</font></tt></b>
a global tournament: it works by assigning a score to all individuals in of size T is a global tournament: it works by assigning a score to all
the population the following way: starting with a score of 0, each individual individuals in the population the following way: starting with a score
I is "opposed" T times to a uniformly chosen individual. Everytime I wins, of 0, each individual I is "opposed" T times to a uniformly chosen individual.
its score in incremented by 1 (and by 0.5 for every draw). The individuals Everytime I wins, its score in incremented by 1 (and by 0.5 for every draw).
are then selected deterministically based on their scores from that procedure. The individuals are then selected deterministically based on their scores
The <b><tt><font color="#009900">EP Tournament</font></tt></b> is implemented from that procedure. The <b><tt><font color="#009900">EP Tournament</font></tt></b>
in the&nbsp; <b><tt><font color="#009900">eoEPReduce</font></tt></b> truncation is implemented in the&nbsp; <b><tt><font color="#009900">eoEPReduce</font></tt></b>
method used in some replacement procedures.</li> truncation method used in some replacement procedures.&nbsp;<br>
<b><font color="#FF0000">Note</font></b>: whereas both the determinitic
and the stochastic tournament select one individual, the EP tournament
is designed for batch selection. Of course it could be used to select a
single individual, but at a rather high computational cost.</li>
</ul> </ul>
<p><br> <p><br>
@ -387,8 +379,7 @@ derives from
<p>Its constructor takes 2 argumenrts: <p>Its constructor takes 2 argumenrts:
<center> <center>
<p><b><tt><font color="#993300">eoHowMany(double _rate, bool _interpret_as_rate <p><b><tt><font color="#993300">eoHowMany(double _rate, bool _interpret_as_rate
= = true)</font></tt></b></center>
true)</font></tt></b></center>
so by default the double is indeed interpreted as a rate. so by default the double is indeed interpreted as a rate.
<p>It is used in <font color="#009900">eoSelectMany</font> (which supersedes <p>It is used in <font color="#009900">eoSelectMany</font> (which supersedes
<font color="#009900">eoSelectPerc</font> <font color="#009900">eoSelectPerc</font>