Summary
Port pareto.py functionality using Metaheuristics.jl (JOSS published, NSGA-II/III, HV, IGD+, non-dominated sorting).
Functions to Implement
| Function |
Description |
Metaheuristics.jl API |
extract_front(costs, directions) |
Extract Pareto-optimal rows |
non_dominated_sort |
pareto_rank(costs, directions) |
Assign Pareto rank to each row |
non_dominated_sort |
hypervolume(front, ref) |
Hypervolume indicator |
HV indicator |
igd_plus(front, reference_front) |
IGD+ indicator |
IGDPlus indicator |
Design Notes
- Direction flipping (MAXIMIZE → negate before sorting) should mirror the Python implementation.
- Metaheuristics.jl provides all needed indicators natively: GD, IGD, IGD+, HV, spacing, Δₚ.
- Lazy-load via package extension if Metaheuristics.jl is heavy.
Dependencies
[deps]
Metaheuristics = "..."
[compat]
Metaheuristics = "3"
Acceptance Criteria
Summary
Port
pareto.pyfunctionality using Metaheuristics.jl (JOSS published, NSGA-II/III, HV, IGD+, non-dominated sorting).Functions to Implement
extract_front(costs, directions)non_dominated_sortpareto_rank(costs, directions)non_dominated_sorthypervolume(front, ref)HVindicatorigd_plus(front, reference_front)IGDPlusindicatorDesign Notes
Dependencies
Acceptance Criteria