Ultra 0.9.4
Loading...
Searching...
No Matches
ultra::alps::parameters Struct Reference

#include <alps.h>

Public Member Functions

unsigned max_age (std::size_t) const
unsigned max_age (std::size_t, std::size_t) const

Public Attributes

unsigned age_gap {0}
std::size_t max_layers {0}
 Maximum number of layers an ALPS layered population can grow to.
double p_main_layer {-1.0}

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.

Member Function Documentation

◆ max_age() [1/2]

unsigned ultra::alps::parameters::max_age ( std::size_t l) const
nodiscard

Given a layer index returns the associated maximum allowed age of the members.

Parameters
[in]llayer index
Returns
the maximum allowed age for an individual in layer l

Parameters from the environment:

◆ max_age() [2/2]

unsigned ultra::alps::parameters::max_age ( std::size_t l,
std::size_t layers ) const
nodiscard
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

Member Data Documentation

◆ age_gap

unsigned ultra::alps::parameters::age_gap {0}

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).

◆ p_main_layer

double ultra::alps::parameters::p_main_layer {-1.0}

The probability that a parent will be extracted from the main layer.

Note
A negative value means auto-tune.

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