public class SimulatedBinaryCrossover<G extends NumericGene<?,G>,C extends Comparable<? super C>> extends Crossover<G,C>
Chromosome
of
NumericGene
s such that each position is either crossed contracted or
expanded with a certain probability. The probability distribution is designed
such that the children will lie closer to their parents as is the case with
the single point binary crossover.
It is implemented as described in Deb, K. and Agrawal, R. B. 1995. Simulated binary crossover for continuous search space. Complex Systems, 9, pp. 115-148.
_probability
DEFAULT_ALTER_PROBABILITY
Constructor and Description |
---|
SimulatedBinaryCrossover(double probability)
Create a new simulated binary crossover alterer with the given
parameters.
|
SimulatedBinaryCrossover(double probability,
double contiguity)
Create a new simulated binary crossover alterer with the given
parameters.
|
Modifier and Type | Method and Description |
---|---|
protected int |
crossover(MSeq<G> that,
MSeq<G> other) |
double |
getContiguity()
Return the contiguity value of the crossover.
|
String |
toString() |
alter, getOrder
getProbability
public SimulatedBinaryCrossover(double probability, double contiguity)
probability
- the recombination probabilitycontiguity
- the contiguity value that specifies how close a child
should be to its parents (larger value means closer). The value
must be greater or equal than 0. Typical values are in the range
[2..5].IllegalArgumentException
- if the probability
is not in the
valid range of [0, 1]
IllegalArgumentException
- if contiguity
is smaller than
zeropublic SimulatedBinaryCrossover(double probability)
2.5
.probability
- the recombination probabilityIllegalArgumentException
- if the probability
is not in the
valid range of [0, 1]
IllegalArgumentException
- if contiguity
is smaller than
zeropublic double getContiguity()
protected int crossover(MSeq<G> that, MSeq<G> other)
crossover
in class Crossover<G extends NumericGene<?,G>,C extends Comparable<? super C>>
© 2007-2019 Franz Wilhelmstötter (2019-11-18 20:30)