OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
Variator< ind_t, CrossoverOperator, MutationOperator > Class Template Reference

#include <Variator.h>

Inheritance diagram for Variator< ind_t, CrossoverOperator, MutationOperator >:
Collaboration diagram for Variator< ind_t, CrossoverOperator, MutationOperator >:

Public Member Functions

 Variator (std::vector< std::string > dNames, Optimizer::bounds_t dVarBounds, Expressions::Named_t constraints, CmdArguments_t args)
 ~Variator ()
std::shared_ptr< Population< ind_t > > population ()
void initial_population (size_t sizeInitial, std::string fname)
 create an initial population
void infeasible (std::shared_ptr< ind_t > ind)
 set an individual as infeasible: replace with a new individual
bool hasMoreIndividualsToEvaluate ()
 returns false if all individuals have been evaluated
std::shared_ptr< ind_t > popIndividualToEvaluate ()
 return next individual to evaluate
void variate (std::vector< unsigned int > parents)

Protected Member Functions

void new_individual (Individual::genes_t &dvars)
 create a new individual
void new_individual ()
 create a new individual
void new_individual (std::shared_ptr< ind_t > ind)
 copy an individual

Private Member Functions

double drand (double range)

Private Attributes

std::shared_ptr< Population< ind_t > > population_m
 population of individuals
CmdArguments_t args_
 user specified command line arguments
std::queue< unsigned int > individualsToEvaluate_m
 keep a queue of individuals that have to be evaluated
std::vector< std::string > dNames_m
 names of the design variables
Optimizer::bounds_t dVarBounds_m
 bounds on design variables
Expressions::Named_t constraints_m
 constraints
double mutationProbability_m
 probability of applying the mutation operator
double recombinationProbability_m
 probability of applying the recombination operator

Detailed Description

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
class Variator< ind_t, CrossoverOperator, MutationOperator >

Definition at line 42 of file Variator.h.

Constructor & Destructor Documentation

◆ Variator()

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
Variator< ind_t, CrossoverOperator, MutationOperator >::Variator ( std::vector< std::string > dNames,
Optimizer::bounds_t dVarBounds,
Expressions::Named_t constraints,
CmdArguments_t args )
inline

Definition at line 48 of file Variator.h.

◆ ~Variator()

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
Variator< ind_t, CrossoverOperator, MutationOperator >::~Variator ( )
inline

Definition at line 83 of file Variator.h.

Member Function Documentation

◆ drand()

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
double Variator< ind_t, CrossoverOperator, MutationOperator >::drand ( double range)
inlineprivate

Get a random double between [0, range]

Parameters
[in]rangeof random number
Returns
random double value between [0, range]

Definition at line 318 of file Variator.h.

Referenced by Variator< Individual_t, CrossoverOperator, MutationOperator >::variate().

◆ hasMoreIndividualsToEvaluate()

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
bool Variator< ind_t, CrossoverOperator, MutationOperator >::hasMoreIndividualsToEvaluate ( )
inline

returns false if all individuals have been evaluated

Definition at line 162 of file Variator.h.

◆ infeasible()

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
void Variator< ind_t, CrossoverOperator, MutationOperator >::infeasible ( std::shared_ptr< ind_t > ind)
inline

set an individual as infeasible: replace with a new individual

Definition at line 156 of file Variator.h.

Referenced by Variator< Individual_t, CrossoverOperator, MutationOperator >::variate().

◆ initial_population()

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
void Variator< ind_t, CrossoverOperator, MutationOperator >::initial_population ( size_t sizeInitial,
std::string fname )
inline

create an initial population

Definition at line 92 of file Variator.h.

◆ new_individual() [1/3]

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
void Variator< ind_t, CrossoverOperator, MutationOperator >::new_individual ( )
inlineprotected

◆ new_individual() [2/3]

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
void Variator< ind_t, CrossoverOperator, MutationOperator >::new_individual ( Individual::genes_t & dvars)
inlineprotected

create a new individual

Definition at line 271 of file Variator.h.

◆ new_individual() [3/3]

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
void Variator< ind_t, CrossoverOperator, MutationOperator >::new_individual ( std::shared_ptr< ind_t > ind)
inlineprotected

copy an individual

Definition at line 284 of file Variator.h.

◆ popIndividualToEvaluate()

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
std::shared_ptr< ind_t > Variator< ind_t, CrossoverOperator, MutationOperator >::popIndividualToEvaluate ( )
inline

return next individual to evaluate

Definition at line 167 of file Variator.h.

◆ population()

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
std::shared_ptr< Population< ind_t > > Variator< ind_t, CrossoverOperator, MutationOperator >::population ( )
inline

Definition at line 87 of file Variator.h.

◆ variate()

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
void Variator< ind_t, CrossoverOperator, MutationOperator >::variate ( std::vector< unsigned int > parents)
inline

Performs variation (recombination and mutation) on a set of parent individuals.

Parameters
[in]parents

Definition at line 178 of file Variator.h.

Member Data Documentation

◆ args_

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
CmdArguments_t Variator< ind_t, CrossoverOperator, MutationOperator >::args_
private

user specified command line arguments

Definition at line 296 of file Variator.h.

◆ constraints_m

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
Expressions::Named_t Variator< ind_t, CrossoverOperator, MutationOperator >::constraints_m
private

constraints

Definition at line 306 of file Variator.h.

◆ dNames_m

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
std::vector<std::string> Variator< ind_t, CrossoverOperator, MutationOperator >::dNames_m
private

names of the design variables

Definition at line 302 of file Variator.h.

◆ dVarBounds_m

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
Optimizer::bounds_t Variator< ind_t, CrossoverOperator, MutationOperator >::dVarBounds_m
private

bounds on design variables

Definition at line 304 of file Variator.h.

◆ individualsToEvaluate_m

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
std::queue<unsigned int> Variator< ind_t, CrossoverOperator, MutationOperator >::individualsToEvaluate_m
private

keep a queue of individuals that have to be evaluated

Definition at line 299 of file Variator.h.

◆ mutationProbability_m

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
double Variator< ind_t, CrossoverOperator, MutationOperator >::mutationProbability_m
private

probability of applying the mutation operator

Definition at line 309 of file Variator.h.

◆ population_m

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
std::shared_ptr< Population<ind_t> > Variator< ind_t, CrossoverOperator, MutationOperator >::population_m
private

population of individuals

Definition at line 293 of file Variator.h.

◆ recombinationProbability_m

template<class ind_t, template< class > class CrossoverOperator, template< class > class MutationOperator>
double Variator< ind_t, CrossoverOperator, MutationOperator >::recombinationProbability_m
private

probability of applying the recombination operator

Definition at line 311 of file Variator.h.


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