feat(pareto): add Dominance enum and pareto_compare

Implements spec §9.1–9.2:

- `Dominance` enum (Dominates / DominatedBy / NonDominated / Equal).
- `pareto_compare(a, b, objectives)` with the four-step rule: feasible
  beats infeasible; among infeasibles, lower violation wins; among
  feasibles, compare in minimization orientation via
  ObjectiveSpace::as_minimization.

Unit tests cover dominance, dominated-by, non-dominated, equal, the
feasibility tiebreak, and that Maximize objectives are handled correctly
(spec §18.2).
This commit is contained in:
2026-05-04 19:18:43 -06:00
parent 3f2921ea60
commit 95e797647b
4 changed files with 155 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
//! Pareto utilities: dominance, fronts, sorting, crowding, and an archive.
pub mod dominance;
pub use dominance::*;