pare
Pareto frontier and skyline query primitives for multi-objective optimization. Efficiently filters sets of items to find non-dominated candidates across multiple metrics.
Dual-licensed under MIT or Apache-2.0.
For the underlying concepts (dominance/skyline, crowding distance, hypervolume), see
TECHNICAL_BACKGROUND.md.
Quickstart
[]
= "0.1.1"
use ParetoFrontier;
// [Relevance, Recency] - higher is better
let candidates = vec!;
let frontier = try_new.unwrap.indices;
// indices: [0, 1, 2]
try_new() is a convenience constructor that assumes all objectives are maximized and
stores each point's original index as its associated data.For mixed maximize/minimize objectives, build a ParetoFrontier with explicit directions and
insert points with push():
use ;
// [accuracy (higher is better), latency_ms (lower is better)]
let mut f = new;
f.push;
f.push;