(mu/rho +/, lambda) - Evolution Strategy (ES) algorithm.This algorithm is genotype independent (it can be used with any Genotype). More...
#include <AlgEvolutionStrategy.h>
Public Member Functions | |
| bool | advanceGeneration (StateP state, DemeP deme) |
| Perform a single generation on a single deme. | |
| bool | initialize (StateP state) |
| Initialize the algorithm, read parameters from the system, do a sanity check. | |
| void | registerParameters (StateP state) |
| Register algorithm's parameters (if any). | |
Static Protected Member Functions | |
| static bool | compare (IndividualP first, IndividualP second) |
Protected Attributes | |
| uint | lambda_ |
| number of offspring | |
| uint | rho_ |
| number of parents (1 or 2) | |
| uint | mu_ |
| the size of the parent population | |
| uint | subPopulations_ |
| how many parent populations are in a deme | |
| bool | plusSelection_ |
| type of selection (plus or comma) | |
| SelectionOperatorP | selBestOp_ |
| SelectionOperatorP | selRandomOp_ |
(mu/rho +/, lambda) - Evolution Strategy (ES) algorithm.
This algorithm is genotype independent (it can be used with any Genotype).
The algorithm parameters are:
Since the ECF defines "population.size" independently of the algorithm, this implementation actually runs multiple ES parent populations; the population.size must therefore be a multiple of parent pool size (mu). For instance, if mu = 5 and population.size = 30, then 6 ES subpopulations will be executed (no migration).
The algorithm flow:
subpopulations = population.size / mu;
single generation {
repeat(for every subpopulation) {
add mu individuals to the parent pool;
create lambda offspring using random rho parents for each;
if comma selection
create new parent pool with mu best from offspring pool;
else
create new parent pool with mu best from offspring and parents pool;
}
}
Definition at line 40 of file AlgEvolutionStrategy.h.
| bool EvolutionStrategy::advanceGeneration | ( | StateP | , | |
| DemeP | ||||
| ) | [virtual] |
Perform a single generation on a single deme.
Must be implemented by a specific algorithm class
Implements Algorithm.
Definition at line 87 of file AlgEvolutionStrategy.cpp.
| bool EvolutionStrategy::initialize | ( | StateP | ) | [virtual] |
Initialize the algorithm, read parameters from the system, do a sanity check.
Called by the system before the algorithm starts (Algorithm::advanceGeneration)
Reimplemented from Algorithm.
Definition at line 33 of file AlgEvolutionStrategy.cpp.
| void EvolutionStrategy::registerParameters | ( | StateP | ) | [virtual] |
Register algorithm's parameters (if any).
Called by the system before algorithm initialization (Algorithm::initialize)
Reimplemented from Algorithm.
Definition at line 20 of file AlgEvolutionStrategy.cpp.
1.7.1