|
dignea
1.0.0
Diverse Instance Generator with Novelty Search and Evolutionary Algorithms
|
Class to define an Abstract Evolutionary Algorithm. This is the base skeleton for future extensions. More...
#include <AbstractSolver.h>
Public Member Functions | |
| AbstractSolver () | |
| Construct a new Abstract EA object with default parameter values. More... | |
| AbstractSolver (const int &maxEvals, const int &popsize) | |
| AbstractSolver constructor which initialises the parameters maxEvalautions and populationSize. More... | |
| AbstractSolver (unique_ptr< PopulationEvaluator< S >>, const int &maxEvals, const int &popsize) | |
| AbstractSolver constructor which initialises the parameters maxEvalautions, the populationSize and the evaluator approach. More... | |
| 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 |
| Generates and returns the JSON representation of the EA. 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... | |
| 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... | |
Static Public Attributes | |
| 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 Member Functions | |
| virtual void | initProgress ()=0 |
| Initialises the evolutionary progress. This method must be implemented in the subclasses and should perform all necessary steps before the main loop. | |
| virtual void | updateProgress ()=0 |
| Method which updates the evolutionary progress. This method must be implemented in the subclasses and it should perform thinks like updating the number of performed evaluations, etc. | |
| virtual void | finishProgress ()=0 |
| Method which finishes the evolutionary progress. This method must be implemented in the subclasses and it should perform thinks like computing the execution time, etc. | |
| virtual bool | isStoppingConditionReached ()=0 |
| Check whether the number of performed evaluations has reached the maximum allowed. Must be implemented in the subclasses to adapt special cases. More... | |
| virtual void | createInitialPopulation ()=0 |
| Creates the initial population of individuals. Must be implemented in the subclasses to adapt special cases. | |
| virtual void | evaluatePopulation (vector< S > &pop)=0 |
| Evaluates the entire population of solutions. This is a virtual method that must be implemented in the subclasses to adapt special cases. | |
| virtual void | updateEvolution (vector< S > &pop) |
| virtual void | updateEvolution (const int &checkpoint, vector< S > &) |
Protected Attributes | |
| 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 |
Class to define an Abstract Evolutionary Algorithm. This is the base skeleton for future extensions.
| S | Type of individuals |
| AbstractSolver< S >::AbstractSolver |
Construct a new Abstract EA object with default parameter values.
| S |
| AbstractSolver< S >::AbstractSolver | ( | const int & | maxEvals, |
| const int & | popsize | ||
| ) |
AbstractSolver constructor which initialises the parameters maxEvalautions and populationSize.
| S |
| maxEvals | Maximum number of evaluations to perform |
| popsize | Number of individuals in the population |
| AbstractSolver< S >::AbstractSolver | ( | unique_ptr< PopulationEvaluator< S >> | eval, |
| const int & | maxEvals, | ||
| const int & | popsize | ||
| ) |
AbstractSolver constructor which initialises the parameters maxEvalautions, the populationSize and the evaluator approach.
| S |
| eval | Evaluator approach (Sequential, parallel, OMP, etc) |
| maxEvals | Maximum number of evaluations to perform |
| popsize | Number of individuals in the population |
|
inline |
Get the elapsed time of the evolutionary process.
|
inline |
Gets a pointer to the population evaluator system.
|
virtual |
Get the Evolution data.
Returns the data of the evolution process. Includes the best fitness obtained at each evaluated checkpoint.
| S |
|
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.
|
inline |
Get the maximum number of evaluations to perform.
|
pure virtual |
Returns the name of the algorithm, this is used in the to_json method. Must be implemented in the subclasses.
|
inline |
Get the performed evaluations.
|
inline |
Gets a reference of the population.
|
inline |
Get the population size.
|
inline |
Get the interval of checkpoints.
|
inline |
Gets a pointer to the problem which is being solved.
|
pure virtual |
|
protectedpure virtual |
Check whether the number of performed evaluations has reached the maximum allowed. Must be implemented in the subclasses to adapt special cases.
|
inline |
Updates the population evaluator system with the unique_ptr. The method takes the ownership of the object behind.
| eval |
|
inline |
Set a new maximum number of evaluations to perform.
| maxEval |
|
inline |
Set the Performed Evaluations. Useful for the updateProgress method.
| pEvals |
| void AbstractSolver< S >::setPopulation | ( | const vector< S > & | pop | ) |
Set the Population.
Set the population of the EA.
| pop | |
| pop | New population to the EA. |
| void AbstractSolver< S >::setPopulationSize | ( | int | pSize | ) |
Setter to update the population size.
| S |
| pSize | New size of the population |
|
inlinevirtual |
Set the new problem to solve. Uses a raw pointer and takes the ownership of the object.
| prob |
|
inlinevirtual |
Set the new problem to solve. Uses a shared_ptr pointer which updates the reference counter. Does no take the ownership.
| prob |
|
virtual |
Generates and returns the JSON representation of the EA.
| S |
|
protectedvirtual |
Updates the evolution results of the algorithm for the given checkpoint
| Problem | |
| S |
| checkpoint | Checkpoint in the evolution process |
| solutions | solutions Population of solutions in the checkpoin to collect data from |
|
protectedvirtual |
Updates the evolution results of the algorithm for the given checkpoint
| Problem | |
| S |
| solutions | Population of solutions in the checkpoin to collect data from |
|
static |
Default evaluation limit equal to 100000 evaluations.
| S |
|
static |
Default population size equal to 100 individuals.
| S |
|
protected |
Number of evaluations to perform by the EA
|
protected |
Number of individuals in the population