Vita
Public Member Functions | Public Attributes | List of all members
vita::alps::parameters Struct Reference

Parameters for the Age-Layered Population Structure (ALPS) paradigm. More...

#include <alps.h>

Public Member Functions

template<class T >
bool aged (const T &, unsigned, unsigned) const
 
unsigned allowed_age (unsigned, unsigned) const
 
unsigned max_age (unsigned) const
 

Public Attributes

unsigned age_gap = 20
 The maximum ages for age layers is monotonically increasing and different methods can be used for setting these values. More...
 
double p_same_layer = 0.75
 We already have a parent (individual) from a layer, which is the probability that the second parent will be extracted from the same layer? (with ALPS it could be taken from the previous layer). More...
 

Detailed Description

Parameters for the Age-Layered Population Structure (ALPS) paradigm.

ALPS is a meta heuristic for overcoming premature convergence by running multiple instances of a search algorithm in parallel, with each instance in its own age layer and having its own population.

Definition at line 26 of file alps.h.

Member Function Documentation

◆ aged()

template<class T >
bool vita::alps::parameters::aged ( const T &  p,
unsigned  l,
unsigned  layers 
) const
Parameters
[in]pa program
[in]lthe layer where 'p' resides
[in]layerstotal number of layers the population is structured on
Returns
true 'p' is too old for its layer

Definition at line 64 of file alps.h.

◆ allowed_age()

unsigned vita::alps::parameters::allowed_age ( unsigned  l,
unsigned  layers 
) const
Parameters
[in]la specific layer
[in]layerstotal number of layers the population is structured on
Returns
the maximum allowed age for an individual in layer l. For individuals in the last layer there isn't a age limit

Definition at line 27 of file alps.cc.

◆ max_age()

unsigned vita::alps::parameters::max_age ( unsigned  l) const
Parameters
[in]la layer
Returns
the maximum allowed age for an individual in layer l

Definition at line 39 of file alps.cc.

Member Data Documentation

◆ age_gap

unsigned vita::alps::parameters::age_gap = 20

The maximum ages for age layers is monotonically increasing and different methods can be used for setting these values.

Since there is generally little need to segregate individuals which are within a few "generations" of each other, these values are then multiplied by an age_gap parameter. In addition, this allows individuals in the first age-layer some time to be optimized before them, or their offspring, are pushed to the next age layer. For instance, with 6 age layers, a linear aging-scheme and an age gap of 20, the maximum ages for the layers are: 20, 40, 60, 80, 100, 120.

Also, the age_gap parameter sets the frequency of how often the first layer is restarted.

Note
A value of 0 means undefined (auto-tune).

Definition at line 48 of file alps.h.

◆ p_same_layer

double vita::alps::parameters::p_same_layer = 0.75

We already have a parent (individual) from a layer, which is the probability that the second parent will be extracted from the same layer? (with ALPS it could be taken from the previous layer).

Note
A negative value means undefined (auto-tune).

Definition at line 55 of file alps.h.


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