feat(pareto): add crowding_distance

Computes per-point crowding distance over a single Pareto front (spec
§9.6):

- Returns Vec<f64> with the same length as the front index slice.
- Empty front → empty Vec.
- Front of length ≤ 2 → all f64::INFINITY.
- Boundary points along each objective receive INFINITY.
- Interior points get sum of normalized neighbor gaps; if max == min for
  an objective the contribution is zero.
- Operates on minimization-oriented objective values.
This commit is contained in:
2026-05-04 19:20:08 -06:00
parent 9d64a0f186
commit ff557061bb
3 changed files with 147 additions and 1 deletions
+2
View File
@@ -1,9 +1,11 @@
//! Pareto utilities: dominance, fronts, sorting, crowding, and an archive.
pub mod crowding;
pub mod dominance;
pub mod front;
pub mod sort;
pub use crowding::*;
pub use dominance::*;
pub use front::*;
pub use sort::*;