Vita
|
Basic ALPS strategy. More...
#include <evolution_strategy.h>
Inherits vita::evolution_strategy< T, selection::alps, CS, replacement::alps >.
Public Member Functions | |
void | after_generation () |
void | log_strategy (unsigned, unsigned) const |
Public Member Functions inherited from vita::evolution_strategy< T, selection::alps, CS, replacement::alps > | |
void | after_generation () const |
Work to be done at the end of a generation. More... | |
evolution_strategy (population< T > &pop, evaluator< T > &eva, summary< T > *s) | |
void | init () const |
Initial setup performed before evolution starts. More... | |
void | log_strategy (unsigned, unsigned) const |
Evolution strategy specific log function (it's called by the evolution::log method). More... | |
bool | stop_condition () const |
Used to signal strategy specific stop conditions. More... | |
Static Public Member Functions | |
static environment | shape (environment) |
Static Public Member Functions inherited from vita::evolution_strategy< T, selection::alps, CS, replacement::alps > | |
static environment | shape (const environment &env) |
Sets strategy-specific parameters. More... | |
Additional Inherited Members | |
Public Attributes inherited from vita::evolution_strategy< T, selection::alps, CS, replacement::alps > | |
CS< T > | recombination |
replacement::alps< T > | replacement |
selection::alps< T > | selection |
Static Public Attributes inherited from vita::evolution_strategy< T, selection::alps, CS, replacement::alps > | |
static constexpr bool | is_alps |
static constexpr bool | is_de |
Protected Attributes inherited from vita::evolution_strategy< T, selection::alps, CS, replacement::alps > | |
population< T > & | pop_ |
summary< T > * | sum_ |
Basic ALPS strategy.
With ALPS, several instances of a search algorithm are run in parallel, each in its own age-layer, and the age of solutions is kept track of. The key properties of ALPS are:
Age is a measure of how long an individual's family of genotypic material has been in the population. Randomly generated individuals, such as those that are created when the search algorithm are started, start with an age of 0. Each generation that an individual stays in the population its age is increased by one. Individuals that are created through mutation or recombination take the age of their oldest parent and add one to it. This differs from conventional measures of age, in which individuals created through applying some type of variation to an existing individual (e.g. mutation or recombination) start with an age of 0.
The search algorithm in a given layer acts somewhat independently of the others, with an exception being that it can use individuals from both its layer and the layer below to generated new candidate solutions. Also, each age layer has an upper limit on the age of solutions it can contain. When an individual is too old for its current layer, it cannot be used to generate new individuals for that layer and eventually is removed from that layer. Optionally, an attempt can be made to move this individual up to the next layer – in which case it replaces some individual there that it is better than. Finally, at regular intervals the bottom layer is replaced with a new sub-population of randomly generated individuals, each with an age of 0.
Definition at line 136 of file evolution_strategy.h.