dignea  1.0.0
Diverse Instance Generator with Novelty Search and Evolutionary Algorithms
EIG< IP, IS, OP, OS > Class Template Reference

Instance Generation Algorithm. Known as Meta-Evolutionary Algorithm (EIG). This algorithm uses a Weighted Fitness Function (WFF) to evaluate how biased and diverse are the instances generated during the evolutionary process. The instances generated should be biased to the performance of the target algorithm in the portfolio but also should show some diversity between them. More...

#include <EIG.h>

Inheritance diagram for EIG< IP, IS, OP, OS >:
AbstractEA< IS > MapElites< IP, IS, OP, OS >

Public Types

using Alg = AbstractEA< OS >
 

Public Member Functions

 EIG (const float &fitness=0.6f, const float &novelty=0.4f)
 Construct a new EIG object using a fitness ratio of 0.6 and novelty of 0.4 by default. Use the EIGBuilder instead of the constructor for safe experimentation. More...
 
void run () override
 Interface to run the EIG for generating a set of instances for the optimisation problem defined (OP) More...
 
json to_json () const override
 Creates the JSON representation of the EIG. More...
 
string getName () const override
 Get the name of the algorithm. More...
 
string getID () const override
 Get the ID. Similar to getName.
 
virtual Front< IS > getResults () const override
 Returns a set of individuals as a result of the evolutionary method. The individual are instances for the OP. More...
 
const IP * getInstanceProblem () const
 Get a raw pointer to the Instance Generation Problem. More...
 
void setInstanceProblem (unique_ptr< IP > problem)
 Set the Instance Generation Problem. More...
 
vector< Alg * > getPortfolio () const
 Get the portfolio of algorithms used in the evolutionary process. More...
 
void setPortfolio (vector< unique_ptr< Alg >> &configs)
 Set the portfolio of algorithms to use in the evolutionary process. The order of the algorithms in the portfolio is crucial. Notice that the first algorithm in the portfolio will be considered the target and therefore the instances will be generated according to its performance. Also, it is important to know the order of the remaining algorithms in order to analysis the results obtained since not tags are included in the results at this moment. More...
 
float getMutationRate () const
 Get the mutation rate used in EIG for mutation instances during the evolutionary process. More...
 
void setMutationRate (float mRate)
 Set the mutation rate used in EIG for mutation instances during the evolutionary process. More...
 
float getCrossoverRate () const
 Get the crossover rate used in EIG for applying the crossover operator to instances during the evolutionary process. More...
 
void setCrossoverRate (float cRate)
 Set the crossover rate used in EIG for applying the crossover operator to instances during the evolutionary process. More...
 
int getRepetitions () const
 Get the number of repetitions that each algorithm in the portfolio must perform over each instance at every generation of the EIG. More...
 
void setRepetitions (int reps)
 Set the number of repetitions that each algorithm in the portfolio must perform over each instance at every generation of the EIG. Due to stochastic nature of most algorithms used in EIG the number of repetitions should vary between 10 to 30. For deterministic heuristics can be set to one. More...
 
Mutation< IS > * getMutation () const
 Get the mutation operator used to mutate instances in EIG. More...
 
void setMutation (unique_ptr< Mutation< IS >> mut)
 Set the mutation operator. Takes ownership of the pointer. More...
 
Crossover< IS > * getCrossover () const
 Get the crossover operator used in EIG. More...
 
void setCrossover (unique_ptr< Crossover< IS >> cx)
 Set the crossover operator. Takes ownership of the pointer. More...
 
Selection< IS > * getSelection () const
 Get the selection operator. More...
 
void setSelection (unique_ptr< Selection< IS >> sel)
 Set the selection operator. Takes ownership of the pointer. More...
 
void setReplacement (unique_ptr< Replacement< IS >> rep)
 Set the selection operator. Takes ownership of the pointer. More...
 
InstanceFitnessgetEvaluation () const
 Get the evaluation approach for the instances. More...
 
void setInstanceFitness (unique_ptr< InstanceFitness > eval)
 Set the evaluation approach for the instances. More...
 
int getGenerations ()
 Get the number of generations that EIG must perform. More...
 
const NoveltySearch< IS > * getNoveltySearch () const
 Get the Novelty Search approach used in EIG. More...
 
void setNoveltySearch (unique_ptr< NoveltySearch< IS >> noveltySearch)
 Set the Novelty Search approach to use. More...
 
void setWeightedFunction (const float &fW, const float &nW)
 Set the weights to use in the WFF. More...
 
- Public Member Functions inherited from AbstractEA< IS >
 AbstractEA ()
 Construct a new Abstract EA object with default parameter values. More...
 
 AbstractEA (const int &maxEvals, const int &popsize)
 AbstractEA constructor which initialises the parameters maxEvalautions and populationSize. More...
 
 AbstractEA (unique_ptr< PopulationEvaluator< IS >>, const int &maxEvals, const int &popsize)
 AbstractEA constructor which initialises the parameters maxEvalautions, the populationSize and the evaluator approach. More...
 
int getPopulationSize () const
 Get the population size. More...
 
void setPopulationSize (int pSize)
 Setter to update the population size. More...
 
double getElapsedTime () const
 Get the elapsed time of the evolutionary process. More...
 
const vector< IS > & getPopulation () const
 Gets a reference of the population. More...
 
int getMaxEvaluations () const
 Get the maximum number of evaluations to perform. More...
 
void setMaxEvaluations (int maxEval)
 Set a new maximum number of evaluations to perform. More...
 
const Problem< IS > * getProblem () const
 Gets a pointer to the problem which is being solved. More...
 
virtual void setProblem (shared_ptr< Problem< IS >> prob)
 Set the new problem to solve. Uses a shared_ptr pointer which updates the reference counter. Does no take the ownership. More...
 
virtual void setProblem (Problem< IS > *prob)
 Set the new problem to solve. Uses a raw pointer and takes the ownership of the object. More...
 
PopulationEvaluator< IS > * getEvaluator () const
 Gets a pointer to the population evaluator system. More...
 
void setEvaluator (unique_ptr< PopulationEvaluator< IS >> eval)
 Updates the population evaluator system with the unique_ptr. The method takes the ownership of the object behind. More...
 
int getPerformedEvaluations () const
 Get the performed evaluations. More...
 
void setPerformedEvaluations (int pEvals)
 Set the Performed Evaluations. Useful for the updateProgress method. More...
 
void setPopulation (const vector< IS > &pop)
 Set the Population. More...
 
virtual Evolution< IS > getEvolution () const
 Get the Evolution data. More...
 
int getPrintingInterval () const
 Get the interval of checkpoints. More...
 

Protected Member Functions

void initProgress () override
 Initialises the number of generations performed to 0. More...
 
void updateProgress () override
 Updates the evolution by increasing the number of generations performed. More...
 
void finishProgress () override
 Finishes the execution of the EIG. More...
 
bool isStoppingConditionReached () override
 Checks whether the number of performed generations has reached the maximum allowed. More...
 
void createInitialPopulation () override
 Creates a initial population of Problem Instances of the OP type. Uses the IP method "createSolutions". More...
 
void evaluatePopulation (vector< IS > &individuals) override
 Evaluates the population of individuals with all the algorithms in the portfolio. More...
 
void evaluateIndividual (IS &individual)
 Evaluates the given IS with all the algorithms in the porftolio. More...
 
virtual void evaluationPhase (vector< IS > &individuals)
 Evaluation phase of the EIG All the stages necessary to evaluated the population of individuals are performed from this method. More...
 
virtual void reproduction (IS &solution, IS &solution2)
 Executes the genetic operator over two instances to generate new individuals. More...
 
virtual void replacement (vector< IS > &individuals)
 Replacement method for the population. In this case, the replacement is a simple generational approach, which also includes the comparison of individuals with the archive and the feature set of the NS. More...
 
virtual void updateEvolution (vector< IS > &solutions)
 Updates the evolution results of the algorithm for the given checkpoint. More...
 
- Protected Member Functions inherited from AbstractEA< IS >
virtual void updateEvolution (vector< IS > &pop)
 
virtual void updateEvolution (const int &checkpoint, vector< IS > &)
 

Protected Attributes

unique_ptr< IP > instProb
 
vector< unique_ptr< Alg > > algPortfolio
 
unique_ptr< Mutation< IS > > mutation
 
unique_ptr< Crossover< IS > > crossover
 
unique_ptr< Selection< IS > > selection
 
unique_ptr< Replacement< IS > > repOperator
 
float mutationRate
 
float crossoverRate
 
int repetitions
 
unique_ptr< NoveltySearch< IS > > noveltySearch
 
unique_ptr< InstanceFitnessinstanceFitness
 
unique_ptr< Weighted< IS > > weightedFitness
 
AverageFitness< OS > averageFitness
 
BestFitness< OS > bestFitness
 
- Protected Attributes inherited from AbstractEA< IS >
int maxEvaluations
 
int performedEvaluations
 
int populationSize
 
vector< IS > population
 
shared_ptr< Problem< IS > > problem
 
unique_ptr< PopulationEvaluator< IS > > evaluator
 
Evolution< IS > evolution
 
AvgEvolution< IS > avgEvolution
 
std::chrono::system_clock::time_point startTime
 
std::chrono::system_clock::time_point endTime
 
double elapsedTime
 
int nextCheckpoint
 
int evolutionInterval
 

Additional Inherited Members

- Static Public Attributes inherited from AbstractEA< IS >
static const int DEFAULT_POPULATION_SIZE
 Default population size equal to 100 individuals. More...
 
static const int DEFAULT_EVALUATIONS_LIMIT
 Default evaluation limit equal to 100000 evaluations. More...
 
static const std::string NAME
 
static const std::string MAX_EVALUATIONS
 
static const std::string POP_SIZE
 
static const std::string ELAPSED_TIME
 
static const std::string EVALUATOR
 
static const int EVOLUTION_SIZE
 

Detailed Description

template<typename IP, typename IS, typename OP, typename OS>
class EIG< IP, IS, OP, OS >

Instance Generation Algorithm. Known as Meta-Evolutionary Algorithm (EIG). This algorithm uses a Weighted Fitness Function (WFF) to evaluate how biased and diverse are the instances generated during the evolutionary process. The instances generated should be biased to the performance of the target algorithm in the portfolio but also should show some diversity between them.

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type

Member Typedef Documentation

◆ Alg

template<typename IP , typename IS , typename OP , typename OS >
using EIG< IP, IS, OP, OS >::Alg = AbstractEA<OS>

Acronym for an AbstractEA<OS>

Constructor & Destructor Documentation

◆ EIG()

template<typename IP , typename IS , typename OP , typename OS >
EIG< IP, IS, OP, OS >::EIG ( const float &  fitness = 0.6f,
const float &  novelty = 0.4f 
)

Construct a new EIG object using a fitness ratio of 0.6 and novelty of 0.4 by default. Use the EIGBuilder instead of the constructor for safe experimentation.

Creates a default EIG with only the evaluation as EasyInstances.

Parameters
fitnessRatio of fitness for the WFF
noveltyRatio of novelty for the WFF
Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type

Member Function Documentation

◆ createInitialPopulation()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::createInitialPopulation
overrideprotectedvirtual

Creates a initial population of Problem Instances of the OP type. Uses the IP method "createSolutions".

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type

Implements AbstractEA< IS >.

Reimplemented in MapElites< IP, IS, OP, OS >.

◆ evaluateIndividual()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::evaluateIndividual ( IS &  individual)
protected

Evaluates the given IS with all the algorithms in the porftolio.

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type
Parameters
individualIS individual to evaluate using all the configurations

◆ evaluatePopulation()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::evaluatePopulation ( vector< IS > &  individuals)
overrideprotectedvirtual

Evaluates the population of individuals with all the algorithms in the portfolio.

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type
Parameters
individualsPopulation of IS to evaluate using the configurations

Implements AbstractEA< IS >.

Reimplemented in MapElites< IP, IS, OP, OS >.

◆ evaluationPhase()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::evaluationPhase ( vector< IS > &  individuals)
protectedvirtual

Evaluation phase of the EIG All the stages necessary to evaluated the population of individuals are performed from this method.

  1. First, each instance is solved by each algorithm in the portfolio (repeatdly if necessary) to construct the biasedFitness.
  2. Second, we run the novelty search approach to evaluate the diversity of the solutions within the population.
  3. The Weighted-Fitness-Function is used to calculate the final fitness for each individual.
    Template Parameters
    IPType of Instance Problem to toSolve
    ISType of instances of the Optimisation Problem
    OPOptimisation problem to toSolve with the configurations
    OSSolutions to the OP type
    Parameters
    individuals

◆ finishProgress()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::finishProgress
overrideprotectedvirtual

Finishes the execution of the EIG.

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type

Implements AbstractEA< IS >.

◆ getCrossover()

template<typename IP , typename IS , typename OP , typename OS >
Crossover<IS>* EIG< IP, IS, OP, OS >::getCrossover ( ) const
inline

Get the crossover operator used in EIG.

Returns
a raw pointer to Crossover<IS>

◆ getCrossoverRate()

template<typename IP , typename IS , typename OP , typename OS >
float EIG< IP, IS, OP, OS >::getCrossoverRate ( ) const
inline

Get the crossover rate used in EIG for applying the crossover operator to instances during the evolutionary process.

Returns
float

◆ getEvaluation()

template<typename IP , typename IS , typename OP , typename OS >
InstanceFitness* EIG< IP, IS, OP, OS >::getEvaluation ( ) const
inline

Get the evaluation approach for the instances.

Returns
InstanceFitness*

◆ getGenerations()

template<typename IP , typename IS , typename OP , typename OS >
int EIG< IP, IS, OP, OS >::getGenerations ( )
inline

Get the number of generations that EIG must perform.

Returns

◆ getInstanceProblem()

template<typename IP , typename IS , typename OP , typename OS >
const IP* EIG< IP, IS, OP, OS >::getInstanceProblem ( ) const
inline

Get a raw pointer to the Instance Generation Problem.

Returns

◆ getMutation()

template<typename IP , typename IS , typename OP , typename OS >
Mutation<IS>* EIG< IP, IS, OP, OS >::getMutation ( ) const
inline

Get the mutation operator used to mutate instances in EIG.

Returns
a raw pointer to Mutation<IS>

◆ getMutationRate()

template<typename IP , typename IS , typename OP , typename OS >
float EIG< IP, IS, OP, OS >::getMutationRate ( ) const
inline

Get the mutation rate used in EIG for mutation instances during the evolutionary process.

Returns
float

◆ getName()

template<typename IP , typename IS , typename OP , typename OS >
string EIG< IP, IS, OP, OS >::getName ( ) const
inlineoverridevirtual

Get the name of the algorithm.

Returns
a string with the content EIG

Implements AbstractEA< IS >.

Reimplemented in MapElites< IP, IS, OP, OS >.

◆ getNoveltySearch()

template<typename IP , typename IS , typename OP , typename OS >
const NoveltySearch<IS>* EIG< IP, IS, OP, OS >::getNoveltySearch ( ) const
inline

Get the Novelty Search approach used in EIG.

Returns

◆ getPortfolio()

template<typename IP , typename IS , typename OP , typename OS >
vector< AbstractEA< OS > * > EIG< IP, IS, OP, OS >::getPortfolio

Get the portfolio of algorithms used in the evolutionary process.

Returns the portfolio used by the EIG.

Returns
Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type
Returns

◆ getRepetitions()

template<typename IP , typename IS , typename OP , typename OS >
int EIG< IP, IS, OP, OS >::getRepetitions ( ) const
inline

Get the number of repetitions that each algorithm in the portfolio must perform over each instance at every generation of the EIG.

Returns
int

◆ getResults()

template<typename IP , typename IS , typename OP , typename OS >
Front< IS > EIG< IP, IS, OP, OS >::getResults
overridevirtual

Returns a set of individuals as a result of the evolutionary method. The individual are instances for the OP.

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type
Returns
Front of IS solutions

Implements AbstractEA< IS >.

Reimplemented in MapElites< IP, IS, OP, OS >.

◆ getSelection()

template<typename IP , typename IS , typename OP , typename OS >
Selection<IS>* EIG< IP, IS, OP, OS >::getSelection ( ) const
inline

Get the selection operator.

Returns
a raw pointer to Selection<IS>

◆ initProgress()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::initProgress
overrideprotectedvirtual

Initialises the number of generations performed to 0.

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type

Implements AbstractEA< IS >.

◆ isStoppingConditionReached()

template<typename IP , typename IS , typename OP , typename OS >
bool EIG< IP, IS, OP, OS >::isStoppingConditionReached
overrideprotectedvirtual

Checks whether the number of performed generations has reached the maximum allowed.

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type
Returns
True if the performedGenerations == maxGenerations, False otherwise

Implements AbstractEA< IS >.

◆ replacement()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::replacement ( vector< IS > &  individuals)
protectedvirtual

Replacement method for the population. In this case, the replacement is a simple generational approach, which also includes the comparison of individuals with the archive and the feature set of the NS.

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type
Parameters
individualsNew population of individuals to replace the current one

◆ reproduction()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::reproduction ( IS &  solution1,
IS &  solution2 
)
protectedvirtual

Executes the genetic operator over two instances to generate new individuals.

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type
Parameters
solution1First child of type IS
solution2Second child of type IS

◆ run()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::run
overridevirtual

Interface to run the EIG for generating a set of instances for the optimisation problem defined (OP)

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type

Implements AbstractEA< IS >.

Reimplemented in MapElites< IP, IS, OP, OS >.

◆ setCrossover()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::setCrossover ( unique_ptr< Crossover< IS >>  cx)
inline

Set the crossover operator. Takes ownership of the pointer.

Parameters
cx

◆ setCrossoverRate()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::setCrossoverRate ( float  cRate)
inline

Set the crossover rate used in EIG for applying the crossover operator to instances during the evolutionary process.

Parameters
cRate

◆ setInstanceFitness()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::setInstanceFitness ( unique_ptr< InstanceFitness eval)
inline

Set the evaluation approach for the instances.

Parameters
eval

◆ setInstanceProblem()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::setInstanceProblem ( unique_ptr< IP >  problem)

Set the Instance Generation Problem.

Sets the instance generation problem to toSolve.

Parameters
problem
Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type
Parameters
problem

◆ setMutation()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::setMutation ( unique_ptr< Mutation< IS >>  mut)
inline

Set the mutation operator. Takes ownership of the pointer.

Parameters
mutunique_ptr

◆ setMutationRate()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::setMutationRate ( float  mRate)
inline

Set the mutation rate used in EIG for mutation instances during the evolutionary process.

Parameters
mRate

◆ setNoveltySearch()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::setNoveltySearch ( unique_ptr< NoveltySearch< IS >>  noveltySearch)
inline

Set the Novelty Search approach to use.

Parameters
noveltySearch

◆ setPortfolio()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::setPortfolio ( vector< unique_ptr< Alg >> &  configs)

Set the portfolio of algorithms to use in the evolutionary process. The order of the algorithms in the portfolio is crucial. Notice that the first algorithm in the portfolio will be considered the target and therefore the instances will be generated according to its performance. Also, it is important to know the order of the remaining algorithms in order to analysis the results obtained since not tags are included in the results at this moment.

Updates the portfolio to solve the Instance Generation Problem.

Parameters
configs
Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type
Parameters
configs

◆ setRepetitions()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::setRepetitions ( int  reps)
inline

Set the number of repetitions that each algorithm in the portfolio must perform over each instance at every generation of the EIG. Due to stochastic nature of most algorithms used in EIG the number of repetitions should vary between 10 to 30. For deterministic heuristics can be set to one.

Parameters
reps

◆ setReplacement()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::setReplacement ( unique_ptr< Replacement< IS >>  rep)
inline

Set the selection operator. Takes ownership of the pointer.

Parameters
sel

◆ setSelection()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::setSelection ( unique_ptr< Selection< IS >>  sel)
inline

Set the selection operator. Takes ownership of the pointer.

Parameters
sel

◆ setWeightedFunction()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::setWeightedFunction ( const float &  fW,
const float &  nW 
)
inline

Set the weights to use in the WFF.

Parameters
fW
nW

◆ to_json()

template<typename IP , typename IS , typename OP , typename OS >
json EIG< IP, IS, OP, OS >::to_json
overridevirtual

Creates the JSON representation of the EIG.

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type
Returns

Reimplemented from AbstractEA< IS >.

Reimplemented in MapElites< IP, IS, OP, OS >.

◆ updateEvolution()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::updateEvolution ( vector< IS > &  solutions)
protectedvirtual

Updates the evolution results of the algorithm for the given checkpoint.

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type
Parameters
solutions

◆ updateProgress()

template<typename IP , typename IS , typename OP , typename OS >
void EIG< IP, IS, OP, OS >::updateProgress
overrideprotectedvirtual

Updates the evolution by increasing the number of generations performed.

Template Parameters
IPType of Instance Problem to toSolve
ISType of instances of the Optimisation Problem
OPOptimisation problem to toSolve with the configurations
OSSolutions to the OP type

Implements AbstractEA< IS >.

Member Data Documentation

◆ algPortfolio

template<typename IP , typename IS , typename OP , typename OS >
vector<unique_ptr<Alg> > EIG< IP, IS, OP, OS >::algPortfolio
protected

Portfolio of algorithms to evaluate the instances

◆ averageFitness

template<typename IP , typename IS , typename OP , typename OS >
AverageFitness<OS> EIG< IP, IS, OP, OS >::averageFitness
protected

Avg fitness calculation for each instance at every generation

◆ bestFitness

template<typename IP , typename IS , typename OP , typename OS >
BestFitness<OS> EIG< IP, IS, OP, OS >::bestFitness
protected

Best fitness calculation for each algorithm after solving a instance at every generation

◆ crossover

template<typename IP , typename IS , typename OP , typename OS >
unique_ptr<Crossover<IS> > EIG< IP, IS, OP, OS >::crossover
protected

Crossover operator

◆ crossoverRate

template<typename IP , typename IS , typename OP , typename OS >
float EIG< IP, IS, OP, OS >::crossoverRate
protected

Crossover rate

◆ instProb

template<typename IP , typename IS , typename OP , typename OS >
unique_ptr<IP> EIG< IP, IS, OP, OS >::instProb
protected

Instance Generation Problem

◆ mutation

template<typename IP , typename IS , typename OP , typename OS >
unique_ptr<Mutation<IS> > EIG< IP, IS, OP, OS >::mutation
protected

Mutation operator

◆ mutationRate

template<typename IP , typename IS , typename OP , typename OS >
float EIG< IP, IS, OP, OS >::mutationRate
protected

Mutation rate

◆ noveltySearch

template<typename IP , typename IS , typename OP , typename OS >
unique_ptr<NoveltySearch<IS> > EIG< IP, IS, OP, OS >::noveltySearch
protected

Novelty Search

◆ repetitions

template<typename IP , typename IS , typename OP , typename OS >
int EIG< IP, IS, OP, OS >::repetitions
protected

Number of repetitions to perform by the algorithms

◆ selection

template<typename IP , typename IS , typename OP , typename OS >
unique_ptr<Selection<IS> > EIG< IP, IS, OP, OS >::selection
protected

Selection operator


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