Class LevyFlightMutation

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

public class LevyFlightMutation extends Object implements MutationOperator<DoubleSolution>
This class implements a Lévy flight mutation operator for real-valued solutions. Lévy flights are characterized by heavy-tailed distributions with infinite variance, producing mostly small steps with occasional very large jumps. This behavior is beneficial for global optimization as it provides both local search capabilities and the ability to escape local optima through large jumps.

The implementation uses the Mantegna algorithm to generate Lévy-distributed steps: 1. Generate u ~ Normal(0, σ_u²) where σ_u = [Γ(1+β)sin(πβ/2)/Γ((1+β)/2)β2^((β-1)/2)]^(1/β) 2. Generate v ~ Normal(0, 1) 3. Lévy step = u / |v|^(1/β)

Parameters:

  • mutationProbability: The probability of mutating each variable. Must be in [0, 1].
  • beta: The Lévy index parameter. Must be in (1, 2]. Controls the tail heaviness:
    • Values closer to 1.0 produce heavier tails with more frequent large jumps
    • Values around 1.5 provide balanced exploration with moderate large jumps (typical choice)
    • Values closer to 2.0 approach Gaussian behavior with fewer large jumps
  • stepSize: The scaling factor for Lévy steps. Must be positive (> 0). Typical values range from 0.001 to 0.1:
    • Smaller values (0.001-0.01) provide fine-grained local search
    • Medium values (0.01-0.05) balance local and global search
    • Larger values (0.05-0.1) emphasize global exploration
Author:
Antonio J. Nebro

Code generated by Claude Sonnet 4

See Also: