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
+2
View File
@@ -10,3 +10,5 @@ pub use crate::core::{
};
pub use crate::traits::{Initializer, Optimizer, Variation};
pub use crate::pareto::{Dominance, pareto_compare};