Mainly made it obvious that Lesson4 contains "ready-to-use" EAs

This commit is contained in:
evomarc 2004-12-27 09:08:44 +00:00
commit 503ee25d9c
3 changed files with 56 additions and 19 deletions

View file

@ -24,24 +24,42 @@ documentation</a></font></font></b>
<hr WIDTH="100%"><!-- -------------- End of header ------------------ --><!-- ----------------------------------------------- --> <hr WIDTH="100%"><!-- -------------- End of header ------------------ --><!-- ----------------------------------------------- -->
<center> <center>
<h1> <h1>
<font color="#FF0000">Tutorial Lesson 4: fully operational EA</font></h1></center> <font color="#FF0000">Tutorial Lesson 4: ready-to-use fully operational EA</font></h1></center>
In this lesson, you will still use the same Evolutionary Algorithm. But In this lesson, you will still use the same Evolutionary Algorithm. But
this time you will have <b><font color="#FF6600">full control of all components</font></b> this time you will have <b><font color="#FF6600">full control of all components</font></b>
from the <b><font color="#FF6600">command-line or a parameter file</font></b>. from the <b><font color="#FF6600">command-line or a parameter file</font></b>.<br>
You can even use the algorithm decribed here without any other knowledge You can even use the algorithm decribed here <b><font color="#FF6600">without any other knowledge
of EO, just by writing your fitness function as a plain C++ function. This of EO</font></b>, just by writing your fitness function as a plain C++ function. <br><br>
is why this lesson starts with a <a href="#userguide">user's guide</a>,
most of it being representation-independent, with some parts that are specific <b><font color="#000099"><font size=+2>Contents</font></font></b><br>
of respectively the <a href="#binary">binary</a> and the <a href="#real">real</a> <ul>
algorithms. <li><b><font color="#FF0000">User's guide</font></b>
<br>However, the ultimate purpose of this tutorial is to be able to do <ul>
<li> <a href="#userguide">Representation independent</a>,
useful for <b><font color="#FF6600">all</font></b> applications</li>
<li> <a href="#binary">BitEA, the binary version</a>, similar
to previous lessons</li>
<li> <a href="#real">RealEA, the basic real-valued version</a>,
not efficient - see by yourself!</li>
<li> <a href="#ES">RealEA, the self-adaptive Evolution Strategy</a>, best choice for continuous optimization in EO today (December 2004)</li>
</ul>
</li>
<li><b><font color="#FF0000">Programmer's guide</font></b>:
the ultimate purpose of this tutorial is to make you able to do
your own experiments - and these these will likely fall outside the scope your own experiments - and these these will likely fall outside the scope
of these two programs. This is why you should also read the <a href="#programmerguide">programmer's of the two ready-to-use programs above. You wil hence need to learn more about
guides</a>, as the structure and <a href="#memory">memory managements</a> <ul>
are here radically different that in the 3 previous lessons - though relying <li> <a href="#programmerguide">Building libraries</a> (in spite of the
<a href="eoProgramming.html#templates">template problem</a>)</li>
<li> <a href="#memory">Memory management</a>: it is radically
different that in the 3 previous lessons - though relying
of course on the same objects. Note that eoPersistent objects and eoParam of course on the same objects. Note that eoPersistent objects and eoParam
objects are handled by different mechanisms. objects are handled by different mechanisms.
<br>&nbsp; </li>
</ul>
</li>
</ul>
<p> <p>
<hr WIDTH="100%"> <hr WIDTH="100%">
<br><a NAME="userguide"></a><b><font color="#000099"><font size=+2>User's <br><a NAME="userguide"></a><b><font color="#000099"><font size=+2>User's
@ -462,7 +480,16 @@ operators).</font>
<hr ALIGN=LEFT SIZE=5 WIDTH="100%"> <hr ALIGN=LEFT SIZE=5 WIDTH="100%">
<p><a NAME="real"></a><b><font size=+1><font color="#000099">User's guide:</font><font color="#FF0000">Real-valued <p><a NAME="real"></a><b><font size=+1><font color="#000099">User's guide:</font><font color="#FF0000">Real-valued
specific parameters</font></font></b> specific parameters</font></font></b>
<br>The following describes the specific parameters that are available <br>
To run your own real-valued application, write your fitness function
(see <b><tt><font color="#993300" size=+1>real_value.h</font></font></tt></b>),
recompile, and run from the command line <br>
<center><b><tt><font color="#993300" size=+1>RealEA @RealEA.param</font></tt></b></center><br>
in order to use sensible parameters! (see <a href="eoLesson3.html#paraminput">Lesson 3</a>
for details on the parameter file).
But remember that <a href="#ES">Self-adaptive ES</a> will work much better!
<br><br>
The following describes the specific parameters that are available
in programs <b><tt><font color="#993300"><font size=+1>RealEA</font></font></tt></b> in programs <b><tt><font color="#993300"><font size=+1>RealEA</font></font></tt></b>
and <b><tt><font color="#993300"><font size=+1>ESEA</font></font></tt></b> and <b><tt><font color="#993300"><font size=+1>ESEA</font></font></tt></b>
to evolve genotypes that are <b><font color="#FF6600">vector&lt;double></font></b>. to evolve genotypes that are <b><font color="#FF6600">vector&lt;double></font></b>.
@ -634,8 +661,16 @@ The value of standard deviation for Gaussian mutation - fixed along evolution
<p> <p>
<hr ALIGN=LEFT SIZE=5 WIDTH="100%"> <hr ALIGN=LEFT SIZE=5 WIDTH="100%">
<p><a NAME="ES"></a><b><font size=+1><font color="#000099">User's guide:</font><font color="#FF0000">ES <p><a NAME="ES"></a><b><font size=+1><font color="#000099">User's guide:</font><font color="#FF0000">ES
with self-adative mutation specific parameters</font></font></b> with self-adative mutation parameters</font></font></b>
<br>The following describes the specific parameters for program <b><tt><font color="#993300"><font size=+1>ESEA</font></font></tt></b>, <br>
To run your own SA-ES application, write your fitness function
(see <b><tt><font color="#993300" size=+1>real_value.h</font></font></tt></b>),
recompile, and run from the command line <br>
<center><b><tt><font color="#993300" size=+1>ESEA @ESEA.param</font></tt></b></center><br>
in order to use sensible parameters! (see <a href="eoLesson3.html#paraminput">Lesson 3</a>
for details on the parameter file).
<br><br>
The following describes the specific parameters for program <b><tt><font color="#993300"><font size=+1>ESEA</font></font></tt></b>,
that implements the full Evolution-Strategy self-adaptive mutation mechanism that implements the full Evolution-Strategy self-adaptive mutation mechanism
- together with specific ES crossover operators. The initialization section - together with specific ES crossover operators. The initialization section
is the same as the one for plain vector&lt;double> above, so only the opeartor is the same as the one for plain vector&lt;double> above, so only the opeartor

View file

@ -43,9 +43,11 @@ EO&lt;F></font></tt></b>
<p>and then use it in your application as <p>and then use it in your application as
<p><b><tt><font color="#999900">eoBit&lt;double> myeoBit;</font></tt></b> <p><b><tt><font color="#999900">eoBit&lt;double> myeoBit;</font></tt></b>
<p>declares an object of type eoBin which has as fitness a double. <p>declares an object of type eoBin which has as fitness a double.
<p>Whereas the advantages are obvious (writing generic reusable code instead <p>Whereas the <b><font color="#FF6600">advantages</font></b>
are obvious (writing generic reusable code instead
of having to rewrite the same pieces of code for different types), there of having to rewrite the same pieces of code for different types), there
are some drawbacks: namely, it makes some of the compiler error messages are some <b><font color="#FF6600">drawbacks</font></b>:
namely, it makes some of the compiler error messages
hard to understand; and it forbids the compilation of most parts of EO hard to understand; and it forbids the compilation of most parts of EO
into an object library file, as the actual types are not known in advance. into an object library file, as the actual types are not known in advance.
<p> <p>

View file

@ -28,7 +28,7 @@ if you are looking for a <font color="#FF0000"><b>ready-to-use</b></font>
(except for the fitness) <font color="#FF0000"><b>fully tunable Evolutionary (except for the fitness) <font color="#FF0000"><b>fully tunable Evolutionary
Algorithm</b></font> evolving real values or bitstring, you can Algorithm</b></font> evolving real values or bitstring, you can
<font color="#FF0000"><b>go directly to</font><font color="#000000"> <font color="#FF0000"><b>go directly to</font><font color="#000000">
<a href="eoLesson5.html">Lesson 5</a></font></b> after <a href="eoLesson4.html">Lesson 4</a></font></b> after
just reading this page, and maybe the <a href="eoProgramming.html">Programming hints</a> just reading this page, and maybe the <a href="eoProgramming.html">Programming hints</a>
(link on top of each page too).<br> (link on top of each page too).<br>
In fact, there is something new: thanks to Jochen Küpper, EO automatic configuration In fact, there is something new: thanks to Jochen Küpper, EO automatic configuration