Corrected a problem in eoEsChromInit (it refused plain eoReal) + some
other minor modications (e.g. a dir in make_checkpoint where ALL file will go).
This commit is contained in:
parent
1eee26598b
commit
f4d2630516
9 changed files with 98 additions and 64 deletions
|
|
@ -73,7 +73,7 @@ template <class EOT>
|
|||
eoAlgo<EOT> & do_make_algo_scalar(eoParameterLoader& _parser, eoState& _state, eoEvalFunc<EOT>& _eval, eoContinue<EOT>& _ccontinue, eoGenOp<EOT>& _op)
|
||||
{
|
||||
// the selection
|
||||
eoValueParam<eoParamParamType>& selectionParam = _parser.createParam(eoParamParamType("DetTour(2)"), "selection", "Selection: Roulette, DetTour(T), StochTour(t) or Sequential(ordered/unordered)", 'S', "engine");
|
||||
eoValueParam<eoParamParamType>& selectionParam = _parser.createParam(eoParamParamType("DetTour(2)"), "selection", "Selection: Roulette, DetTour(T), StochTour(t) or Sequential(ordered/unordered)", 'S', "Evolution Engine");
|
||||
|
||||
eoParamParamType & ppSelect = selectionParam.value(); // pair<string,vector<string> >
|
||||
|
||||
|
|
@ -109,18 +109,21 @@ eoAlgo<EOT> & do_make_algo_scalar(eoParameterLoader& _parser, eoState& _state, e
|
|||
select = new eoProportionalSelect<EOT>;
|
||||
}
|
||||
else
|
||||
throw runtime_error("Invalid selection");
|
||||
{
|
||||
string stmp = string("Invalid selection: ") + ppSelect.first;
|
||||
throw runtime_error(stmp.c_str());
|
||||
}
|
||||
|
||||
_state.storeFunctor(select);
|
||||
|
||||
// the number of offspring
|
||||
eoValueParam<eoRateParamType>& offspringRateParam = _parser.createParam(eoRateParamType("100%"), "nbOffspring", "Nb of offspring (percentage or absolute)", 'O', "engine");
|
||||
eoValueParam<eoRateParamType>& offspringRateParam = _parser.createParam(eoRateParamType("100%"), "nbOffspring", "Nb of offspring (percentage or absolute)", 'O', "Evolution Engine");
|
||||
// an eoRateParamType is simply a pair<double,bool>
|
||||
double offRate=offspringRateParam.value().first;
|
||||
bool offInterpret_as_rate = offspringRateParam.value().second;
|
||||
|
||||
// the replacement
|
||||
eoValueParam<eoParamParamType>& replacementParam = _parser.createParam(eoParamParamType("Comma"), "replacement", "Replacement: Comma, Plus or EPTour(T), SSGAWorst, SSGADet(T), SSGAStoch(t)", 'R', "engine");
|
||||
eoValueParam<eoParamParamType>& replacementParam = _parser.createParam(eoParamParamType("Comma"), "replacement", "Replacement: Comma, Plus or EPTour(T), SSGAWorst, SSGADet(T), SSGAStoch(t)", 'R', "Evolution Engine");
|
||||
|
||||
eoParamParamType & ppReplace = replacementParam.value(); // pair<string,vector<string> >
|
||||
|
||||
|
|
@ -159,12 +162,15 @@ eoAlgo<EOT> & do_make_algo_scalar(eoParameterLoader& _parser, eoState& _state, e
|
|||
replace = new eoSSGAStochTournamentReplacement<EOT>(p);
|
||||
}
|
||||
else
|
||||
throw runtime_error("Invalid replacement");
|
||||
{
|
||||
string stmp = string("Invalid replacement: ") + ppReplace.first;
|
||||
throw runtime_error(stmp.c_str());
|
||||
}
|
||||
|
||||
_state.storeFunctor(replace);
|
||||
|
||||
// adding weak elitism
|
||||
eoValueParam<bool>& weakElitismParam = _parser.createParam(false, "weakElitism", "Old best parent replaces new worst offspring *if necessary*", 'w', "engine");
|
||||
eoValueParam<bool>& weakElitismParam = _parser.createParam(false, "weakElitism", "Old best parent replaces new worst offspring *if necessary*", 'w', "Evolution Engine");
|
||||
if (weakElitismParam.value())
|
||||
{
|
||||
eoReplacement<EOT> *replaceTmp = replace;
|
||||
|
|
|
|||
|
|
@ -77,12 +77,15 @@ eoCheckPoint<EOT>& do_make_checkpoint(eoParameterLoader& _parser, eoState& _stat
|
|||
// Best fitness in population
|
||||
//---------------------------
|
||||
eoValueParam<bool>& printBestParam = _parser.createParam(true, "printBestStat", "Print Best/avg/stdev every gen.", '\0', "Output");
|
||||
eoValueParam<bool>& plotBestParam = _parser.createParam(false, "plotBestStat", "Plot Best/avg Stat", '\0', "Output");
|
||||
eoValueParam<string>& bestFileNameParam = _parser.createParam(string("best.xg"), "BestFileName", "Name of file for Best/avg/stdev", '\0', "Output");
|
||||
bool fileBestParam = _parser.isItThere(bestFileNameParam);
|
||||
eoValueParam<bool>& plotBestParam = _parser.createParam(false, "plotBestStat", "Plot Best/avg Stat", '\0', "Output - Graphical");
|
||||
|
||||
// dir for DISK output
|
||||
eoValueParam<string>& dirNameParam = _parser.createParam(string("Res"), "resDir", "Directory to store DISK outputs", '\0', "Output - Disk");
|
||||
eoValueParam<bool>& fileBestParam = _parser.createParam(false, "fileBestStat", "Output bes/avg/std to file", '\0', "Output - Disk");
|
||||
|
||||
|
||||
eoBestFitnessStat<EOT> *bestStat = NULL;
|
||||
if ( printBestParam.value() || plotBestParam.value() || fileBestParam )
|
||||
if ( printBestParam.value() || plotBestParam.value() || fileBestParam.value() )
|
||||
// we need the bestStat for at least one of the 3 above
|
||||
{
|
||||
bestStat = new eoBestFitnessStat<EOT>;
|
||||
|
|
@ -134,7 +137,7 @@ eoCheckPoint<EOT>& do_make_checkpoint(eoParameterLoader& _parser, eoState& _stat
|
|||
// the Fitness Distance Correlation
|
||||
//---------------------------------
|
||||
eoValueParam<bool>& printFDCParam = _parser.createParam(true, "printFDC", "Print FDC coeff. every gen.", '\0', "Output");
|
||||
eoValueParam<bool>& plotFDCParam = _parser.createParam(false, "plotFDCStat", "Plot FDC scatter plot", '\0', "Output");
|
||||
eoValueParam<bool>& plotFDCParam = _parser.createParam(false, "plotFDCStat", "Plot FDC scatter plot", '\0', "Output - Graphical");
|
||||
|
||||
eoFDCStat<EOT> *fdcStat = NULL;
|
||||
if ( printFDCParam.value() || plotFDCParam.value() ) // we need FDCStat
|
||||
|
|
@ -180,9 +183,10 @@ eoCheckPoint<EOT>& do_make_checkpoint(eoParameterLoader& _parser, eoState& _stat
|
|||
monitor->add(*popStat);
|
||||
}
|
||||
|
||||
if (fileBestParam) // A file monitor for best & secondMoment
|
||||
if (fileBestParam.value()) // A file monitor for best & secondMoment
|
||||
{
|
||||
eoFileMonitor *fileMonitor = new eoFileMonitor(bestFileNameParam.value());
|
||||
string stmp = dirNameParam.value() + "/best.xg";
|
||||
eoFileMonitor *fileMonitor = new eoFileMonitor(stmp);
|
||||
// save and give to checkpoint
|
||||
_state.storeFunctor(fileMonitor);
|
||||
checkpoint->add(*fileMonitor);
|
||||
|
|
@ -195,7 +199,8 @@ eoCheckPoint<EOT>& do_make_checkpoint(eoParameterLoader& _parser, eoState& _stat
|
|||
|
||||
if (plotBestParam.value()) // an eoGnuplot1DMonitor for best & average
|
||||
{
|
||||
eoGnuplot1DMonitor *gnuMonitor = new eoGnuplot1DMonitor("_gnu_best.xg",minimizing_fitness<EOT>());
|
||||
string stmp = dirNameParam.value() + "_gnu_best.xg";
|
||||
eoGnuplot1DMonitor *gnuMonitor = new eoGnuplot1DMonitor(stmp,minimizing_fitness<EOT>());
|
||||
// save and give to checkpoint
|
||||
_state.storeFunctor(gnuMonitor);
|
||||
checkpoint->add(*gnuMonitor);
|
||||
|
|
@ -211,7 +216,7 @@ eoCheckPoint<EOT>& do_make_checkpoint(eoParameterLoader& _parser, eoState& _stat
|
|||
if (plotFDCParam.value()) // a specific plot monitor for FDC
|
||||
{
|
||||
// first into a file (it adds everything ti itself
|
||||
eoFDCFileSnapshot<EOT> *fdcFileSnapshot = new eoFDCFileSnapshot<EOT>(*fdcStat);
|
||||
eoFDCFileSnapshot<EOT> *fdcFileSnapshot = new eoFDCFileSnapshot<EOT>(*fdcStat, dirNameParam.value());
|
||||
_state.storeFunctor(fdcFileSnapshot);
|
||||
// then to a Gnuplot monitor
|
||||
eoGnuplot1DSnapshot *fdcGnuplot = new eoGnuplot1DSnapshot(*fdcFileSnapshot);
|
||||
|
|
@ -222,14 +227,14 @@ eoCheckPoint<EOT>& do_make_checkpoint(eoParameterLoader& _parser, eoState& _stat
|
|||
checkpoint->add(*fdcGnuplot);
|
||||
}
|
||||
|
||||
eoValueParam<bool> plotHistogramParam = _parser.createParam(false, "plotHisto", "Plot histogram of fitnesses", '\0', "Output");
|
||||
eoValueParam<bool> plotHistogramParam = _parser.createParam(false, "plotHisto", "Plot histogram of fitnesses", '\0', "Output - Graphical");
|
||||
if (plotHistogramParam.value()) // want to see how the fitness is spread?
|
||||
{
|
||||
eoScalarFitnessStat<EOT> *fitStat = new eoScalarFitnessStat<EOT>;
|
||||
_state.storeFunctor(fitStat);
|
||||
checkpoint->add(*fitStat);
|
||||
// a gnuplot-based monitor for snapshots: needs a dir name
|
||||
eoGnuplot1DSnapshot *fitSnapshot = new eoGnuplot1DSnapshot("Fitnesses");
|
||||
eoGnuplot1DSnapshot *fitSnapshot = new eoGnuplot1DSnapshot(dirNameParam.value());
|
||||
_state.storeFunctor(fitSnapshot);
|
||||
// add any stat that is a vector<double> to it
|
||||
fitSnapshot->add(*fitStat);
|
||||
|
|
@ -248,7 +253,8 @@ eoCheckPoint<EOT>& do_make_checkpoint(eoParameterLoader& _parser, eoState& _stat
|
|||
if (_parser.isItThere(saveFrequencyParam))
|
||||
{
|
||||
unsigned freq = (saveFrequencyParam.value()>0 ? saveFrequencyParam.value() : UINT_MAX );
|
||||
eoCountedStateSaver *stateSaver1 = new eoCountedStateSaver(freq, _state, "generation");
|
||||
string stmp = dirNameParam.value() + "/generations";
|
||||
eoCountedStateSaver *stateSaver1 = new eoCountedStateSaver(freq, _state, stmp);
|
||||
_state.storeFunctor(stateSaver1);
|
||||
checkpoint->add(*stateSaver1);
|
||||
}
|
||||
|
|
@ -257,7 +263,8 @@ eoCheckPoint<EOT>& do_make_checkpoint(eoParameterLoader& _parser, eoState& _stat
|
|||
eoValueParam<unsigned>& saveTimeIntervalParam = _parser.createParam(unsigned(0), "saveTimeInterval", "Save every T seconds (0 or absent = never)", '\0',"Persistence" );
|
||||
if (_parser.isItThere(saveTimeIntervalParam) && saveTimeIntervalParam.value()>0)
|
||||
{
|
||||
eoTimedStateSaver *stateSaver2 = new eoTimedStateSaver(saveTimeIntervalParam.value(), _state, "time");
|
||||
string stmp = dirNameParam.value() + "/time";
|
||||
eoTimedStateSaver *stateSaver2 = new eoTimedStateSaver(saveTimeIntervalParam.value(), _state, stmp);
|
||||
_state.storeFunctor(stateSaver2);
|
||||
checkpoint->add(*stateSaver2);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,8 +47,11 @@
|
|||
template <class EOT>
|
||||
eoPop<EOT>& do_make_pop(eoParser & _parser, eoState& _state, eoInit<EOT> & _init)
|
||||
{
|
||||
eoValueParam<uint32>& seedParam = _parser.createParam(uint32(time(0)), "seed", "Random number seed", 'S');
|
||||
eoValueParam<unsigned>& popSize = _parser.createParam(unsigned(20), "popSize", "Population Size", 'P', "initialization");
|
||||
// random seed
|
||||
eoValueParam<uint32>& seedParam = _parser.createParam(uint32(0), "seed", "Random number seed", 'S');
|
||||
if (seedParam.value() == 0)
|
||||
seedParam.value() = random_seed();
|
||||
eoValueParam<unsigned>& popSize = _parser.createParam(unsigned(20), "popSize", "Population Size", 'P', "Evolution Engine");
|
||||
|
||||
// Either load or initialize
|
||||
// create an empty pop and let the state handle the memory
|
||||
|
|
|
|||
|
|
@ -74,10 +74,8 @@ public :
|
|||
private :
|
||||
|
||||
// No adaptive mutation at all
|
||||
void create_self_adapt(eoReal<FitT>& result)// security check :-)
|
||||
{
|
||||
throw runtime_error("We should not be in create_self_adapt(eoReal)!");
|
||||
}
|
||||
void create_self_adapt(eoReal<FitT>& result)// nothing to do here ...
|
||||
{ }
|
||||
|
||||
// Adaptive mutation through a unique sigma
|
||||
void create_self_adapt(eoEsSimple<FitT>& result)
|
||||
|
|
|
|||
|
|
@ -64,10 +64,10 @@ eoEsChromInit<EOT> & do_make_genotype(eoParameterLoader& _parser, eoState& _stat
|
|||
typedef typename EOT::Fitness FitT;
|
||||
|
||||
// for eoReal, only thing needed is the size
|
||||
eoValueParam<unsigned>& vecSize = _parser.createParam(unsigned(10), "vecSize", "The number of variables ", 'n',"initialization");
|
||||
eoValueParam<unsigned>& vecSize = _parser.createParam(unsigned(10), "vecSize", "The number of variables ", 'n',"Genotype Initialization");
|
||||
|
||||
// to build an eoReal Initializer, we need bounds
|
||||
eoValueParam<eoParamParamType>& boundsParam = _parser.createParam(eoParamParamType("(0,1)"), "initBounds", "Bounds for uniform initialization", 'B', "initialization");
|
||||
eoValueParam<eoParamParamType>& boundsParam = _parser.createParam(eoParamParamType("(0,1)"), "initBounds", "Bounds for uniform initialization", 'B', "Genotype Initialization");
|
||||
|
||||
eoParamParamType & ppBounds = boundsParam.value(); // pair<string,vector<string> >
|
||||
// transform into a vector<double>
|
||||
|
|
@ -90,7 +90,7 @@ eoEsChromInit<EOT> & do_make_genotype(eoParameterLoader& _parser, eoState& _stat
|
|||
|
||||
// now some initial value for sigmas - even if useless?
|
||||
// shoudl be used in Normal mutation
|
||||
eoValueParam<double>& sigmaParam = _parser.createParam(0.3, "sigmaInit", "Initial value for Sigma(s)", 's',"initialization");
|
||||
eoValueParam<double>& sigmaParam = _parser.createParam(0.3, "sigmaInit", "Initial value for Sigma(s)", 's',"Genotype Initialization");
|
||||
|
||||
// minimum check
|
||||
if ( (sigmaParam.value() < 0) )
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ template <class EOT>
|
|||
eoInit<EOT> & do_make_genotype(eoParameterLoader& _parser, eoState& _state, EOT)
|
||||
{
|
||||
// for bitstring, only thing needed is the size
|
||||
eoValueParam<unsigned>& chromSize = _parser.createParam(unsigned(10), "ChromSize", "The length of the bitstrings", 'n',"initialization");
|
||||
eoValueParam<unsigned>& chromSize = _parser.createParam(unsigned(10), "ChromSize", "The length of the bitstrings", 'n',"Genotype Initialization");
|
||||
|
||||
// Then we can built a bitstring random initializer
|
||||
// based on boolean_generator class (see utils/rnd_generator.h)
|
||||
|
|
|
|||
|
|
@ -1,9 +1,22 @@
|
|||
#include <ctime>
|
||||
#include "eoRNG.h"
|
||||
|
||||
#include <sys/time.h>
|
||||
/** this function retunrs a "truly random" seed for RNG
|
||||
* Replaces the call to time(0) that seems to be non-portable???
|
||||
*/
|
||||
uint32 random_seed()
|
||||
{
|
||||
struct timeval tval;
|
||||
struct timezone tzp;
|
||||
|
||||
gettimeofday (&tval, &tzp); // milliseconds since midnight January 1, 1970.
|
||||
return uint32(tval.tv_usec);
|
||||
}
|
||||
|
||||
namespace eo
|
||||
{
|
||||
/// The Global random number generator.
|
||||
eoRng rng((uint32) time(0));
|
||||
eoRng rng(random_seed());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -288,6 +288,8 @@ extern eoRng rng;
|
|||
|
||||
using eo::rng;
|
||||
|
||||
/** the random_seed utility in eoRNG.cpp */
|
||||
extern uint32 random_seed();
|
||||
|
||||
// Implementation of some eoRng members.... Don't mind the mess, it does work.
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.75 [en] (X11; U; Linux 2.2.17-21mdk i686) [Netscape]">
|
||||
<meta name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; Linux 2.2.17-21mdksmp i686) [Netscape]">
|
||||
<title>Tutorial: Lesson 3</title>
|
||||
</head>
|
||||
<body text="#000000" link="#0000EE" vlink="#551A8B" alink="#FF0000" background="beige009.jpg">
|
||||
|
|
@ -38,7 +38,7 @@ the same objects.
|
|||
<p>
|
||||
<hr WIDTH="100%">
|
||||
<br><a NAME="userguide"></a><b><font color="#000099"><font size=+2>User's
|
||||
guide</font></font></b><font color="#000000"></font>
|
||||
guide</font></font></b>
|
||||
<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
|
||||
|
|
@ -55,7 +55,7 @@ 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
|
||||
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>
|
||||
|
|
@ -88,7 +88,7 @@ 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="#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>
|
||||
absolutely no interest: tells whether or not help was requested.</font>
|
||||
<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">
|
||||
|
|
@ -103,44 +103,46 @@ seed)</font><font color="#000000">.</font>
|
|||
<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><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
(to screen, to files, graphical, ...).</font>
|
||||
<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="#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>
|
||||
is true</font><font color="#000000">.</font>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --printBestStat=1 # Print
|
||||
Best/avg/stdev every gen.</font></font></tt></b>
|
||||
<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>
|
||||
is true</font><font color="#000000">.</font>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --plotBestStat=0 # Plot
|
||||
Best/avg Stat</font></font></tt></b>
|
||||
<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>
|
||||
</font><font color="#FF0000">Default
|
||||
is false.</font>
|
||||
<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="#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>
|
||||
default</font><font color="#000000">)</font>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --printPop=0 # Print sorted
|
||||
pop. every gen.</font></font></tt></b>
|
||||
<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>
|
||||
output! </font><font color="#FF0000">Default is false.</font>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --printFDC=1 # Print FDC
|
||||
coeff. every gen.</font></font></tt></b>
|
||||
<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>
|
||||
is false.</font>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --plotFDCStat=0 # Plot
|
||||
FDC scatter plot</font></font></tt></b>
|
||||
<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>
|
||||
</font><font color="#FF0000">Default
|
||||
is false.</font>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --plotHisto=0 # Plot histogram
|
||||
of fitnesses</font></font></tt></b>
|
||||
<br><font color="#FF0000">Boolean parameter:</font><font color="#000000">
|
||||
|
|
@ -152,7 +154,7 @@ is false.</font>
|
|||
<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
|
||||
dump and restart mechanism</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
dump and restart mechanism</font>
|
||||
<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">
|
||||
|
|
@ -166,13 +168,13 @@ 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. </font><font color="#FF0000">No
|
||||
default value</font><font color="#000000">.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
default value</font><font color="#000000">.</font>
|
||||
<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="#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>
|
||||
is false</font><font color="#000000"> i.e. use fitnes that's in the file.</font>
|
||||
<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="#FF0000">Integer parameter:</font><font color="#000000">
|
||||
|
|
@ -181,13 +183,13 @@ 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>
|
||||
default value</font><font color="#000000">).</font>
|
||||
<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="#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>
|
||||
details. </font><font color="#FF0000">No default value.</font>
|
||||
<p><b><tt><font color="#3333FF"><font size=+1># --status=t-eoGA.status
|
||||
# Status file</font></font></tt></b>
|
||||
<br><font color="#FF0000">String parameter:</font><font color="#000000">
|
||||
|
|
@ -199,32 +201,34 @@ the name /dev/null (Unix). Default value is </font><font color="#FF0000">Program
|
|||
<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><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
will stop.</font>
|
||||
<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.
|
||||
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>
|
||||
is 100.</font>
|
||||
<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="#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>
|
||||
of generations has been done. </font><font color="#FF0000">No default value.</font>
|
||||
<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.
|
||||
</font><font color="#FF0000">No default value.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
</font><font color="#FF0000">No
|
||||
default value.</font>
|
||||
<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.
|
||||
</font><font color="#FF0000">No default value.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
</font><font color="#FF0000">No
|
||||
default value.</font>
|
||||
<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. </font><font color="#FF0000">No default
|
||||
value.</font><b><tt><font color="#3333FF"><font size=+1></font></font></tt></b>
|
||||
value.</font>
|
||||
<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
|
||||
|
|
@ -237,7 +241,7 @@ in Unix at the moment. </font><font color="#FF0000">Default is false.</font>
|
|||
engine ######</font></tt></font></b>
|
||||
<br><font color="#000000">In this section, one chooses all components of
|
||||
the <a href="eoEngine.html">Evolution Engine</a> (selection, replacemenet
|
||||
and the like).</font><font color="#000000"></font>
|
||||
and the like).</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="#FF0000">String parameter:</font><font color="#000000">
|
||||
|
|
@ -256,23 +260,23 @@ all individuals in turn), either from best to worst (option </font><b><tt><font
|
|||
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>
|
||||
Default is </font><font color="#FF0000">DetTour(2)</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">
|
||||
</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>
|
||||
enter value 1. </font><font color="#FF0000">Default is 100%</font><font color="#000000">.</font>
|
||||
<p><b><tt><font color="#009900"><font size=+1># --replacement=Comma # -R
|
||||
: Replacement: Comma, Plus, EPTour(T), SSGAWorst, SSGADet(T), SSGAStoch(t)</font></font></tt></b>
|
||||
<br><font color="#FF0000">String parameter:</font><font color="#000000">
|
||||
|
|
@ -280,18 +284,19 @@ Name of replacement procedure. Availabable are the </font><b><font color="#FF660
|
|||
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">
|
||||
</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">
|
||||
</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>
|
||||
as parents).</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="#FF0000">Boolean parameter:</font><font color="#000000">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue