Class PowerLawMutation
java.lang.Object
org.uma.jmetal.operator.mutation.impl.PowerLawMutation
- All Implemented Interfaces:
Serializable,MutationOperator<DoubleSolution>,Operator<DoubleSolution,DoubleSolution>
This class implements a power-law mutation operator for real-valued solutions. The power-law
distribution produces heavy-tailed perturbations that can occasionally create large jumps while
favoring smaller perturbations, which is beneficial for both exploration and exploitation in
optimization.
The mutation follows the formula: tempDelta = rnd^(-delta) deltaq = 0.5 * (rnd - 0.5) * (1 - tempDelta) newValue = oldValue + deltaq * (upperBound - lowerBound)
Parameters:
- mutationProbability: The probability of mutating each variable. Must be in [0, 1].
- delta: The power-law exponent parameter (controls distribution shape).
Must be positive (> 0). Typical values range from 0.1 to 10.0:
- Values invalid input: '<' 1.0 create more uniform distributions with moderate perturbations
- Values around 1.0 provide balanced exploration/exploitation
- Values > 1.0 create heavy-tailed distributions favoring small perturbations with occasional large jumps
- Author:
- Antonio J. Nebro.
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor with default parametersPowerLawMutation(double mutationProbability, double delta) ConstructorPowerLawMutation(double mutationProbability, double delta, RepairDoubleSolution solutionRepair) ConstructorPowerLawMutation(double mutationProbability, double delta, RepairDoubleSolution solutionRepair, RandomGenerator<Double> randomGenerator) Constructor -
Method Summary
Modifier and TypeMethodDescriptiondoubledelta()Get the delta parametervoiddelta(double delta) Set the delta parameterexecute(DoubleSolution solution) Execute the mutation operationdoubleGet the mutation probabilityvoidmutationProbability(double mutationProbability) Set the mutation probabilityGet the solution repair strategyvoidsolutionRepair(RepairDoubleSolution solutionRepair) Set the solution repair strategytoString()Get string representation of the operator
-
Constructor Details
-
PowerLawMutation
public PowerLawMutation()Constructor with default parameters -
PowerLawMutation
public PowerLawMutation(double mutationProbability, double delta) Constructor- Parameters:
mutationProbability- The probability of mutating each variabledelta- The power-law exponent parameter (controls distribution shape)
-
PowerLawMutation
public PowerLawMutation(double mutationProbability, double delta, RepairDoubleSolution solutionRepair) Constructor- Parameters:
mutationProbability- The probability of mutating each variabledelta- The power-law exponent parameter (controls distribution shape)solutionRepair- The repair strategy for out-of-bounds values
-
PowerLawMutation
public PowerLawMutation(double mutationProbability, double delta, RepairDoubleSolution solutionRepair, RandomGenerator<Double> randomGenerator) Constructor- Parameters:
mutationProbability- The probability of mutating each variabledelta- The power-law exponent parameter (controls distribution shape)solutionRepair- The repair strategy for out-of-bounds valuesrandomGenerator- The random number generator
-
-
Method Details
-
execute
Execute the mutation operation- Specified by:
executein interfaceMutationOperator<DoubleSolution>- Specified by:
executein interfaceOperator<DoubleSolution,DoubleSolution> - Parameters:
solution- The solution to be mutated- Returns:
- The mutated solution
-
mutationProbability
public double mutationProbability()Get the mutation probability- Specified by:
mutationProbabilityin interfaceMutationOperator<DoubleSolution>- Returns:
- The mutation probability
-
mutationProbability
public void mutationProbability(double mutationProbability) Set the mutation probability- Parameters:
mutationProbability- The new mutation probability
-
delta
public double delta()Get the delta parameter- Returns:
- The delta parameter
-
delta
public void delta(double delta) Set the delta parameter- Parameters:
delta- The new delta parameter
-
solutionRepair
Get the solution repair strategy- Returns:
- The solution repair strategy
-
solutionRepair
Set the solution repair strategy- Parameters:
solutionRepair- The new solution repair strategy
-
toString
-