pub fn hypervolume_indicator(front: &[Vec<f64>], reference: &[f64]) -> f64Expand description
Compute the exact hypervolume indicator using the WFG algorithm.
Calculates the volume of objective space dominated by front and bounded
by reference. Works for any number of objectives ≥ 1.
For 2-D problems the call delegates to the exact O(N log N) sweep. For higher dimensions the recursive WFG slicing algorithm is used, which has worst-case complexity O(N^(M-1) log N) where M is the number of objectives.
§Arguments
front- Objective vectors (each of equal length M). May contain points that do not strictly dominate the reference; these are filtered.reference- Reference point of length M; should dominate all front points to get a non-zero result.
§Returns
The exact hypervolume value ≥ 0.
§Examples
use scirs2_optimize::multiobjective::pareto::hypervolume_indicator;
// 3-D: single point (1,1,1) with reference (2,2,2) => volume = 1
let front = vec![vec![1.0_f64, 1.0, 1.0]];
let hv = hypervolume_indicator(&front, &[2.0, 2.0, 2.0]);
assert!((hv - 1.0).abs() < 1e-10);