Expand description
Advanced multi-objective optimization utilities (clean Vec<f64>-based API).
Provides:
NsgaIII— struct-based NSGA-III many-objective optimizerNsgaResult— unified result type- Free functions:
dominates,non_dominated_sort,hypervolume,crowding_distance,weighted_sum_optimize,epsilon_constraint_optimize
All functions operate on Vec<f64> and &[f64] rather than ndarray types,
making them easy to use from pure Rust code without array wrappers.
§Example
use scirs2_optimize::multi_objective::advanced::{NsgaIII, dominates, non_dominated_sort};
assert!(dominates(&[1.0, 2.0], &[2.0, 3.0]));
let sols = vec![vec![1.0, 3.0], vec![2.0, 2.0], vec![3.0, 1.0], vec![2.0, 3.0]];
let fronts = non_dominated_sort(&sols);
assert_eq!(fronts[0].len(), 3);Structs§
- NsgaIII
- NSGA-III many-objective optimizer — struct-based API.
- Nsga
Result - Result from
NsgaIII::optimize.
Functions§
- crowding_
distance - Compute crowding distances for a single Pareto front.
- dominates
- Returns
trueif objective vectoraPareto-dominatesb. - epsilon_
constraint_ optimize - Epsilon-constraint method for multi-objective optimization.
- hypervolume
- Compute the hypervolume indicator.
- non_
dominated_ sort - Fast non-dominated sorting (NSGA-II style).
- weighted_
sum_ optimize - Minimize a weighted sum of objectives via multi-start coordinate descent.