Lesson4 advancing
This commit is contained in:
parent
4cce84280e
commit
7294d6acd5
3 changed files with 224 additions and 127 deletions
|
|
@ -2,7 +2,7 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; Linux 2.2.17-21mdksmp i686) [Netscape]">
|
||||
<meta name="GENERATOR" content="Mozilla/4.73 [en] (X11; I; Linux 2.2.15-4mdk i686) [Netscape]">
|
||||
<title>Variation Operators</title>
|
||||
</head>
|
||||
<body text="#000000" link="#0000EF" vlink="#51188E" alink="#FF0000" background="beige009.jpg">
|
||||
|
|
@ -23,7 +23,12 @@ continuators</a> - <a href="#checkpoint">Checkpoints</a> - <a href="#statistic">
|
|||
<b><font color="#CC0000">CheckPointing</font></b></h1></center>
|
||||
<a NAME="introduction"></a><b><font color="#000099"><font size=+2>What
|
||||
is Checkpointing about?</font></font></b>
|
||||
<br>Evolutionary Algorithms are ticked
|
||||
<br>Evolutionary Algorithms are almost all timely ticked, the basic time
|
||||
unit being what is called a generation. EO checkpointing mechanism allow
|
||||
you to program things that you want to be done at the end of every generation.
|
||||
This includes deciding to stop, outputing some statistics on the current
|
||||
state of the algorithm, updating some dynamical variables of your
|
||||
algorithm, saving the population to disk, ...
|
||||
<p><b><font color="#FF0000">EO classes described in this page</font></b>:
|
||||
<ul>
|
||||
<li>
|
||||
|
|
@ -34,7 +39,8 @@ eoStat, eoSortedStat, eoMonitor, eoUpdater</li>
|
|||
<b><font color="#FF0000">Derived classes</font></b>: eoCombinedContinue,</li>
|
||||
|
||||
<li>
|
||||
<b><font color="#FF0000">Related classes</font></b>: eoGnuPlot</li>
|
||||
<b><font color="#FF0000">Related classes</font></b>: eoGnuPlot1DMonitor,
|
||||
eoGnuPlot1DSnapshotMonitor,</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
|
|
@ -48,7 +54,8 @@ means that the algorithm stops only when the continuator returns <b><font color=
|
|||
<p><b><font color="#FF0000">Interface</font></b>: The abstract class
|
||||
for computing stopping conditions is <b><font color="#3366FF">eoContinue</font></b>,
|
||||
and the interface for its operator() is
|
||||
<p>
|
||||
<p>
|
||||
|
||||
<b><tt><font color="#993300"><font size=+1>bool operator()(const eoPop<EOT>&
|
||||
)</font></font></tt></b>
|
||||
<p>which you could have guessed from the <a href="../../doc/html/class_eocontinue.html">inheritance
|
||||
|
|
@ -79,15 +86,16 @@ passed at construct time. Don't forget to <b><font color="#FF6600">returnfalse</
|
|||
when the stopping criterion <b><font color="#FF6600">is met!</font></b></li>
|
||||
</ul>
|
||||
<a NAME="existingContinue"></a><b><font color="#FF0000">Existing continuators:
|
||||
</font></b>Of course you can find out all existing (non-virtual!) subclasses
|
||||
of eoContinue by looking at its <a href="../../doc/html/class_eocontinue.html">inheritance
|
||||
</font></b>Of
|
||||
course you can find out all existing (non-virtual!) subclasses of eoContinue
|
||||
by looking at its <a href="../../doc/html/class_eocontinue.html">inheritance
|
||||
diagram</a>. But you might find it more convenient to have them listed
|
||||
here:
|
||||
<ul>
|
||||
<li>
|
||||
</li>
|
||||
</ul>
|
||||
<b><font color="#FF0000"></font></b>
|
||||
|
||||
<p><br>
|
||||
<hr WIDTH="100%"><a NAME="combined_continue"></a><b><font color="#000099"><font size=+1>Combining
|
||||
continuators:</font></font></b>
|
||||
|
|
@ -101,8 +109,8 @@ boolean result as an eoContinue.
|
|||
<p><a NAME="writing_checkpoint"></a><b><font color="#FF0000">Writing a
|
||||
checkpoint:</font></b>
|
||||
<br>This is something you should never have to do. However, should you
|
||||
fell you have to do it, please do - and send us both the reasons that lead
|
||||
you to that (wqhat is it you couldn't do with existing eoCheckPoint), and
|
||||
feel you have to do it, please do - and send us both the reasons that lead
|
||||
you to that (what is it you couldn't do with existing eoCheckPoint), and
|
||||
the resulting code, of course.
|
||||
<br>
|
||||
<hr WIDTH="100%"><a NAME="statistic"></a><b><font color="#000099"><font size=+1>Statistics:</font></font></b>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.73 [en] (X11; I; Linux 2.2.15-4mdk i686) [Netscape]">
|
||||
<meta name="GENERATOR" content="Mozilla/4.75 [en] (X11; U; Linux 2.2.17-21mdk i686) [Netscape]">
|
||||
<title>Tutorial: Lesson 3</title>
|
||||
</head>
|
||||
<body text="#000000" link="#0000EE" vlink="#551A8B" alink="#FF0000" background="beige009.jpg">
|
||||
|
|
@ -24,32 +24,40 @@ this time you will have <b><font color="#FF6600">full control of all components<
|
|||
from the c<b><font color="#FF6600">ommand-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="#programmerguide">user's guide</a>,
|
||||
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
|
||||
your own experiments - and these these will likely fall outside the scope
|
||||
of these two programs. This is why you should also read the programmer's
|
||||
guides, as the structure and memory managements are here radically different
|
||||
that in the 3 previous lessons - though relying of course on the same objects.
|
||||
of these two programs. This is why you should also read the <a href="#programmerguide">programmer's
|
||||
guides</a>, as the structure and memory managements are here radically
|
||||
different that in the 3 previous lessons - though relying of course on
|
||||
the same objects.
|
||||
<br>
|
||||
<p>
|
||||
<hr WIDTH="100%">
|
||||
<br><a NAME="userguide"></a><b><font color="#000099"><font size=+2>User's
|
||||
guide</font></font></b>
|
||||
<br><font color="#000000">As already said, the behavior of the algorithms
|
||||
guide</font></font></b><font color="#000000"></font>
|
||||
<p><font color="#000000">As already said, the behavior of the algorithms
|
||||
will be exactly the same as the previous one as far as optimization is
|
||||
concerned. Only now you will be able to tune every component of the algorithms
|
||||
- except the type of genotype - using run-time parameters.</font>
|
||||
(except the type of genotype) using run-time parameters.</font>
|
||||
<br><font color="#000000">Also, as in previous lessons, most of the code
|
||||
is representation-independent, i.e. is the same for both the binary genotypes
|
||||
and the real-valued genotypes. This small user's guide reflects that, but
|
||||
you can go directly to the <a href="#binary">binary</a> or the <a href="#real">real</a>
|
||||
parts if you wish. Parameters input The way to input parameters has already
|
||||
be described in <a href="eoLEsson3.html#paraminput">Lesson 3</a>. To get
|
||||
a list of parameters, type the command with option --help (or -h): with
|
||||
both testBit and testReal this will result in</font>
|
||||
parts if you wish.</font>
|
||||
<p><b><font color="#FF0000">Warning</font></b><font color="#000000">: this
|
||||
is a user guide, not a programming guide. In particular, the </font><font color="#FF6600">keywords</font><font color="#000000">
|
||||
of the parameters are </font><b><font color="#FF6600">not</font></b><font color="#000000">
|
||||
the </font><font color="#FF6600">names</font><font color="#000000"> of
|
||||
the underlying classes (though they should be similar in most cases).</font>
|
||||
<p><b><font color="#000099"><font size=+1>User's guide:</font></font><font color="#FF0000">
|
||||
Parameter input</font></b><font color="#000000"> The way to input parameters
|
||||
has already be described in <a href="eoLEsson3.html#paraminput">Lesson
|
||||
3</a>. To get a list of parameters, type the command with option --help
|
||||
(or -h): with both testBit and testReal this will result in</font>
|
||||
<ul>
|
||||
<li>
|
||||
<font color="#000000">Printing the list of keywords on the standard output</font></li>
|
||||
|
|
@ -59,70 +67,97 @@ both testBit and testReal this will result in</font>
|
|||
or testReal.status that contains the list of all recognized parameters
|
||||
and has the format of an input parameter file.</font></li>
|
||||
</ul>
|
||||
<b><font color="#000099"><font size=+1>User's guide:</font></font></b><font color="#000000">
|
||||
</font><b><font color="#FF0000">The status file</font></b>
|
||||
<b><font color="#000099"><font size=+1>User's guide:</font></font><font color="#FF0000">The
|
||||
status file</font></b>
|
||||
<br><font color="#000000">This file will always contain the list of the
|
||||
parameters that have been actually used by the last run of the program,
|
||||
however thay have been entered (try </font><b><tt><font color="#FF6666"><font size=+1>testBit
|
||||
-G1</font></font></tt></b><font color="#000000"> and take a look a the
|
||||
status file). The parameters that are commented out (a # character comments
|
||||
out the rest of the line) in the file were not specified by the user.</font><font color="#000000"></font>
|
||||
<p><b><font color="#000099"><font size=+1>User's guide:</font></font></b><font color="#000000">
|
||||
</font><b><font color="#FF0000">Representation-independent parameters</font></b><font color="#000000"></font>
|
||||
<br><font color="#000000">The parameters are organized in sections.</font>
|
||||
<br><font color="#000000">The first section only contains the random seed.</font><font color="#000000"></font>
|
||||
<p><b><tt><font color="#993300"><font size=+1>###### General ######</font></font></tt></b>
|
||||
out the rest of the line) in the file are those that were not specified
|
||||
by the user.</font>
|
||||
<p><b><font color="#000099"><font size=+1>User's guide:</font></font><font color="#FF0000">Representation-independent
|
||||
parameters</font></b>
|
||||
<br><font color="#000000">The parameters are organized in sections. In
|
||||
what follows, the fixed font colored text is directly taken from the status
|
||||
file and is commented between the lines.</font>
|
||||
<br>
|
||||
<hr ALIGN=LEFT SIZE=3 WIDTH="30%">
|
||||
<br><b><font size=+1><font color="#FF0000">Section </font><tt><font color="#993300">######
|
||||
General ######</font></tt></font></b>
|
||||
<br><b><tt><font color="#993300"><font size=+1># --help=0 # -h : Prints
|
||||
this message</font></font></tt></b>
|
||||
<br><font color="#000000">Whether or not help was requested is handled
|
||||
through a boolean parameter</font>
|
||||
<br><b><tt><font color="#993300"><font size=+1># --seed=988700289 # -S
|
||||
: Random number seed</font></font></tt></b>
|
||||
<br><font color="#000000">The seed for the <a href="eoProgramming.html#random">Random
|
||||
Number Generator</a></font>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1>###### Output ######</font></font></tt></b>
|
||||
<br><font color="#FF0000">Boolean parameter </font><font color="#000000">of
|
||||
absolutely no interest: tells whether or not help was requested.</font><b><tt><font color="#993300"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#993300"><font size=+1># --seed=988700289 # -S :
|
||||
Random number seed</font></font></tt></b>
|
||||
<br><font color="#FF0000">Unsigned long parameter:</font><font color="#000000">
|
||||
the seed for the <a href="eoProgramming.html#random">Random Number Generator</a>
|
||||
If the parameter is absent, then time(0) is used, which indicates the number
|
||||
of seconds since Jan. 1 1980, is used ... and stored in the status file,
|
||||
of course, so you can repeat the same run by simply assigning that value
|
||||
again. There is </font><font color="#FF0000">no default value ("true" random
|
||||
seed)</font><font color="#000000">.</font>
|
||||
<br>
|
||||
<hr ALIGN=LEFT SIZE=3 WIDTH="30%">
|
||||
<br><b><font size=+1><font color="#FF0000">Section </font><tt><font color="#3333FF">######
|
||||
Output ######</font></tt></font></b>
|
||||
<br><font color="#000000">This section contains parameters related to output
|
||||
(to screen, to files, graphical, ...).</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --useEval=1 # Use nb of
|
||||
(to screen, to files, graphical, ...).</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --useEval=1 # Use nb of
|
||||
eval. as counter (vs nb of gen.)</font></font></tt></b>
|
||||
<br><font color="#000000">Boolean parameter, whether or not you want the
|
||||
nb of evluations to be displayed and used as counter in plots</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --printBestStat=1 # Print
|
||||
<br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
|
||||
whether or not you want the nb of evluations to be displayed and used as
|
||||
counter in statistics outputs and plots. </font><font color="#FF0000">Default
|
||||
is true</font><font color="#000000">.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --printBestStat=1 # Print
|
||||
Best/avg/stdev every gen.</font></font></tt></b>
|
||||
<br><font color="#000000">Boolean parameter, toggles screen output of indicated
|
||||
statistics</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --plotBestStat=0 # Plot
|
||||
<br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
|
||||
toggles screen output of indicated statistics. </font><font color="#FF0000">Default
|
||||
is true</font><font color="#000000">.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --plotBestStat=0 # Plot
|
||||
Best/avg Stat</font></font></tt></b>
|
||||
<br><font color="#000000">Boolean parameter, toggles gnuplot output of
|
||||
best and average plots (Linux only at the moment)</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --BestFileName=best.xg
|
||||
<br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
|
||||
toggles gnuplot output of best and average plots (Linux only at the moment).
|
||||
</font><font color="#FF0000">Default is false.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --BestFileName=best.xg
|
||||
# Name of file for Best/avg/stdev</font></font></tt></b>
|
||||
<br><font color="#000000">String parameter, if present, the statistics
|
||||
are stored in that file (no default)</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --printPop=0 # Print sorted
|
||||
<br><font color="#FF0000">String parameter:</font><font color="#000000">
|
||||
if present, the statistics are stored in that file (</font><font color="#FF0000">no
|
||||
default</font><font color="#000000">)</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --printPop=0 # Print sorted
|
||||
pop. every gen.</font></font></tt></b>
|
||||
<br><font color="#000000">Boolean parameter, adds a dump of the whole population
|
||||
to the screen every generation</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --printFDC=1 # Print FDC
|
||||
<br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
|
||||
adds a dump of the whole population to the screen every generation. Is
|
||||
likely to generate </font><b><font color="#FF6600">huge</font></b><font color="#000000">
|
||||
output! </font><font color="#FF0000">Default is false.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --printFDC=1 # Print FDC
|
||||
coeff. every gen.</font></font></tt></b>
|
||||
<br><font color="#000000">Boolean parameter, adds Fitness Distance Correlation
|
||||
to output every generation</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --plotFDCStat=0 # Plot
|
||||
<br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
|
||||
adds Fitness Distance Correlation to output every generation. </font><font color="#FF0000">Default
|
||||
is false.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --plotFDCStat=0 # Plot
|
||||
FDC scatter plot</font></font></tt></b>
|
||||
<br><font color="#000000">Boolean parameter, toggles the Fitness Distance
|
||||
Correlation plot (Fitness vs distance to best)</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --plotHisto=0 # Plot histogram
|
||||
<br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
|
||||
toggles the Fitness Distance Correlation plot (Fitness vs distance to best).
|
||||
</font><font color="#FF0000">Default is false.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --plotHisto=0 # Plot histogram
|
||||
of fitnesses</font></font></tt></b>
|
||||
<br><font color="#000000">Boolean parameter: if on, gnuplot is used to
|
||||
plot the sorted population (fitness vs rank). Gives a graphical idea of
|
||||
the diversity.</font><font color="#000000"></font>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1>###### Persistence ######</font></font></tt></b>
|
||||
<br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
|
||||
if on, gnuplot is used to plot the sorted population (fitness vs rank).
|
||||
Gives a graphical idea of the diversity. </font><font color="#FF0000">Default
|
||||
is false.</font>
|
||||
<br>
|
||||
<hr ALIGN=LEFT SIZE=3 WIDTH="30%">
|
||||
<br><b><font size=+1><font color="#FF0000">Section </font><tt><font color="#3333FF">######
|
||||
Persistence ######</font></tt></font></b>
|
||||
<br><font color="#000000">This section contains parameters handling job
|
||||
restart</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --Load= # -L : A save
|
||||
file to restart from</font></font></tt></b>
|
||||
<br><font color="#000000">String parameter: if present, the initial population
|
||||
(and the RNG status) is read from indicated file. That file </font><b><font color="#FF0000">must</font></b><font color="#000000">
|
||||
dump and restart mechanism</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --Load= # -L : A save file
|
||||
to restart from</font></font></tt></b>
|
||||
<br><font color="#FF0000">String parameter:</font><font color="#000000">
|
||||
if present, the initial population (and the RNG) is read from indicated
|
||||
file. That file </font><b><font color="#FF0000">must</font></b><font color="#000000">
|
||||
come from a previous save (or must be in same format!), i.e. must contain
|
||||
a popualtion, the RNG and all parameters. If no other parameter is modified,
|
||||
using a previously saved population and RNG will give exactly the same
|
||||
|
|
@ -130,89 +165,143 @@ results than having run that previous run longer. And a way to be sure
|
|||
to re-use the same parameters is to ... use that very save file as parameter
|
||||
file, as it contains all actual parameters in the right format.</font>
|
||||
<br><font color="#000000">Note that if not enough individuals are read,
|
||||
the remaining are randomly initialized. No default value.</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --recomputeFitness=0 #
|
||||
the remaining are randomly initialized. </font><font color="#FF0000">No
|
||||
default value</font><font color="#000000">.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --recomputeFitness=0 #
|
||||
-r : Recompute the fitness after re-loading the pop.?</font></font></tt></b>
|
||||
<br><font color="#000000">Boolean parameter: in case some individuals are
|
||||
read from a file, their fitness is read too. If this one is true, it is
|
||||
nevertheless recomputed.</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --saveFrequency=0 # Save
|
||||
<br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
|
||||
in case some individuals are read from a file, their fitness is read too.
|
||||
If this one is true, it is nevertheless recomputed. </font><font color="#FF0000">Default
|
||||
is false</font><font color="#000000"> i.e. use fitnes that's in the file.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --saveFrequency=0 # Save
|
||||
every F generation (0 = only final state, absent = never)</font></font></tt></b>
|
||||
<br><font color="#000000">Integer parameter: interval between two dump
|
||||
to disk of the whole population (+RNG + parameters) to disk, in a file
|
||||
named genNN.sav, where NN is the generation number. If this prameter
|
||||
is present (even with 0 or negative value), the final population will always
|
||||
be saved, whatever the reason for stopping. Hence the only way to avoid
|
||||
all saves is to omit the parameter (there is no default value).</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --saveTimeInterval=0 #
|
||||
<br><font color="#FF0000">Integer parameter:</font><font color="#000000">
|
||||
interval between two dump to disk of the whole population (+RNG + parameters)
|
||||
to disk, in a file named genNN.sav, where NN is the generation number.
|
||||
If this prameter is present (even with 0 or negative value), the final
|
||||
population will always be saved, whatever the reason for stopping. Hence
|
||||
the only way to avoid all saves is to omit the parameter (there is </font><font color="#FF0000">no
|
||||
default value</font><font color="#000000">).</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --saveTimeInterval=0 #
|
||||
Save every T seconds (0 or absent = never)</font></font></tt></b>
|
||||
<br><font color="#000000">Integer parameter: time interval between two
|
||||
population (+RNG + parameters) dumps to disks. Files are names timeNN.sav.
|
||||
See pervious parameter description for ore details. No default value.</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --status=t-eoGA.status
|
||||
<br><font color="#FF0000">Integer parameter:</font><font color="#000000">
|
||||
time interval between two population (+RNG + parameters) dumps to disks.
|
||||
Files are names timeNN.sav. See pervious parameter description for ore
|
||||
details. </font><font color="#FF0000">No default value.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --status=t-eoGA.status
|
||||
# Status file</font></font></tt></b>
|
||||
<br><font color="#000000">String parameter: name of the status file (that
|
||||
contains all parameters in the input format). There is no way to avoid
|
||||
creating that file except recompiling ... or giving the name /dev/null
|
||||
(Unix).</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1>###### Stopping criterion
|
||||
######</font></font></tt></b>
|
||||
<br><font color="#FF0000">String parameter:</font><font color="#000000">
|
||||
name of the status file (that contains all parameters in the input format).
|
||||
There is no way to avoid creating that file except recompiling ... or giving
|
||||
the name /dev/null (Unix). Default value is </font><font color="#FF0000">ProgramName.status</font>
|
||||
<br>
|
||||
<hr ALIGN=LEFT SIZE=3 WIDTH="30%">
|
||||
<br><b><font size=+1><font color="#FF0000">Section </font><tt><font color="#3333FF">######
|
||||
Stopping criterion ######</font></tt></font></b>
|
||||
<br><font color="#000000">This section allows to decide when the algorithm
|
||||
will stop.</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --maxGen=100 # -G : Maximum
|
||||
will stop.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --maxGen=100 # -G : Maximum
|
||||
number of generations (0 = none)</font></font></tt></b>
|
||||
<br><font color="#000000">Integer parameter: maximum number of generations.
|
||||
Default is 0 which is equivalent to infinity.</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --steadyGen=100 # -s :
|
||||
A value of 0 disables that stopping criterion. </font><font color="#FF0000">Default
|
||||
is 100.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --steadyGen=100 # -s :
|
||||
Number of generations with no improvement</font></font></tt></b>
|
||||
<br><font color="#000000">Integer parameter: stops whenever that number
|
||||
of generations is passed without any improvement of the best fitness in
|
||||
the population, provided the following minimum number of generations has
|
||||
been done. No default value.</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --minGen=0 # -g : Minimum
|
||||
<br><font color="#FF0000">Integer parameter:</font><font color="#000000">
|
||||
stops whenever that number of generations is passed without any improvement
|
||||
of the best fitness in the population, provided the following minimum number
|
||||
of generations has been done. </font><font color="#FF0000">No default value.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --minGen=0 # -g : Minimum
|
||||
number of generations</font></font></tt></b>
|
||||
<br><font color="#000000">Integer parameter: the above steadyGen parameter
|
||||
starts its job only after that minimum nuber of generations is passed.
|
||||
No default value.</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --maxEval=0 # -E : Maximum
|
||||
</font><font color="#FF0000">No default value.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --maxEval=0 # -E : Maximum
|
||||
number of evaluations (0 = none)</font></font></tt></b>
|
||||
<br><font color="#000000">Integer parameter: maximum number of generations.
|
||||
No default value.</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --targetFitness=0 # -T
|
||||
</font><font color="#FF0000">No default value.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --targetFitness=0 # -T
|
||||
: Stop when fitness reaches</font></font></tt></b>
|
||||
<br><font color="#000000">Real-valued parameter: the algorithm stops whenever
|
||||
the best fitness reaches that target. No default value.</font>
|
||||
<br><b><tt><font color="#3333FF"><font size=+1># --CtrlC=0 # -C : Terminate
|
||||
the best fitness reaches that target. </font><font color="#FF0000">No default
|
||||
value.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --CtrlC=0 # -C : Terminate
|
||||
current generation upon Ctrl C</font></font></tt></b>
|
||||
<br><font color="#000000">Boolean parameter: if true, Ctrl C only stops
|
||||
after the current generation as completed (eventually dumping population
|
||||
to a file if some saver is active).</font>
|
||||
<p><b><tt><font color="#009900"><font size=+1>###### engine ######</font></font></tt></b>
|
||||
to a file if some saver is active). THis very useful feature is only available
|
||||
in Unix at the moment. </font><font color="#FF0000">Default is false.</font>
|
||||
<br>
|
||||
<hr ALIGN=LEFT SIZE=3 WIDTH="30%">
|
||||
<br><b><font size=+1><font color="#FF0000">Section </font><tt><font color="#009900">######
|
||||
engine ######</font></tt></font></b>
|
||||
<br><font color="#000000">In this section, one chooses all components of
|
||||
the Evolution Engine (selection, replacemenet and the like).</font>
|
||||
<br><b><tt><font color="#009900"><font size=+1># --selection=DetTour(2)
|
||||
the <a href="eoEngine.html">Evolution Engine</a> (selection, replacemenet
|
||||
and the like).</font><font color="#000000"></font>
|
||||
<p><b><tt><font color="#009900"><font size=+1># --selection=DetTour(2)
|
||||
# -S : Selection: Roulette, DetTour(T), StochTour(t) or Sequential(ordered/unordered)</font></font></tt></b>
|
||||
<br><font color="#000000">String parameter: Name of selection procedure.
|
||||
Availabable are the </font><b><font color="#FF6600">roulette wheel</font></b><font color="#000000">
|
||||
<br><font color="#FF0000">String parameter:</font><font color="#000000">
|
||||
Name of <a href="eoEngine.html#selection">selection procedure.</a> Availabable
|
||||
are the </font><b><font color="#FF6600">roulette wheel</font></b><font color="#000000">
|
||||
(name </font><b><tt><font color="#009900"><font size=+1>Roulette</font></font></tt></b><font color="#000000">,
|
||||
fitness scaling coming soon), </font><b><font color="#FF6600">deterministic
|
||||
fitness scaling coming soon); </font><b><font color="#FF6600">deterministic
|
||||
tournament</font></b><font color="#000000"> (name </font><b><tt><font color="#009900"><font size=+1>DetTour</font></font></tt></b><font color="#000000">
|
||||
with size - integer > 2 - in parentheses right after the name, use double
|
||||
quotes on the command line), stochastic tournament (name </font><b><tt><font color="#009900"><font size=+1>StochTour</font></font></tt></b><font color="#000000">
|
||||
with probability - float in [0.5, 1] - in parentheses), sequential (name
|
||||
quotes on the command line); </font><b><font color="#FF6600">stochastic
|
||||
tournament</font></b><font color="#000000"> (name </font><b><tt><font color="#009900"><font size=+1>StochTour</font></font></tt></b><font color="#000000">
|
||||
with probability - float in [0.5, 1] - in parentheses); </font><b><font color="#FF6600">sequential</font></b><font color="#000000">
|
||||
(name
|
||||
</font><b><tt><font color="#009900"><font size=+1>Sequential</font></font></tt></b><font color="#000000">,
|
||||
all individuals in turn), either from best to worst (option </font><b><tt><font color="#009900"><font size=+1>ordered</font></font></tt></b><font color="#000000">
|
||||
in parentheses), or in random ordered (option </font><b><tt><font color="#009900"><font size=+1>unordered</font></font></tt></b><font color="#000000">)
|
||||
or finally repeated independent uniform choices (name </font><b><tt><font color="#009900"><font size=+1>Random</font></font></tt></b><font color="#000000">).</font>
|
||||
<br><b><tt><font color="#009900"><font size=+1># --offspringRate=100% #
|
||||
-O : Nb of offspring (percentage or absolute)</font></font></tt></b><b><tt><font color="#009900"><font size=+1></font></font></tt></b>
|
||||
in parentheses), or in random ordered (option </font><b><tt><font color="#009900"><font size=+1>unordered</font></font></tt></b><font color="#000000">);
|
||||
and finally repeated </font><b><font color="#FF6600">independent uniform
|
||||
choices</font></b><font color="#000000"> (name </font><b><tt><font color="#009900"><font size=+1>Random</font></font></tt></b><font color="#000000">).
|
||||
Default is </font><font color="#FF0000">DetTour(2)</font><font color="#000000">.</font><font color="#000000"></font>
|
||||
<p><b><tt><font color="#009900"><font size=+1># --nbOffspring=100% # -O
|
||||
: Nb of offspring (percentage or absolute)</font></font></tt></b>
|
||||
<br><font color="#FF0000">Integer or real-valued parameter:</font><font color="#000000">
|
||||
this parameter indicates the </font><b><font color="#FF6600">amount of
|
||||
offspring</font></b><font color="#000000"> that will be generated from
|
||||
the genitors every generation. However, this amount can be specified either
|
||||
</font><font color="#FF6600">relative</font><font color="#000000"> to the
|
||||
population size, and it should then end with percent character (%), or
|
||||
as an </font><font color="#FF6600">absolute</font><font color="#000000">
|
||||
integer number (without the percent char).</font>
|
||||
<br><font color="#000000">Indeed, you can either want, say 7 times more
|
||||
offspring than parents (a rather common situation in Evolution Strategies),
|
||||
in which case you give value 700% to </font><b><tt><font color="#009900"><font size=+1>nbOffspring</font></font></tt></b><font color="#000000">
|
||||
parameter; or you might want a single offspring whatever the population
|
||||
size, like in Steady-State evolution engines, in which case you simply
|
||||
enter value 1. </font><font color="#FF0000">Default is 100%</font><font color="#000000">.</font><font color="#000000"></font>
|
||||
<p><b><tt><font color="#009900"><font size=+1># --replacement=Comma # -R
|
||||
: Replacement: Comma, Plus or EPTour(T)</font></font></tt></b>
|
||||
<br><font color="#000000">String parameter: Name of replacement procedure.
|
||||
Availabable are</font>
|
||||
<br><b><tt><font color="#009900"><font size=+1># --weakElitism=0 # -w :
|
||||
: Replacement: Comma, Plus, EPTour(T), SSGAWorst, SSGADet(T), SSGAStoch(t)</font></font></tt></b>
|
||||
<br><font color="#FF0000">String parameter:</font><font color="#000000">
|
||||
Name of replacement procedure. Availabable are the </font><b><font color="#FF6600">ES
|
||||
plus and comma</font></b><font color="#000000"> deterministic replacement
|
||||
strategies (named respectively </font><b><tt><font color="#009900"><font size=+1>Plus</font></font></tt></b><font color="#000000">
|
||||
and </font><b><tt><font color="#009900"><font size=+1>Comma</font></font></tt></b><font color="#000000">);
|
||||
</font><b><font color="#FF6600">EP stochastic tournament</font></b><font color="#000000">
|
||||
(name </font><b><tt><font color="#009900"><font size=+1>EPTour</font></font></tt></b><font color="#000000">
|
||||
with tournament size in parentheses); and the </font><b><font color="#FF6600">steady-state
|
||||
</font></b><font color="#000000">replacement procedures, at the moment
|
||||
only based on fitnesses, replacement being either </font><font color="#FF6600">deterministic</font><font color="#000000">
|
||||
(new born replace worst parent, name </font><b><tt><font color="#009900"><font size=+1>SSGAWorst</font></font></tt></b><font color="#000000">),
|
||||
or based on a tournament (name </font><b><tt><font color="#009900"><font size=+1>SSGADet</font></font></tt></b><font color="#000000">
|
||||
for deterministic tournament, size in parentheses, and </font><b><tt><font color="#009900"><font size=+1>SSGAStoch</font></font></tt></b><font color="#000000">
|
||||
for stochastic tournament, probability in parentheses). </font><font color="#FF0000">Default
|
||||
is Comma</font><font color="#000000"> (which btw is also SGA </font><font color="#FF0000">generational
|
||||
replacement</font><font color="#000000"> whenever there are as many offspring
|
||||
as parents).</font><font color="#000000"></font>
|
||||
<p><b><tt><font color="#009900"><font size=+1># --weakElitism=0 # -w :
|
||||
Old best parent replaces new worst offspring *if necessary*</font></font></tt></b>
|
||||
<br><font color="#009900"></font>
|
||||
<br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
|
||||
if true, weak elitism is added to the replacement procedure (i.e. if the
|
||||
best fitness among the offspring is less than the best fitness, the best
|
||||
parent replaces the worst offspring). </font><font color="#FF0000">Default
|
||||
is false.</font>
|
||||
<p><b><font color="#000099"><font size=+1>User's guide:</font></font><font color="#FF0000">
|
||||
Bistring specific parameters</font></b>
|
||||
<br>
|
||||
<p>
|
||||
<hr WIDTH="100%">
|
||||
<br><a NAME="programmerguide"></a><b><font color="#000099"><font size=+2>Programmer's
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ and to</font></b></center>
|
|||
<h1>
|
||||
<font color="#FF0000">EO Tutorial</font></h1></center>
|
||||
|
||||
<center><font color="#FF0000">Version 0.95 - May. 2 2001</font><br>
|
||||
New: Lesson4 - with user guide of fully operational program
|
||||
</center>
|
||||
<center><font color="#FF0000">Version 0.95 - May. 2 2001</font>
|
||||
<br><b><font color="#FF6600">New</font></b>: <a href="eoLesson4.html">Lesson4</a>
|
||||
- with user guide of fully operational program</center>
|
||||
|
||||
<p>Welcome to EO tutorial/on-line documentation.
|
||||
<p>Please note that <b><font color="#FF6600">this tutorial is not supposed
|
||||
|
|
|
|||
Reference in a new issue