GALib-Parallel
Header-only C++ library for parallel evolutionary algorithms
Loading...
Searching...
No Matches
Public Member Functions | List of all members
galib::UniformCrossover< GeneType > Class Template Reference

Performs uniform crossover. More...

#include <UniformCrossover.h>

Inheritance diagram for galib::UniformCrossover< GeneType >:
[legend]

Public Member Functions

std::pair< Individual< GeneType >, Individual< GeneType > > crossover (const Individual< GeneType > &parent1, const Individual< GeneType > &parent2) override
 Randomly picks genes from either parent at each position.
 
- Public Member Functions inherited from galib::Crossover< GeneType >
virtual ~Crossover ()=default
 

Detailed Description

template<typename GeneType>
class galib::UniformCrossover< GeneType >

Performs uniform crossover.

For every gene position, there is a 50% chance to take the gene from Parent 1 and a 50% chance to take it from Parent 2.

Template Parameters
GeneTypeThe numeric type of the genes.

Definition at line 22 of file UniformCrossover.h.

Member Function Documentation

◆ crossover()

template<typename GeneType >
std::pair< Individual< GeneType >, Individual< GeneType > > galib::UniformCrossover< GeneType >::crossover ( const Individual< GeneType > &  parent1,
const Individual< GeneType > &  parent2 
)
inlineoverridevirtual

Randomly picks genes from either parent at each position.

Parameters
parent1First parent.
parent2Second parent.
Returns
Pair of children.
Exceptions
std::invalid_argumentif parents have different genotype sizes.

Implements galib::Crossover< GeneType >.

Definition at line 32 of file UniformCrossover.h.

References galib::Individual< GeneType >::getGenotype(), and galib::Individual< GeneType >::size().


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