Class BLXAlphaBetaCrossover
java.lang.Object
org.uma.jmetal.operator.crossover.impl.BLXAlphaBetaCrossover
- All Implemented Interfaces:
Serializable,CrossoverOperator<DoubleSolution>,Operator<List<DoubleSolution>,List<DoubleSolution>>
This class implements the BLX-αβ crossover operator for real-valued solutions.
The BLX-αβ crossover creates offspring that are randomly selected from intervals
that extend beyond the parent values, controlled by parameters α and β.
Reference: Eshelman, L. J., invalid input: '&' Schaffer, J. D. (1993). Real-coded genetic algorithms and interval-schemata. Foundations of genetic algorithms, 2, 187-202.
Parameter recommendations:
- α (alpha): Controls the exploration range below the smaller parent value. Typical values are in the range [0.0, 1.0]. A value of 0.0 means no exploration below the smaller parent, while 1.0 allows exploration equal to the distance between parents below the smaller parent.
- β (beta): Controls the exploration range above the larger parent value. Typical values are in the range [0.0, 1.0]. A value of 0.0 means no exploration above the larger parent, while 1.0 allows exploration equal to the distance between parents above the larger parent.
Note: Both α and β must be non-negative values. Setting both to 0.0 results in a crossover that only generates values strictly between the parent values.
- Author:
- Antonio J. Nebro
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionBLXAlphaBetaCrossover(double crossoverProbability, double alpha, double beta) Constructor with default random generatorBLXAlphaBetaCrossover(double crossoverProbability, double alpha, double beta, RandomGenerator<Double> randomGenerator) Constructor with custom random generator -
Method Summary
Modifier and TypeMethodDescriptiondoubleexecute(List<DoubleSolution> solutions) doublegetAlpha()doublegetBeta()intint
-
Constructor Details
-
BLXAlphaBetaCrossover
public BLXAlphaBetaCrossover(double crossoverProbability, double alpha, double beta) Constructor with default random generator- Parameters:
crossoverProbability- Crossover probability (must be in [0,1])alpha- Controls exploration below parents (must be >= 0, typical [0,1])beta- Controls exploration above parents (must be >= 0, typical [0,1])
-
BLXAlphaBetaCrossover
public BLXAlphaBetaCrossover(double crossoverProbability, double alpha, double beta, RandomGenerator<Double> randomGenerator) Constructor with custom random generator- Parameters:
crossoverProbability- Crossover probability (must be in [0,1])alpha- Controls exploration below parents (must be >= 0, typical [0,1])beta- Controls exploration above parents (must be >= 0, typical [0,1])randomGenerator- Custom random number generator
-
-
Method Details
-
execute
- Specified by:
executein interfaceOperator<List<DoubleSolution>,List<DoubleSolution>> - Parameters:
solutions- The data to process
-
crossoverProbability
public double crossoverProbability()- Specified by:
crossoverProbabilityin interfaceCrossoverOperator<DoubleSolution>
-
numberOfRequiredParents
public int numberOfRequiredParents()- Specified by:
numberOfRequiredParentsin interfaceCrossoverOperator<DoubleSolution>
-
numberOfGeneratedChildren
public int numberOfGeneratedChildren()- Specified by:
numberOfGeneratedChildrenin interfaceCrossoverOperator<DoubleSolution>
-
getAlpha
public double getAlpha()- Returns:
- The alpha parameter value (exploration below parents)
-
getBeta
public double getBeta()- Returns:
- The beta parameter value (exploration above parents)
-