Vita
Public Member Functions | Static Public Member Functions | List of all members
vita::basic_alps_es< T, CS > Class Template Reference

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_
 

Detailed Description

template<class T, template< class > class CS>
class vita::basic_alps_es< T, CS >

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.

See also
https://github.com/ghornby/alps

Definition at line 136 of file evolution_strategy.h.


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