The Crossover structure that encapsulates the crossover operation and its configuration in evolutionary algorithm.
More...
#include <Crossover.hh>
|
std::vector< std::unique_ptr< Individual > > | populationAfter {} |
| The population of children, i.e., after the crossover operation has been performed. More...
|
|
double | crossoverIndividualRate = 0.45 |
| The average rate of crossover. The expected number of children is: populationSize*crossoverIndividualRate.
|
|
CrossoverSelectionType | selectionType = CrossoverSelectionType::PSEUDO_ROULETTE |
| The method that chooses parents to be recombined.
|
|
double | pseudoRouletteRandomPortion = 0.3 |
| Used only with pseudo-roulette. This method selects pseudoRouletteRandomPortion*100% of individuals at random and (1-pseudoRouletteRandomPortion)*100% according to roulette.
|
|
double | crossoverPhaseRate = 1.0 |
| The probability of a crossover phase to happen (globally). If a crossover is included in the algorithm, this value should most likely be equal to 1.0.
|
|
The Crossover structure that encapsulates the crossover operation and its configuration in evolutionary algorithm.
◆ Crossover()
grail::evolution::Crossover::Crossover |
( |
double |
crossoverIndividualRate = 0.45 , |
|
|
CrossoverSelectionType |
selectionType = CrossoverSelectionType::PSEUDO_ROULETTE , |
|
|
double |
pseudoRouletteRandomPortion = 0.3 , |
|
|
double |
crossoverPhaseRate = 1.0 , |
|
|
std::mt19937_64::result_type |
seed = std::random_device{}() |
|
) |
| |
Crossover - Constructor.
- Parameters
-
crossoverIndividualRate | - the average rate of crossover. The expected number of children is: populationSize*crossoverIndividualRate. |
selectionType | - the method that chooses parents to be recombined. See the CrossoverSelectionType enum. |
pseudoRouletteRandomPortion | - used only with pseudo-roulette. This method selects pseudoRouletteRandomPortion*100% of individuals at random and (1-pseudoRouletteRandomPortion)*100% according to roulette. |
crossoverPhaseRate | - the probability of a crossover phase to happen (globally). If a crossover is included in the algorithm, this value should most likely be equal to 1.0. |
seed | - the initial seed for random numbers generator. |
◆ CrossoverFunctionMultiPoint()
void grail::evolution::Crossover::CrossoverFunctionMultiPoint |
( |
Individual & |
individual1, |
|
|
Individual & |
individual2, |
|
|
size_t |
length |
|
) |
| |
|
protectedvirtual |
Implementation of the standard k-point (multi-point) crossover operation.
- Parameters
-
individual1 | - the first parent to produce offspring. |
individual2 | - the second parent to produce offspring. |
◆ CrossoverFunctionOnePoint()
void grail::evolution::Crossover::CrossoverFunctionOnePoint |
( |
Individual & |
individual1, |
|
|
Individual & |
individual2 |
|
) |
| |
|
protectedvirtual |
Implementation of the standard one-point crossover operation.
- Parameters
-
individual1 | - the first parent to produce offspring. |
individual2 | - the second parent to produce offspring. |
◆ CrossoverIndividuals()
void grail::evolution::Crossover::CrossoverIndividuals |
( |
Individual & |
individual1, |
|
|
Individual & |
individual2 |
|
) |
| |
|
protectedvirtual |
The function that performs a single crossover operation between two individuals.
- Parameters
-
individual1 | - the first parent to produce offspring. |
individual2 | - the second parent to produce offspring. |
◆ Perform()
void grail::evolution::Crossover::Perform |
( |
const std::vector< std::unique_ptr< Individual >> & |
inputPopulation | ) |
|
Perform - the function that performs the crossover phase.
- Parameters
-
inputPopulation | - the population containing individuals that are candidates for the crossover. Please note that the crossover might not choose all individuals depending on its configuration. |
◆ populationAfter
std::vector<std::unique_ptr<Individual> > grail::evolution::Crossover::populationAfter {} |
The population of children, i.e., after the crossover operation has been performed.
The documentation for this struct was generated from the following files: