feat(operators): add BoundedGaussianMutation

A bounded variant of GaussianMutation: same Gaussian noise applied to
the first parent, but every variable is clamped to its per-dimension
inclusive bound. Useful as a drop-in for problems that need feasibility
maintained across generations rather than relying on
clamp-inside-evaluate.

Panics on `sigma <= 0.0`, on no parents, and on construction if any
`(lo, hi)` has `lo > hi`. Decision length must match the bounds
length when called.
This commit is contained in:
2026-05-04 19:43:14 -06:00
parent 570beee346
commit acf1789d5b
2 changed files with 92 additions and 1 deletions
+3 -1
View File
@@ -16,7 +16,9 @@ pub use crate::pareto::{
pareto_compare, pareto_front,
};
pub use crate::operators::{BitFlipMutation, GaussianMutation, RealBounds, SwapMutation};
pub use crate::operators::{
BitFlipMutation, BoundedGaussianMutation, GaussianMutation, RealBounds, SwapMutation,
};
pub use crate::algorithms::{
DifferentialEvolution, DifferentialEvolutionConfig, Nsga2, Nsga2Config, Paes, PaesConfig,