feat(operators): add CompositeVariation pipeline (crossover → mutation)

Generic two-stage Variation operator: runs an inner crossover-style
operator on the parents, then applies an inner mutation-style operator
to each resulting child. Lets users build the canonical NSGA-II
operator stack — `SimulatedBinaryCrossover` followed by
`PolynomialMutation` — by composing the existing primitives instead
of bundling a one-off SbxPolyMut struct.

Lives in src/operators/composite.rs to keep type-specific operator
files unchanged. Generic over decision type and over both inner
operators.
This commit is contained in:
2026-05-04 19:44:58 -06:00
parent 464617b1f8
commit cc1b44b34e
3 changed files with 100 additions and 2 deletions
+2 -2
View File
@@ -17,8 +17,8 @@ pub use crate::pareto::{
};
pub use crate::operators::{
BitFlipMutation, BoundedGaussianMutation, GaussianMutation, PolynomialMutation,
RealBounds, SimulatedBinaryCrossover, SwapMutation,
BitFlipMutation, BoundedGaussianMutation, CompositeVariation, GaussianMutation,
PolynomialMutation, RealBounds, SimulatedBinaryCrossover, SwapMutation,
};
pub use crate::algorithms::{