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 ------------------ --><!-- ----------------------------------------------- -->
|
||||
<center>
|
||||
<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
|
||||
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>.
|
||||
You can even use the algorithm decribed here without any other knowledge
|
||||
of EO, just by writing your fitness function as a plain C++ function. This
|
||||
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
|
||||
of respectively the <a href="#binary">binary</a> and the <a href="#real">real</a>
|
||||
algorithms.
|
||||
<br>However, the ultimate purpose of this tutorial is to be able to do
|
||||
from the <b><font color="#FF6600">command-line or a parameter file</font></b>.<br>
|
||||
You can even use the algorithm decribed here <b><font color="#FF6600">without any other knowledge
|
||||
of EO</font></b>, just by writing your fitness function as a plain C++ function. <br><br>
|
||||
|
||||
<b><font color="#000099"><font size=+2>Contents</font></font></b><br>
|
||||
<ul>
|
||||
<li><b><font color="#FF0000">User's guide</font></b>
|
||||
<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
|
||||
of these two programs. This is why you should also read the <a href="#programmerguide">programmer's
|
||||
guides</a>, as the structure and <a href="#memory">memory managements</a>
|
||||
are here radically different that in the 3 previous lessons - though relying
|
||||
of the two ready-to-use programs above. You wil hence need to learn more about
|
||||
<ul>
|
||||
<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
|
||||
objects are handled by different mechanisms.
|
||||
<br>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
<hr WIDTH="100%">
|
||||
<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%">
|
||||
<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>
|
||||
<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>
|
||||
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>.
|
||||
|
|
@ -634,8 +661,16 @@ The value of standard deviation for Gaussian mutation - fixed along evolution
|
|||
<p>
|
||||
<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
|
||||
with self-adative mutation specific 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>,
|
||||
with self-adative mutation parameters</font></font></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
|
||||
- together with specific ES crossover operators. The initialization section
|
||||
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><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>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
|
||||
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
|
||||
into an object library file, as the actual types are not known in advance.
|
||||
<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
|
||||
Algorithm</b></font> evolving real values or bitstring, you can
|
||||
<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>
|
||||
(link on top of each page too).<br>
|
||||
In fact, there is something new: thanks to Jochen Küpper, EO automatic configuration
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue