![]() |
ECF 1.7
|
Cuckoo search (CS) optimization algorithm (see http://en.wikipedia.org/wiki/Cuckoo_search). More...
#include <AlgCuckooSearch.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). | |
| Public Member Functions inherited from Algorithm | |
| 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. | |
Protected Attributes | |
| double | pa |
| percentage of solutions which will be replaced (similar to mutation probability) | |
| double | ubound |
| double | lbound |
| uint | numDimension |
| SelectionOperatorP | selBestOp |
| Protected Attributes inherited from Algorithm | |
| DemeP | activeDeme_ |
| std::string | name_ |
| algorithm name | |
| bool | bImplicitParallel_ |
| implicit parallel flag | |
| std::vector< SelectionOperatorP > | selectionOp |
| sel. operators used by algorithm | |
| std::vector< IndividualP > | requests_ |
| std::vector< IndividualP > | stored_ |
| individual vectors for implicit evaluation | |
| std::vector< uint > | requestIds_ |
| individual indexes for implicit evaluation | |
| std::vector< IndividualP > | demeCopy_ |
| std::vector< IndividualP > | myJob_ |
| worker's individual vector | |
| CommunicatorP | comm_ |
| uint | jobSize_ |
| uint | totalEvaluations_ |
| uint | wastedEvaluations_ |
| bool | bImplicitEvaluation_ |
| implicit evaluation flag | |
| bool | bImplicitMutation_ |
| implicit mutation flag | |
| bool | bSynchronized_ |
| is implicit paralelization synchronous | |
| SelectionOperatorP | selBestOp |
| std::vector< IndividualP > | requestsMut_ |
| std::vector< IndividualP > | receivedMut_ |
| individual vectors for implicit mutation | |
| std::vector< uint > | requestMutIds_ |
| individual indexes for implicit mutation | |
| IndividualP | currentBest_ |
| std::vector< IndividualP > | storedInds_ |
| std::vector< std::vector< IndividualP > > | sentInds_ |
| individuals sent for evaluation | |
| std::vector< bool > | isConsistent_ |
| is individual (genotype-fitness pair) consistent | |
Additional Inherited Members | |
| Public Attributes inherited from Algorithm | |
| 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_ |
| Protected Member Functions inherited from Algorithm | |
| 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 | |
Cuckoo search (CS) optimization algorithm (see http://en.wikipedia.org/wiki/Cuckoo_search).
CS algorithm accepts only FloatingPoint genotype (vector of real values). This implementation is based on: http://www.mathworks.com/matlabcentral/fileexchange/29809-cuckoo-search–cs–algorithm
The algorithm flow:
single generation {
generate new solutions via Levy flights ( adding constants multiplied with normal distribution random numbers and difference between current solution and best solution)
pa amount of new generated solutions are replaced with new solutions, related to the difference in solutions
}
Definition at line 22 of file AlgCuckooSearch.h.
| CuckooSearch::CuckooSearch | ( | ) |
Definition at line 10 of file AlgCuckooSearch.cpp.
|
virtual |
Perform a single generation on a single deme.
Must be implemented by a specific algorithm class
Implements Algorithm.
Definition at line 56 of file AlgCuckooSearch.cpp.
|
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 23 of file AlgCuckooSearch.cpp.
|
virtual |
Register algorithm's parameters (if any).
Called by the system before algorithm initialization (Algorithm::initialize)
Reimplemented from Algorithm.
Definition at line 17 of file AlgCuckooSearch.cpp.
|
protected |
Definition at line 32 of file AlgCuckooSearch.h.
|
protected |
Definition at line 33 of file AlgCuckooSearch.h.
|
protected |
percentage of solutions which will be replaced (similar to mutation probability)
Definition at line 30 of file AlgCuckooSearch.h.
|
protected |
Definition at line 34 of file AlgCuckooSearch.h.
|
protected |
Definition at line 31 of file AlgCuckooSearch.h.