feat(operators): add LevyMutation real-valued heavy-tailed mutation
Lévy-flight perturbation: each variable receives a step drawn from a heavy-tailed Lévy(α) distribution rather than a Normal. The result is "mostly small steps with rare big jumps," which gives a more exploratory mutation than Gaussian without abandoning local search. Decision type: Vec<f64>, with optional bounds (clamped per-axis if `bounds` is non-empty). The step is sampled via Mantegna's algorithm which generates Lévy(α) by combining two Normal samples and taking the right power, controlled by the tail exponent `alpha` (typical 1.5; 1 is heavy, 2 collapses to Normal). This is the only genuinely-different mutation kernel from Cuckoo Search and other Lévy-flight metaheuristics; ship it as a Variation operator usable from any algorithm rather than as a separate algorithm.
This commit is contained in:
+1
-1
@@ -18,7 +18,7 @@ pub use crate::pareto::{
|
||||
|
||||
pub use crate::operators::{
|
||||
BitFlipMutation, BoundedGaussianMutation, CompositeVariation, GaussianMutation,
|
||||
PolynomialMutation, RealBounds, SimulatedBinaryCrossover, SwapMutation,
|
||||
LevyMutation, PolynomialMutation, RealBounds, SimulatedBinaryCrossover, SwapMutation,
|
||||
};
|
||||
|
||||
pub use crate::algorithms::{
|
||||
|
||||
Reference in New Issue
Block a user