feat: add multi-objective optimization with NSGA-II

Add MultiObjectiveStudy for optimizing multiple objectives simultaneously,
backed by NSGA-II (Non-dominated Sorting Genetic Algorithm II) with SBX
crossover, polynomial mutation, and constraint-aware dominance.

New public API:
- MultiObjectiveStudy with optimize(), pareto_front(), ask()/tell()
- MultiObjectiveTrial with get(), is_feasible(), user attributes
- MultiObjectiveSampler trait for custom MO samplers
- Nsga2Sampler with builder for population size, crossover/mutation params
- ObjectiveDimensionMismatch error variant
This commit is contained in:
Manuel Raimann
2026-02-11 19:35:18 +01:00
parent 7d79111d81
commit bcc4549e66
7 changed files with 1832 additions and 0 deletions
+1
View File
@@ -4,6 +4,7 @@ pub mod bohb;
#[cfg(feature = "cma-es")]
pub mod cma_es;
pub mod grid;
pub mod nsga2;
pub mod random;
#[cfg(feature = "sobol")]
pub mod sobol;