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:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doublestatic final double -
Constructor Summary
ConstructorsConstructorDescriptionBLXAlphaBetaCrossover(double crossoverProbability) Constructor with default alpha and beta valuesBLXAlphaBetaCrossover(double crossoverProbability, double alpha, double beta) Constructor with default random generatorBLXAlphaBetaCrossover(double crossoverProbability, double alpha, double beta, RepairDoubleSolution solutionRepair) Constructor with default solution repair strategyBLXAlphaBetaCrossover(double crossoverProbability, double alpha, double beta, RepairDoubleSolution solutionRepair, RandomGenerator<Double> randomGenerator) Constructor with custom random generator and solution repair strategy -
Method Summary
Modifier and TypeMethodDescriptiondoubleexecute(List<DoubleSolution> solutions) doublegetAlpha()doublegetBeta()intint
-
Field Details
-
DEFAULT_ALPHA
public static final double DEFAULT_ALPHA- See Also:
-
DEFAULT_BETA
public static final double DEFAULT_BETA- See Also:
-
-
Constructor Details
-
BLXAlphaBetaCrossover
public BLXAlphaBetaCrossover(double crossoverProbability) Constructor with default alpha and beta values- Parameters:
crossoverProbability-
-
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, RepairDoubleSolution solutionRepair) Constructor with default solution repair strategy- 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])solutionRepair- Strategy for repairing solutions
-
BLXAlphaBetaCrossover
public BLXAlphaBetaCrossover(double crossoverProbability, double alpha, double beta, RepairDoubleSolution solutionRepair, RandomGenerator<Double> randomGenerator) Constructor with custom random generator and solution repair strategy- 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])solutionRepair- Strategy for repairing solutionsrandomGenerator- 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)
-