Mainly made it obvious that Lesson4 contains "ready-to-use" EAs
This commit is contained in:
parent
835a14e8ff
commit
503ee25d9c
3 changed files with 56 additions and 19 deletions
|
|
@ -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>
|
</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<double></font></b>.
|
to evolve genotypes that are <b><font color="#FF6600">vector<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<double> above, so only the opeartor
|
is the same as the one for plain vector<double> above, so only the opeartor
|
||||||
|
|
|
||||||
|
|
@ -43,9 +43,11 @@ EO<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<double> myeoBit;</font></tt></b>
|
<p><b><tt><font color="#999900">eoBit<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>
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Reference in a new issue