T
- generic type of the AbstractListChromosome
s for crossoverpublic class UniformCrossover<T> extends Object implements CrossoverPolicy
This crossover policy evaluates each gene of the parent chromosomes by chosing a uniform random number p
in
the range [0, 1]. If p
< ratio
, the parent genes are swapped. This means with a ratio of 0.7, 30%
of the genes from the first parent and 70% from the second parent will be selected for the first offspring (and vice
versa for the second offspring).
This policy works only on AbstractListChromosome
, and therefore it is parameterized by T. Moreover, the
chromosomes must have same lengths.
Constructor and Description |
---|
UniformCrossover(double ratioIn)
Creates a new
UniformCrossover policy using the given mixing ratio. |
Modifier and Type | Method and Description |
---|---|
ChromosomePair |
crossover(Chromosome first,
Chromosome second)
Perform a crossover operation on the given chromosomes.
|
double |
getRatio()
Returns the mixing ratio used by this
CrossoverPolicy . |
public UniformCrossover(double ratioIn)
UniformCrossover
policy using the given mixing ratio.ratioIn
- the mixing ratioOutOfRangeException
- if the mixing ratio is outside the [0, 1] rangepublic double getRatio()
CrossoverPolicy
.public ChromosomePair crossover(Chromosome first, Chromosome second)
crossover
in interface CrossoverPolicy
first
- the first chromosome.second
- the second chromosome.MathIllegalArgumentException
- iff one of the chromosomes is
not an instance of AbstractListChromosome
DimensionMismatchException
- if the length of the two chromosomes is differentCopyright © 2021 CNES. All rights reserved.