Class PowerLawMutation

java.lang.Object
org.uma.jmetal.operator.mutation.impl.PowerLawMutation
All Implemented Interfaces:
Serializable, MutationOperator<DoubleSolution>, Operator<DoubleSolution,DoubleSolution>

public class PowerLawMutation extends Object implements MutationOperator<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
Code generated by Claude Sonnet 4
Author:
Antonio J. Nebro.
See Also: