Common FARSA setup of GA. More...

Inheritance diagram for LaralGA:

Public Member Functions

 LaralGA ()
 Constructor.
 
virtual ~LaralGA ()
 Destructor.
 
virtual void configure (ConfigurationParameters &params, QString prefix)
 Configure the object using the ConfigurationParameters specified.
 
virtual QVector< Evaluation * > evaluationPool ()
 Return the Evaluation Pool containing the Evaluations used.
 
virtual EvaluationevaluationPrototype ()
 Returns the Evaluation object used as prototype to eventually generate other evaluators.
 
virtual void finalize ()
 Finalize the Genetic Algorithm Process.
 
MultiTrialsfitnessFunction ()
 Return the fitness function.
 
virtual void gaStep ()
 Execute a single minor step and return.
 
virtual void initialize ()
 Initialize the Genetic Algorithm Process:
 
bool isElitismEnabled ()
 Return true if elitism is enabled.
 
Mutationmutation ()
 Return the Mutation operator.
 
int numElitism ()
 Return the number of elited Genotypes.
 
int numOffspring ()
 Return the number of offspring for each selected Genotype.
 
int numReproducing ()
 Return the number of selected Genotypes.
 
int numThreads ()
 Return the number of thread currently used.
 
virtual void save (ConfigurationParameters &params, QString prefix)
 Save the actual status of parameters into the ConfigurationParameters object passed.
 
void setFitnessFunction (MultiTrials *fitfunc)
 Set the fitness function to use.
 
void setMutation (Mutation *mutate)
 Set the Mutation operator to use.
 
void setNumThreads (int numThreads)
 Set the number of thread to use; or in other words the number of parallel evaluation of Genotypes.
 
void setReproduceParams (int nreproducing, bool useElitism=false, int nelitism=0)
 Set Reproducing parameters

 
virtual void skipEvaluation ()
 Skip the evaluation phase and put the algorithm in the state just after the evaluation.
 
- Public Member Functions inherited from GeneticAlgo
 GeneticAlgo ()
 Constructor.
 
virtual ~GeneticAlgo ()
 Destructor.
 
QVector< QVector< double > > averageFits () const
 Return the Average objective values over generation done.
 
QVector< QVector< double > > bestFits () const
 Return the Best objective values over generation done.
 
void evolve (unsigned int generationToReach)
 Evolve Genome until reach the generation specified.
 
void evolve ()
 Evolve Genome until condition isEvolutionEnded has been reached.
 
unsigned int generation () const
 Return the current generation number.
 
Genomegenome ()
 Return the current Genome.
 
const Genomegenome () const
 Return the current Genome.
 
bool isEvaluationDone ()
 returns true if we have evaluated genomes for the current generation
 
bool isEvolutionEnded ()
 returns true if the evolution process has reached the end
 
QVector< double > meanHammingDist () const
 Return the Mean of Hamming distance over generation done.
 
int numGenerations ()
 Return the number of Generations.
 
void setGeneration (unsigned int gen)
 Set the generation number.
 
void setGenome (Genome *gen)
 Set the Genome to use as current population.
 
void setNumGenerations (int g)
 Set the number of Generations to do.
 
QVector< double > standardDeviationHammingDist () const
 Return the Standard Deviation of Hamming distance over generation done.
 
QVector< double > varianceHammingDist () const
 Return the Variance of Hamming distance over generation done.
 
- Public Member Functions inherited from ParameterSettableWithConfigureFunction
void addObserver (RuntimeParameterObserver *obs)
 
getRuntimeParameter (QString paramName)
 
virtual ParameterSettableUIgetUIManager ()
 
 ParameterSettable ()
 
virtual void postConfigureInitialization ()
 
void removeObserver (RuntimeParameterObserver *obs)
 
void setRuntimeParameter (QString paramName, T newvalue)
 
QString typeName () const
 
- Public Member Functions inherited from ParameterSettable
void addObserver (RuntimeParameterObserver *obs)
 
getRuntimeParameter (QString paramName)
 
void removeObserver (RuntimeParameterObserver *obs)
 
void setRuntimeParameter (QString paramName, T newvalue)
 
QString typeName () const
 

Static Public Member Functions

static void describe (QString type)
 Add to Factory::typeDescriptions() the descriptions of all parameters and subgroups.
 

Protected Types

enum  GAPhases {
  initEvaluation, evaluating, nextGeneration_pass1, nextGeneration_pass2,
  endEvolution
}
 used for manage GA cycle More...
 

Protected Attributes

unsigned int currGenotype
 current Genotype in evaluation
 
GAPhases currPhase
 current Phase
 
bool elitismEnabled
 true is elitism is enabled
 
MultiTrialsfitfunc
 fitness function
 
bool isFinalized
 True if LaralGA is finalized.
 
bool isInitialized
 True if LaralGA is initialized.
 
Mutationmuta
 mutation operator
 
int nelitism
 number of elited genotypes
 
int noffspring
 number of offspring
 
int nreproducing
 number of selected genotypes
 
- Protected Attributes inherited from GeneticAlgo
QVector< QVector< double > > avgfits
 Statistical Data: report the Average value for each objective for each generation.
 
QVector< QVector< double > > bestfits
 Statistical Data: report the Best value for each objective for each generation.
 
bool evaluationDone
 setted by implementors to signal that genomes have been evaluated
when true means that the genomes of the current generation have been evaluated (we are at the end of the end of the generation, next step will be reproduction and start of a new generation), when false means that genomes haven't still not been evaluated (we are at the beginning of a generation, next step will be evaluation of genomes)
 
bool evolutionEnd
 setted by implementors to signal the finish of evolution process
when true means that evolution is ended
 
unsigned int generationv
 current generation
 
Genomegenomev
 current genome
 
QVector< double > meanHdists
 Statistical Data: report the mean of all hamming distance between genotypes for each generation.
 
unsigned int numGens
 number of generations
 
QVector< double > stdHdists
 Statistical Data: report the standard variation of all hamming distance between genotypes for each generation.
 
QVector< double > varHdists
 Statistical Data: report the variance of all hamming distance between genotypes for each generation.
 

Additional Inherited Members

- Public Types inherited from ParameterSettableWithConfigureFunction
enum  Property
 
- Public Attributes inherited from ParameterSettableWithConfigureFunction
 AllowMultiple
 
 Default
 
 IsList
 
 IsMandatory
 
- Static Public Attributes inherited from ParameterSettableWithConfigureFunction
static const double Infinity
 
static const int MaxInteger
 
static const int MinInteger
 
- Protected Member Functions inherited from GeneticAlgo
void updateStats ()
 Update statistical data of current generation and Genome (Mean, Variance, Standard Deviation)
 
- Static Protected Member Functions inherited from ParameterSettableWithConfigureFunction
static Descriptor addTypeDescription (QString type, QString shortHelp, QString longHelp=QString(""))
 
static void setGraphicalEditor (QString type)
 

Detailed Description

Common FARSA setup of GA.

Description
This GA implements the common characteristics of FARSA setup:
Warnings

Definition at line 44 of file laralga.h.

Member Enumeration Documentation

enum GAPhases
protected

used for manage GA cycle

Definition at line 136 of file laralga.h.

Constructor & Destructor Documentation

~LaralGA ( )
virtual

Destructor.

Definition at line 48 of file laralga.cpp.

Member Function Documentation

void configure ( ConfigurationParameters params,
QString  prefix 
)
virtual

Configure the object using the ConfigurationParameters specified.

Parameters
paramsthe object with configuration parameters
prefixthe group in which parameters are expected to be (this is terminated by a separator character). We expect to receive as prefix the group which contains all GA parameters

Implements ParameterSettableWithConfigureFunction.

Definition at line 52 of file laralga.cpp.

References LaralGA::fitfunc, GeneticAlgo::genome(), ConfigurationHelper::getInt(), ConfigurationParameters::getObjectFromGroup(), ConfigurationParameters::getValue(), ConfigurationParameters::GroupSeparator(), LaralGA::nelitism, LaralGA::setFitnessFunction(), GeneticAlgo::setGenome(), Evaluation::setGenome(), LaralGA::setMutation(), GeneticAlgo::setNumGenerations(), LaralGA::setNumThreads(), and LaralGA::setReproduceParams().

QVector< Evaluation * > evaluationPool ( )
virtual

Return the Evaluation Pool containing the Evaluations used.

Implements GeneticAlgo.

Definition at line 123 of file laralga.cpp.

Evaluation * evaluationPrototype ( )
virtual

Returns the Evaluation object used as prototype to eventually generate other evaluators.

This object could be or could be not used to compute the fitness of genotypes (depending on the specific genetic algorithm)

Implements GeneticAlgo.

Definition at line 118 of file laralga.cpp.

References LaralGA::fitfunc.

void finalize ( )
virtual

Finalize the Genetic Algorithm Process.

Implements GeneticAlgo.

Definition at line 282 of file laralga.cpp.

References GeneticAlgo::evolutionEnd, LaralGA::isFinalized, and LaralGA::isInitialized.

Referenced by LaralGA::gaStep().

MultiTrials * fitnessFunction ( )

Return the fitness function.

Definition at line 131 of file laralga.cpp.

References LaralGA::fitfunc.

Referenced by LaralGA::save().

void initialize ( )
virtual

Initialize the Genetic Algorithm Process:

  • set current replication to zero
  • set current generation to zero

Implements GeneticAlgo.

Definition at line 176 of file laralga.cpp.

References LaralGA::currGenotype, LaralGA::currPhase, GeneticAlgo::evaluationDone, GeneticAlgo::evolutionEnd, LaralGA::fitfunc, LaralGA::isFinalized, LaralGA::isInitialized, LaralGA::muta, and GeneticAlgo::setGeneration().

bool isElitismEnabled ( )

Return true if elitism is enabled.

Definition at line 172 of file laralga.cpp.

References LaralGA::elitismEnabled.

Referenced by LaralGA::save().

Mutation * mutation ( )

Return the Mutation operator.

Definition at line 140 of file laralga.cpp.

References LaralGA::muta.

Referenced by LaralGA::save().

int numElitism ( )

Return the number of elited Genotypes.

Definition at line 168 of file laralga.cpp.

References LaralGA::nelitism.

Referenced by LaralGA::save().

int numOffspring ( )

Return the number of offspring for each selected Genotype.

Definition at line 164 of file laralga.cpp.

References LaralGA::noffspring.

int numReproducing ( )

Return the number of selected Genotypes.

Definition at line 160 of file laralga.cpp.

References LaralGA::nreproducing.

Referenced by LaralGA::save().

int numThreads ( )

Return the number of thread currently used.

Definition at line 109 of file laralga.cpp.

Referenced by LaralGA::save(), and LaralGA::setNumThreads().

void save ( ConfigurationParameters params,
QString  prefix 
)
virtual

Save the actual status of parameters into the ConfigurationParameters object passed.

Parameters
paramsthe configuration parameters object on which save actual parameters
prefixthe prefix to use to access the object configuration parameters.

Implements ParameterSettableWithConfigureFunction.

Definition at line 66 of file laralga.cpp.

References ConfigurationParameters::createParameter(), ConfigurationParameters::createSubGroup(), LaralGA::fitnessFunction(), GeneticAlgo::genome(), LaralGA::isElitismEnabled(), LaralGA::mutation(), LaralGA::numElitism(), GeneticAlgo::numGenerations(), LaralGA::numReproducing(), LaralGA::numThreads(), MultiTrials::save(), Genome::save(), and Mutation::save().

void setFitnessFunction ( MultiTrials fitfunc)

Set the fitness function to use.

Definition at line 113 of file laralga.cpp.

References LaralGA::fitfunc, and Evaluation::setGA().

Referenced by LaralGA::configure().

void setMutation ( Mutation mutate)

Set the Mutation operator to use.

Definition at line 135 of file laralga.cpp.

References LaralGA::muta, and Mutation::setGA().

Referenced by LaralGA::configure().

void setNumThreads ( int  numThreads)

Set the number of thread to use; or in other words the number of parallel evaluation of Genotypes.

Definition at line 95 of file laralga.cpp.

References LaralGA::fitfunc, LaralGA::isFinalized, LaralGA::isInitialized, and LaralGA::numThreads().

Referenced by LaralGA::configure().

void setReproduceParams ( int  nreproducing,
bool  useElitism = false,
int  nelitism = 0 
)

Set Reproducing parameters

Note
The number of offsprings are automatically calculated dividing nreproducinb by Genome::size()
Parameters
nreproducingis the number of Genotypes to select
useElitismif true use elitism, othersiwe not
nelitismis the number of Genotypes selected to copy unthouched to next generation

Definition at line 144 of file laralga.cpp.

References LaralGA::elitismEnabled, GeneticAlgo::genomev, LaralGA::nelitism, LaralGA::noffspring, LaralGA::nreproducing, and Genome::size().

Referenced by LaralGA::configure().

void skipEvaluation ( )
virtual

Skip the evaluation phase and put the algorithm in the state just after the evaluation.

This can be used after restarting an interrupted evolution to prevent re-evaluation of the genome that was loaded from file.

Implements GeneticAlgo.

Definition at line 272 of file laralga.cpp.

References LaralGA::currPhase, GeneticAlgo::evaluationDone, GeneticAlgo::generation(), and GeneticAlgo::numGens.

Member Data Documentation

unsigned int currGenotype
protected

current Genotype in evaluation

Definition at line 126 of file laralga.h.

Referenced by LaralGA::initialize(), and LaralGA::LaralGA().

GAPhases currPhase
protected

current Phase

Definition at line 138 of file laralga.h.

Referenced by LaralGA::gaStep(), LaralGA::initialize(), LaralGA::LaralGA(), and LaralGA::skipEvaluation().

bool elitismEnabled
protected

true is elitism is enabled

Definition at line 134 of file laralga.h.

Referenced by LaralGA::isElitismEnabled(), LaralGA::LaralGA(), and LaralGA::setReproduceParams().

bool isFinalized
protected

True if LaralGA is finalized.

Definition at line 142 of file laralga.h.

Referenced by LaralGA::finalize(), LaralGA::initialize(), LaralGA::LaralGA(), and LaralGA::setNumThreads().

bool isInitialized
protected

True if LaralGA is initialized.

Definition at line 140 of file laralga.h.

Referenced by LaralGA::finalize(), LaralGA::initialize(), LaralGA::LaralGA(), and LaralGA::setNumThreads().

Mutation* muta
protected

mutation operator

Definition at line 124 of file laralga.h.

Referenced by LaralGA::initialize(), LaralGA::LaralGA(), LaralGA::mutation(), and LaralGA::setMutation().

int nelitism
protected

number of elited genotypes

Definition at line 132 of file laralga.h.

Referenced by LaralGA::configure(), LaralGA::LaralGA(), LaralGA::numElitism(), and LaralGA::setReproduceParams().

int noffspring
protected

number of offspring

Definition at line 130 of file laralga.h.

Referenced by LaralGA::LaralGA(), LaralGA::numOffspring(), and LaralGA::setReproduceParams().

int nreproducing
protected

number of selected genotypes

Definition at line 128 of file laralga.h.

Referenced by LaralGA::LaralGA(), LaralGA::numReproducing(), and LaralGA::setReproduceParams().


The documentation for this class was generated from the following files: