public class CrossoverDoubleBLX extends CrossoverDoubleElementwise
CrossoverDoubleBLX is an implementation of the blend crossover
operator proposed by Eshelman and Schaffer, 1993.
The BLX crossover is applied element-wise. For two double values y
and x (assuming y > x one offspring value is created in the
uniform interval [x-(y-x)*alpha;y+(y-x)*alpha].
If alpha is set to 0, the operator creates a random solution
between x and y. Values greater zero allow offspring that is
apart from the interval between x and y. The authors report
best performance with alpha = 0.5 which is then called the BLX-0.5
operator.
| Constructor and Description |
|---|
CrossoverDoubleBLX(double alpha,
NormalizeDouble normalize,
Rand random)
Constructs a
CrossoverDoubleBLX with an alpha value, an
NormalizeDouble operator, and a random number generator. |
| Modifier and Type | Method and Description |
|---|---|
Pair<Double> |
crossover(double x,
double y)
Performs a crossover with two double values.
|
crossover@Inject
public CrossoverDoubleBLX(double alpha,
NormalizeDouble normalize,
Rand random)
CrossoverDoubleBLX with an alpha value, an
NormalizeDouble operator, and a random number generator.alpha - the alpha valuenormalize - the normalize operatorrandom - the random number generatorpublic Pair<Double> crossover(double x, double y)
CrossoverDoubleElementwisecrossover in class CrossoverDoubleElementwisex - the first valuey - the second value