Class CrossoverDoubleUnfairAverage
- All Implemented Interfaces:
Operator<DoubleGenotype>,Crossover<DoubleGenotype>
CrossoverDoubleUnfairAverage implements the unfair average
crossover proposed by Nomura and Miyhoshi, 1996.
The unfair average crossover is applied to the whole genotype, i.e., the used vector of double values. In the original work, two offspring created using
z_1 = (1 + alpha)x - alpha * y for i = 1, ..., j and
z_1 = -alpha * x + (1 + alpha)y for i = j + 1, ..., n
z_2 = (1 - alpha)x + alpha * y for i = 1, ..., j and
z_2 = alpha * x + (1 - alpha)y for i = j + 1, ..., n
for each double value in the double vector. In this implementation, one
offspring is created following z_1 with a probability of 0.5
and following z_2 with a probability of 0.5, respectively. At
this juncture, n is the number of variables in the vector and
j a randomly chosen integer between 1 and n. The
value alpha is within the range (0, 0.5).
Unlike the BLX and SBX operator, the unfair average will create offspring towards one of the parent solutions.
-
Field Summary
FieldsFields inherited from class org.opt4j.operator.crossover.CrossoverDouble
normalize, random -
Constructor Summary
ConstructorsConstructorDescriptionCrossoverDoubleUnfairAverage(double alpha, NormalizeDouble normalize, Rand random) Constructs anCrossoverDoubleUnfairAveragewith an alpha value and a random number generator. -
Method Summary
Methods inherited from class org.opt4j.operator.crossover.CrossoverDouble
crossover
-
Field Details
-
alpha
protected final double alpha
-
-
Constructor Details
-
CrossoverDoubleUnfairAverage
Constructs anCrossoverDoubleUnfairAveragewith an alpha value and a random number generator.- Parameters:
alpha- the alpha valuenormalize- a normalize operatorrandom- the random number generator
-
-
Method Details
-
crossover
Description copied from class:CrossoverDoublePerforms a crossover of two parentGenotypes that consist of double vectors.- Specified by:
crossoverin classCrossoverDouble- Parameters:
p1- the first parentp2- the second parento1- the first offspringo2- the second offspring
-