dignea  1.0.0
Diverse Instance Generator with Novelty Search and Evolutionary Algorithms
Heuristic< S > Class Template Referenceabstract

Base heuristic class. This is the skeleton for future heuristic implementations. Extends AbstractEA for compatibility with EIG. More...

#include <Heuristic.h>

Inheritance diagram for Heuristic< S >:
AbstractEA< S >

Public Member Functions

virtual void run ()=0
 Main method of the EA. Runs the algorithm but must be implemented in the subclasses.
 
virtual string getName () const =0
 Returns the name of the algorithm, this is used in the to_json method. Must be implemented in the subclasses. More...
 
virtual string getID () const =0
 Returns the identificator of the algorithm, this is used in the to_json method. Must be implemented in the subclasses. It should return the acronym of useful id for a particular configuration. More...
 
virtual json to_json () const
 Returns the JSON representation of the Heuristic. More...
 
virtual Front< S > getResults () const =0
 Returns a Front object with all the solutions of the evolutionary process. This method must be implemented in the subclasses. More...
 
- Public Member Functions inherited from AbstractEA< S >
 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< S >>, 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< S > & 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< S > * getProblem () const
 Gets a pointer to the problem which is being solved. More...
 
virtual void setProblem (shared_ptr< Problem< S >> 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< S > *prob)
 Set the new problem to solve. Uses a raw pointer and takes the ownership of the object. More...
 
PopulationEvaluator< S > * getEvaluator () const
 Gets a pointer to the population evaluator system. More...
 
void setEvaluator (unique_ptr< PopulationEvaluator< S >> 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< S > &pop)
 Set the Population. More...
 
virtual Evolution< S > getEvolution () const
 Get the Evolution data. More...
 
int getPrintingInterval () const
 Get the interval of checkpoints. More...
 

Protected Member Functions

virtual void initProgress ()
 Not implemented. Nothing really to do here.
 
virtual void updateProgress ()
 Not implemented. Nothing really to do here.
 
void finishProgress () override
 Finishes the progress of the Heuristic by computing the elapsed time. More...
 
bool isStoppingConditionReached () override
 Always returns false. TODO: Refactor to inherit from Algorithm. More...
 
virtual void createInitialPopulation ()
 Not implemented. Nothing really to do here.
 
virtual void evaluatePopulation (vector< S > &)
 Not implemented. Nothing really to do here.
 
virtual void updateEvolution (vector< S > &)
 Not implemented. Nothing really to do here.
 
virtual void updateEvolution (const int &checkpoint, vector< S > &)
 Not implemented. Nothing really to do here.
 

Additional Inherited Members

- Static Public Attributes inherited from AbstractEA< S >
static const int DEFAULT_POPULATION_SIZE = 100
 Default population size equal to 100 individuals. More...
 
static const int DEFAULT_EVALUATIONS_LIMIT = 100000
 Default evaluation limit equal to 100000 evaluations. More...
 
static const std::string NAME = "Algorithm"
 
static const std::string MAX_EVALUATIONS = "Max Evaluations"
 
static const std::string POP_SIZE = "Population Size"
 
static const std::string ELAPSED_TIME = "Elapsed Time"
 
static const std::string EVALUATOR = "Evaluator"
 
static const int EVOLUTION_SIZE = 10
 
- Protected Attributes inherited from AbstractEA< S >
int maxEvaluations
 
int performedEvaluations
 
int populationSize
 
vector< S > population
 
shared_ptr< Problem< S > > problem
 
unique_ptr< PopulationEvaluator< S > > evaluator
 
Evolution< S > evolution
 
AvgEvolution< S > avgEvolution
 
std::chrono::system_clock::time_point startTime
 
std::chrono::system_clock::time_point endTime
 
double elapsedTime
 
int nextCheckpoint
 
int evolutionInterval
 

Detailed Description

template<class S>
class Heuristic< S >

Base heuristic class. This is the skeleton for future heuristic implementations. Extends AbstractEA for compatibility with EIG.

Template Parameters
SType of the solutions

Member Function Documentation

◆ finishProgress()

template<class S >
void Heuristic< S >::finishProgress
overrideprotectedvirtual

Finishes the progress of the Heuristic by computing the elapsed time.

Template Parameters
S

Implements AbstractEA< S >.

◆ getID()

template<class S >
virtual string Heuristic< S >::getID ( ) const
pure virtual

Returns the identificator of the algorithm, this is used in the to_json method. Must be implemented in the subclasses. It should return the acronym of useful id for a particular configuration.

Returns
string

Implements AbstractEA< S >.

Implemented in tsp_heuristics::TwoOpt, tsp_heuristics::NearestNeighbour, tsp_heuristics::Greedy, MPW, MiW, MinKnap, MaP, ExpKnap, Default, Combo, WorstFit, NextFit, FirstFit, and BestFit.

◆ getName()

template<class S >
virtual string Heuristic< S >::getName ( ) const
pure virtual

Returns the name of the algorithm, this is used in the to_json method. Must be implemented in the subclasses.

Returns
string

Implements AbstractEA< S >.

Implemented in tsp_heuristics::TwoOpt, tsp_heuristics::NearestNeighbour, tsp_heuristics::Greedy, MPW, MiW, MinKnap, MaP, ExpKnap, Default, Combo, WorstFit, NextFit, FirstFit, and BestFit.

◆ getResults()

template<class S >
virtual Front<S> Heuristic< S >::getResults ( ) const
pure virtual

Returns a Front object with all the solutions of the evolutionary process. This method must be implemented in the subclasses.

Returns
Front

Implements AbstractEA< S >.

Implemented in tsp_heuristics::TwoOpt, tsp_heuristics::NearestNeighbour, tsp_heuristics::Greedy, MinKnap, ExpKnap, Default, Combo, WorstFit, NextFit, FirstFit, and BestFit.

◆ isStoppingConditionReached()

template<class S >
bool Heuristic< S >::isStoppingConditionReached ( )
inlineoverrideprotectedvirtual

Always returns false. TODO: Refactor to inherit from Algorithm.

Returns
false

Implements AbstractEA< S >.

◆ to_json()

template<class S >
json Heuristic< S >::to_json
virtual

Returns the JSON representation of the Heuristic.

Template Parameters
S
Returns
json

Reimplemented from AbstractEA< S >.


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