Lesson4 advancing

This commit is contained in:
evomarc 2001-05-03 05:44:29 +00:00
commit 7294d6acd5
3 changed files with 224 additions and 127 deletions

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.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> <title>Variation Operators</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">
@ -23,7 +23,12 @@ continuators</a> - <a href="#checkpoint">Checkpoints</a> - <a href="#statistic">
<b><font color="#CC0000">CheckPointing</font></b></h1></center> <b><font color="#CC0000">CheckPointing</font></b></h1></center>
<a NAME="introduction"></a><b><font color="#000099"><font size=+2>What <a NAME="introduction"></a><b><font color="#000099"><font size=+2>What
is Checkpointing about?</font></font></b> 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,&nbsp; 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>: <p><b><font color="#FF0000">EO classes described in this page</font></b>:
<ul> <ul>
<li> <li>
@ -34,7 +39,8 @@ eoStat, eoSortedStat, eoMonitor, eoUpdater</li>
<b><font color="#FF0000">Derived classes</font></b>: eoCombinedContinue,</li> <b><font color="#FF0000">Derived classes</font></b>: eoCombinedContinue,</li>
<li> <li>
<b><font color="#FF0000">Related classes</font></b>: eoGnuPlot</li> <b><font color="#FF0000">Related classes</font></b>: eoGnuPlot1DMonitor,
eoGnuPlot1DSnapshotMonitor,</li>
</ul> </ul>
<br>&nbsp; <br>&nbsp;
@ -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>:&nbsp; The abstract class <p><b><font color="#FF0000">Interface</font></b>:&nbsp; The abstract class
for computing stopping conditions is <b><font color="#3366FF">eoContinue</font></b>, for computing stopping conditions is <b><font color="#3366FF">eoContinue</font></b>,
and the interface for its operator() is and the interface for its operator() is
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<b><tt><font color="#993300"><font size=+1>bool operator()(const eoPop&lt;EOT>&amp; <b><tt><font color="#993300"><font size=+1>bool operator()(const eoPop&lt;EOT>&amp;
)</font></font></tt></b> )</font></font></tt></b>
<p>which you could have guessed from the <a href="../../doc/html/class_eocontinue.html">inheritance <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> when the stopping criterion <b><font color="#FF6600">is met!</font></b></li>
</ul> </ul>
<a NAME="existingContinue"></a><b><font color="#FF0000">Existing continuators: <a NAME="existingContinue"></a><b><font color="#FF0000">Existing continuators:
</font></b>Of course you can find out all existing (non-virtual!) subclasses </font></b>Of
of eoContinue by looking at its&nbsp; <a href="../../doc/html/class_eocontinue.html">inheritance course you can find out all existing (non-virtual!) subclasses of eoContinue
by looking at its&nbsp; <a href="../../doc/html/class_eocontinue.html">inheritance
diagram</a>. But you might find it more convenient to have them listed diagram</a>. But you might find it more convenient to have them listed
here: here:
<ul> <ul>
<li> <li>
</li> </li>
</ul> </ul>
<b><font color="#FF0000"></font></b>
<p><br> <p><br>
<hr WIDTH="100%"><a NAME="combined_continue"></a><b><font color="#000099"><font size=+1>Combining <hr WIDTH="100%"><a NAME="combined_continue"></a><b><font color="#000099"><font size=+1>Combining
continuators:</font></font></b> 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 <p><a NAME="writing_checkpoint"></a><b><font color="#FF0000">Writing a
checkpoint:</font></b> checkpoint:</font></b>
<br>This is something you should never have to do. However, should you <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 feel 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 you to that (what is it you couldn't do with existing eoCheckPoint), and
the resulting code, of course. the resulting code, of course.
<br> <br>
<hr WIDTH="100%"><a NAME="statistic"></a><b><font color="#000099"><font size=+1>Statistics:</font></font></b> <hr WIDTH="100%"><a NAME="statistic"></a><b><font color="#000099"><font size=+1>Statistics:</font></font></b>

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.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> <title>Tutorial: Lesson 3</title>
</head> </head>
<body text="#000000" link="#0000EE" vlink="#551A8B" alink="#FF0000" background="beige009.jpg"> <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>. 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 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 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 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> of respectively the <a href="#binary">binary</a> and the <a href="#real">real</a>
algorithms. algorithms.
<br>However, the ultimate purpose of this tutorial is to be able to do <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 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 of these two programs. This is why you should also read the <a href="#programmerguide">programmer's
guides, as the structure and memory managements are here radically different guides</a>, as the structure and memory managements are here radically
that in the 3 previous lessons - though relying of course on the same objects. different that in the 3 previous lessons - though relying of course on
the same objects.
<br>&nbsp; <br>&nbsp;
<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
guide</font></font></b> guide</font></font></b><font color="#000000"></font>
<br><font color="#000000">As already said, the behavior of the algorithms <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 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 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 <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 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 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> 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 parts if you wish.</font>
be described in <a href="eoLEsson3.html#paraminput">Lesson 3</a>. To get <p><b><font color="#FF0000">Warning</font></b><font color="#000000">: this
a list of parameters, type the command with option --help (or -h): with is a user guide, not a programming guide. In particular, the </font><font color="#FF6600">keywords</font><font color="#000000">
both testBit and testReal this will result in</font> 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> <ul>
<li> <li>
<font color="#000000">Printing the list of keywords on the standard output</font></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 or testReal.status that contains the list of all recognized parameters
and has the format of an input parameter file.</font></li> and has the format of an input parameter file.</font></li>
</ul> </ul>
<b><font color="#000099"><font size=+1>User's guide:</font></font></b><font color="#000000"> <b><font color="#000099"><font size=+1>User's guide:</font></font><font color="#FF0000">The
</font><b><font color="#FF0000">The status file</font></b> status file</font></b>
<br><font color="#000000">This file will always contain the list of the <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, 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 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 -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 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> out the rest of the line) in the file are those that were not specified
<p><b><font color="#000099"><font size=+1>User's guide:</font></font></b><font color="#000000"> by the user.</font>
</font><b><font color="#FF0000">Representation-independent parameters</font></b><font color="#000000"></font> <p><b><font color="#000099"><font size=+1>User's guide:</font></font><font color="#FF0000">Representation-independent
<br><font color="#000000">The parameters are organized in sections.</font> parameters</font></b>
<br><font color="#000000">The first section only contains the random seed.</font><font color="#000000"></font> <br><font color="#000000">The parameters are organized in sections. In
<p><b><tt><font color="#993300"><font size=+1>###### General ######</font></font></tt></b> 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 <br><b><tt><font color="#993300"><font size=+1># --help=0 # -h : Prints
this message</font></font></tt></b> this message</font></font></tt></b>
<br><font color="#000000">Whether or not help was requested is handled <br><font color="#FF0000">Boolean parameter </font><font color="#000000">of
through a boolean parameter</font> absolutely no interest: tells whether or not help was requested.</font><b><tt><font color="#993300"><font size=+1></font></font></tt></b>
<br><b><tt><font color="#993300"><font size=+1># --seed=988700289 # -S <p><b><tt><font color="#993300"><font size=+1># --seed=988700289 # -S :
: Random number seed</font></font></tt></b> Random number seed</font></font></tt></b>
<br><font color="#000000">The seed for the <a href="eoProgramming.html#random">Random <br><font color="#FF0000">Unsigned long parameter:</font><font color="#000000">
Number Generator</a></font> the seed for the <a href="eoProgramming.html#random">Random Number Generator</a>
<p><b><tt><font color="#3333FF"><font size=+1>###### Output ######</font></font></tt></b> 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 <br><font color="#000000">This section contains parameters related to output
(to screen, to files, graphical, ...).</font> (to screen, to files, graphical, ...).</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
<br><b><tt><font color="#3333FF"><font size=+1># --useEval=1 # Use nb of <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> eval. as counter (vs nb of gen.)</font></font></tt></b>
<br><font color="#000000">Boolean parameter, whether or not you want the <br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
nb of evluations to be displayed and used as counter in plots</font> whether or not you want the nb of evluations to be displayed and used as
<br><b><tt><font color="#3333FF"><font size=+1># --printBestStat=1 # Print 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> Best/avg/stdev every gen.</font></font></tt></b>
<br><font color="#000000">Boolean parameter, toggles screen output of indicated <br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
statistics</font> toggles screen output of indicated statistics. </font><font color="#FF0000">Default
<br><b><tt><font color="#3333FF"><font size=+1># --plotBestStat=0 # Plot 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> Best/avg Stat</font></font></tt></b>
<br><font color="#000000">Boolean parameter, toggles gnuplot output of <br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
best and average plots (Linux only at the moment)</font> toggles gnuplot output of best and average plots (Linux only at the moment).
<br><b><tt><font color="#3333FF"><font size=+1># --BestFileName=best.xg </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> # Name of file for Best/avg/stdev</font></font></tt></b>
<br><font color="#000000">String parameter, if present, the statistics <br><font color="#FF0000">String parameter:</font><font color="#000000">
are stored in that file (no default)</font> if present, the statistics are stored in that file (</font><font color="#FF0000">no
<br><b><tt><font color="#3333FF"><font size=+1># --printPop=0 # Print sorted 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> pop. every gen.</font></font></tt></b>
<br><font color="#000000">Boolean parameter, adds a dump of the whole population <br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
to the screen every generation</font> adds a dump of the whole population to the screen every generation. Is
<br><b><tt><font color="#3333FF"><font size=+1># --printFDC=1 # Print FDC 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> coeff. every gen.</font></font></tt></b>
<br><font color="#000000">Boolean parameter, adds Fitness Distance Correlation <br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
to output every generation</font> adds Fitness Distance Correlation to output every generation. </font><font color="#FF0000">Default
<br><b><tt><font color="#3333FF"><font size=+1># --plotFDCStat=0 # Plot 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> FDC scatter plot</font></font></tt></b>
<br><font color="#000000">Boolean parameter, toggles the Fitness Distance <br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
Correlation plot (Fitness vs distance to best)</font> toggles the Fitness Distance Correlation plot (Fitness vs distance to best).
<br><b><tt><font color="#3333FF"><font size=+1># --plotHisto=0 # Plot histogram </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> of fitnesses</font></font></tt></b>
<br><font color="#000000">Boolean parameter: if on, gnuplot is used to <br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
plot the sorted population (fitness vs rank). Gives a graphical idea of if on, gnuplot is used to plot the sorted population (fitness vs rank).
the diversity.</font><font color="#000000"></font> Gives a graphical idea of the diversity. </font><font color="#FF0000">Default
<p><b><tt><font color="#3333FF"><font size=+1>###### Persistence ######</font></font></tt></b> 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 <br><font color="#000000">This section contains parameters handling job
restart</font> dump and restart mechanism</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
<br><b><tt><font color="#3333FF"><font size=+1># --Load= # -L : A save <p><b><tt><font color="#3333FF"><font size=+1># --Load= # -L : A save file
file to restart from</font></font></tt></b> to restart from</font></font></tt></b>
<br><font color="#000000">String parameter: if present, the initial population <br><font color="#FF0000">String parameter:</font><font color="#000000">
(and the RNG status) is read from indicated file. That file </font><b><font color="#FF0000">must</font></b><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 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, 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 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 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> file, as it contains all actual parameters in the right format.</font>
<br><font color="#000000">Note that if not enough individuals are read, <br><font color="#000000">Note that if not enough individuals are read,
the remaining are randomly initialized. No default value.</font> the remaining are randomly initialized. </font><font color="#FF0000">No
<br><b><tt><font color="#3333FF"><font size=+1># --recomputeFitness=0 # 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> -r : Recompute the fitness after re-loading the pop.?</font></font></tt></b>
<br><font color="#000000">Boolean parameter: in case some individuals are <br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
read from a file, their fitness is read too. If this one is true, it is in case some individuals are read from a file, their fitness is read too.
nevertheless recomputed.</font> If this one is true, it is nevertheless recomputed. </font><font color="#FF0000">Default
<br><b><tt><font color="#3333FF"><font size=+1># --saveFrequency=0 # Save 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> every F generation (0 = only final state, absent = never)</font></font></tt></b>
<br><font color="#000000">Integer parameter: interval between two dump <br><font color="#FF0000">Integer parameter:</font><font color="#000000">
to disk of the whole population (+RNG + parameters) to disk, in a file interval between two dump to disk of the whole population (+RNG + parameters)
named genNN.sav, where NN&nbsp;is the generation number. If this prameter to disk, in a file named genNN.sav, where NN is the generation number.
is present (even with 0 or negative value), the final population will always If this prameter is present (even with 0 or negative value), the final
be saved, whatever the reason for stopping. Hence the only way to avoid population will always be saved, whatever the reason for stopping. Hence
all saves is to omit the parameter (there is no default value).</font> the only way to avoid all saves is to omit the parameter (there is </font><font color="#FF0000">no
<br><b><tt><font color="#3333FF"><font size=+1># --saveTimeInterval=0 # 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> Save every T seconds (0 or absent = never)</font></font></tt></b>
<br><font color="#000000">Integer parameter: time interval between two <br><font color="#FF0000">Integer parameter:</font><font color="#000000">
population (+RNG + parameters) dumps to disks. Files are names timeNN.sav. time interval between two population (+RNG + parameters) dumps to disks.
See pervious parameter description for ore details. No default value.</font> Files are names timeNN.sav. See pervious parameter description for ore
<br><b><tt><font color="#3333FF"><font size=+1># --status=t-eoGA.status 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> # Status file</font></font></tt></b>
<br><font color="#000000">String parameter: name of the status file (that <br><font color="#FF0000">String parameter:</font><font color="#000000">
contains all parameters in the input format). There is no way to avoid name of the status file (that contains all parameters in the input format).
creating that file except recompiling ... or giving the name /dev/null There is no way to avoid creating that file except recompiling ... or giving
(Unix).</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b> the name /dev/null (Unix). Default value is </font><font color="#FF0000">ProgramName.status</font>
<p><b><tt><font color="#3333FF"><font size=+1>###### Stopping criterion <br>
######</font></font></tt></b> <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 <br><font color="#000000">This section allows to decide when the algorithm
will stop.</font> will stop.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
<br><b><tt><font color="#3333FF"><font size=+1># --maxGen=100 # -G : Maximum <p><b><tt><font color="#3333FF"><font size=+1># --maxGen=100 # -G : Maximum
number of generations (0 = none)</font></font></tt></b> number of generations (0 = none)</font></font></tt></b>
<br><font color="#000000">Integer parameter: maximum number of generations. <br><font color="#000000">Integer parameter: maximum number of generations.
Default is 0 which is equivalent to infinity.</font> A value of 0 disables that stopping criterion. </font><font color="#FF0000">Default
<br><b><tt><font color="#3333FF"><font size=+1># --steadyGen=100 # -s : 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> Number of generations with no improvement</font></font></tt></b>
<br><font color="#000000">Integer parameter: stops whenever that number <br><font color="#FF0000">Integer parameter:</font><font color="#000000">
of generations is passed without any improvement of the best fitness in stops whenever that number of generations is passed without any improvement
the population, provided the following minimum number of generations has of the best fitness in the population, provided the following minimum number
been done. No default value.</font> 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>
<br><b><tt><font color="#3333FF"><font size=+1># --minGen=0 # -g : Minimum <p><b><tt><font color="#3333FF"><font size=+1># --minGen=0 # -g : Minimum
number of generations</font></font></tt></b> number of generations</font></font></tt></b>
<br><font color="#000000">Integer parameter: the above steadyGen parameter <br><font color="#000000">Integer parameter: the above steadyGen parameter
starts its job only after that minimum nuber of generations is passed. starts its job only after that minimum nuber of generations is passed.
No default value.</font> </font><font color="#FF0000">No default value.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
<br><b><tt><font color="#3333FF"><font size=+1># --maxEval=0 # -E : Maximum <p><b><tt><font color="#3333FF"><font size=+1># --maxEval=0 # -E : Maximum
number of evaluations (0 = none)</font></font></tt></b> number of evaluations (0 = none)</font></font></tt></b>
<br><font color="#000000">Integer parameter: maximum number of generations. <br><font color="#000000">Integer parameter: maximum number of generations.
No default value.</font> </font><font color="#FF0000">No default value.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
<br><b><tt><font color="#3333FF"><font size=+1># --targetFitness=0 # -T <p><b><tt><font color="#3333FF"><font size=+1># --targetFitness=0 # -T
: Stop when fitness reaches</font></font></tt></b> : Stop when fitness reaches</font></font></tt></b>
<br><font color="#000000">Real-valued parameter: the algorithm stops whenever <br><font color="#000000">Real-valued parameter: the algorithm stops whenever
the best fitness reaches that target. No default value.</font> the best fitness reaches that target. </font><font color="#FF0000">No default
<br><b><tt><font color="#3333FF"><font size=+1># --CtrlC=0 # -C : Terminate 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> current generation upon Ctrl C</font></font></tt></b>
<br><font color="#000000">Boolean parameter: if true, Ctrl C only stops <br><font color="#000000">Boolean parameter: if true, Ctrl C only stops
after the current generation as completed (eventually dumping population after the current generation as completed (eventually dumping population
to a file if some saver is active).</font> to a file if some saver is active). THis very useful feature is only available
<p><b><tt><font color="#009900"><font size=+1>###### engine ######</font></font></tt></b> 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 <br><font color="#000000">In this section, one chooses all components of
the Evolution Engine (selection, replacemenet and the like).</font> the <a href="eoEngine.html">Evolution Engine</a> (selection, replacemenet
<br><b><tt><font color="#009900"><font size=+1># --selection=DetTour(2) 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> # -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. <br><font color="#FF0000">String parameter:</font><font color="#000000">
Availabable are the </font><b><font color="#FF6600">roulette wheel</font></b><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">, (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"> 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 with size - integer > 2 - in parentheses right after the name, use double
quotes on the command line),&nbsp; stochastic tournament (name </font><b><tt><font color="#009900"><font size=+1>StochTour</font></font></tt></b><font color="#000000"> quotes on the command line);&nbsp; </font><b><font color="#FF6600">stochastic
with probability - float in [0.5, 1] - in parentheses), sequential (name 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">, </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"> 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">) 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&nbsp; (name </font><b><tt><font color="#009900"><font size=+1>Random</font></font></tt></b><font color="#000000">).</font> and finally repeated </font><b><font color="#FF6600">independent uniform
<br><b><tt><font color="#009900"><font size=+1># --offspringRate=100% # choices</font></b><font color="#000000">&nbsp; (name </font><b><tt><font color="#009900"><font size=+1>Random</font></font></tt></b><font color="#000000">).
-O : Nb of offspring (percentage or absolute)</font></font></tt></b><b><tt><font color="#009900"><font size=+1></font></font></tt></b> 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 <p><b><tt><font color="#009900"><font size=+1># --replacement=Comma # -R
: Replacement: Comma, Plus or EPTour(T)</font></font></tt></b> : Replacement: Comma, Plus, EPTour(T), SSGAWorst, SSGADet(T), SSGAStoch(t)</font></font></tt></b>
<br><font color="#000000">String parameter: Name of replacement procedure. <br><font color="#FF0000">String parameter:</font><font color="#000000">
Availabable are</font> Name of replacement procedure. Availabable are the </font><b><font color="#FF6600">ES
<br><b><tt><font color="#009900"><font size=+1># --weakElitism=0 # -w : 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&nbsp; </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">),&nbsp;
or based on a tournament&nbsp; (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">&nbsp;
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> Old best parent replaces new worst offspring *if necessary*</font></font></tt></b>
<br><font color="#009900"></font>&nbsp; <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>&nbsp;
<p> <p>
<hr WIDTH="100%"> <hr WIDTH="100%">
<br><a NAME="programmerguide"></a><b><font color="#000099"><font size=+2>Programmer's <br><a NAME="programmerguide"></a><b><font color="#000099"><font size=+2>Programmer's

View file

@ -17,9 +17,9 @@ and to</font></b></center>
<h1> <h1>
<font color="#FF0000">EO Tutorial</font></h1></center> <font color="#FF0000">EO Tutorial</font></h1></center>
<center><font color="#FF0000">Version 0.95 - May. 2 2001</font><br> <center><font color="#FF0000">Version 0.95 - May. 2 2001</font>
New: Lesson4 - with user guide of fully operational program <br><b><font color="#FF6600">New</font></b>: <a href="eoLesson4.html">Lesson4</a>
</center> - with user guide of fully operational program</center>
<p>Welcome to EO tutorial/on-line documentation. <p>Welcome to EO tutorial/on-line documentation.
<p>Please note that <b><font color="#FF6600">this tutorial is not supposed <p>Please note that <b><font color="#FF6600">this tutorial is not supposed