Generational algorithm with roulette wheel selection operator and unique operators and chromosome representation.
More...
|
| void | registerParameters (StateP state) |
| | Register algorithm's parameters (if any).
|
| bool | initialize (StateP state) |
| | Initialize the algorithm, read parameters from the system, do a sanity check.
|
| bool | advanceGeneration (StateP state, DemeP deme) |
| | Perform a single generation on a single deme.
|
| void | invert (StateP state, const std::vector< IndividualP > &pool) |
| void | invertDc (StateP state, const std::vector< IndividualP > &pool) |
| void | transpose (StateP state, const std::vector< IndividualP > &pool) |
| void | transposeIS (StateP state, const std::vector< IndividualP > &pool) |
| void | transposeRIS (StateP state, const std::vector< IndividualP > &pool) |
| void | transposeGene (StateP state, const std::vector< IndividualP > &pool) |
| void | transposeDc (StateP state, const std::vector< IndividualP > &pool) |
| std::string | getName () |
| | Get algorithm name. Each algorithm is uniquely identified with its name.
|
| virtual bool | isParallel () |
| | Is algorithm parallel (false by default for all algorithms not inheriting ParallelAlgorithm class).
|
| bool | isImplicitParallel () |
| | Is algorithm run in implicit parallel mode (in development, see tutorial).
|
| virtual bool | initializePopulation (StateP) |
| | Evaluate initial population (called by State::run before evolution starts).
|
| virtual void | read () |
| virtual bool | advanceGeneration (StateP state) |
| | Perform one generation of the algorithm on the whole population.
|
| void | evaluate (IndividualP ind) |
| | Helper function: evaluate an individual.
|
| uint | mutate (const std::vector< IndividualP > &pool) |
| | Helper function: send a vector of individuals to mutation.
|
| uint | mutate (const IndividualP victim) |
| | Helper function: send a single individual to mutation.
|
| void | replaceWith (IndividualP oldInd, IndividualP newInd) |
| | Helper function: replace an individual in current deme.
|
| void | replaceWith (uint oldIndId, IndividualP newInd) |
| | Helper function: replace an individual at given position in current deme.
|
| void | registerParallelParameters (StateP state) |
| | used only in parallel ECF
|
| bool | initializeParallel (StateP state) |
| | used only in parallel ECF
|
|
virtual bool | advanceGeneration (StateP state) |
| | Parallel ECF: Perform one generation of the algorithm.
|
| virtual void | bcastTermination (StateP state) |
| | Parallel ECF: broadcast termination to worker processes.
|
|
void | registerParallelParameters (StateP state) |
| | Parallel ECF: Register parameters for implicit parallel algorithm version.
|
|
bool | initializeParallel (StateP state) |
| | Parallel ECF: Initialize implicit parallel algorithm.
|
| void | initializeImplicit (StateP state) |
| | Parallel ECF: Initialize implicit parallel mode.
|
| bool | implicitParallelOperate (StateP state) |
| | Parallel ECF: Worker processes in implicit parallel algorithm.
|
| void | evaluate (IndividualP ind) |
| | Parallel ECF: evaluate an individual.
|
| void | implicitEvaluate (IndividualP ind) |
| | Parallel ECF: implicitly evaluate an individual (store for later evaluation in implicit parallel version).
|
| uint | mutate (const IndividualP victim) |
| | Parallel ECF: immediately mutate an individual.
|
| uint | mutate (const std::vector< IndividualP > &pool) |
| | Parallel ECF: mutate a vector of individuals.
|
| uint | implicitMutate (IndividualP ind) |
| | Parallel ECF: implicitly mutate an individual (store for later mutation in implicit parallel version).
|
|
void | replaceWith (IndividualP oldInd, IndividualP newInd) |
| | Parallel ECF: replace an individual in a deme.
|
| void | replaceWith (uint oldIndId, IndividualP newInd) |
| | Parallel ECF: replace an individual at given position in a deme.
|
| bool | mate (IndividualP p1, IndividualP p2, IndividualP child) |
| | Helper function: crossover two individuals.
|
| IndividualP | copy (IndividualP source) |
| | Helper function: make a copy of an individual.
|
| bool | removeFrom (IndividualP victim, std::vector< IndividualP > &pool) |
| | Helper function: remove victim from pool of individual pointers.
|
| bool | isMember (IndividualP single, std::vector< IndividualP > &pool) |
| | Helper function: check if individual is in the pool.
|
|
| CrossoverP | crossover_ |
| | sptr to container of crossover operators (set by the system)
|
| MutationP | mutation_ |
| | sptr to container of mutation operators (set by the system)
|
| EvaluateOpP | evalOp_ |
| | sptr to evaluation operator (set by the system)
|
| StateP | state_ |
| bool | registerParameter (StateP state, std::string name, voidP value, enum ECF::type T, std::string description="") |
| | Helper function: register a single parameter with the system.
|
| voidP | getParameterValue (StateP state, std::string name) |
| | Helper function: get parameter value from the system.
|
| void | storeIndividual (IndividualP) |
| | stores the individual (if it is consistent), resets consistency flag
|
| void | storeGenotypes (std::vector< IndividualP > &) |
| | adds genotypes of individuals to 'sent' repository
|
| void | setConsistency (IndividualP) |
| | denotes current individual as consistent
|
| void | restoreIndividuals (std::vector< uint >) |
| | restores individuals whose fitness is received
|
| void | restorePopulation () |
| | restores inconsistent individuals to last consistent state
|
Generational algorithm with roulette wheel selection operator and unique operators and chromosome representation.
This algorithm requires one GEPChromosome genotype.
The algorithm flow:
single generation {
select individuals to form the new generation (fitness proportional selection operator);
create new generation (make copies);
noCrx = (deme size) * <crxRate_> / 2;
repeat(<noCrx> times) {
randomly select two parents;
perform crossover, _replace_ parents with their children;
}
perform mutation on new generation;
perform transposition on new generation;
perform inversion on new generation
}
Definition at line 35 of file AlgGEP.h.