| name | pareto-frontier |
| description | Identify Pareto-optimal points from a set of multi-objective solutions. |
Pareto Frontier Identification
A point is Pareto-optimal if no other point is better in all objectives. For this task, we want to maximize F1 and minimize Delta.
Logic
A solution A dominates B if:
A.F1 >= B.F1 AND A.Delta <= B.Delta
- At least one inequality is strict.
Python Implementation
def is_pareto_efficient(costs):
"""
Find the pareto-efficient points
:param costs: An (n_points, n_costs) array where costs are to be MINIMIZED.
:return: A boolean array of length n_points indicating efficiency.
"""
is_efficient = np.ones(costs.shape[0], dtype=bool)
for i, c in enumerate(costs):
if is_efficient[i]:
is_efficient[is_efficient] = np.any(costs[is_efficient] < c, axis=1) | \
np.all(costs[is_efficient] == c, axis=1)
is_efficient[i] = True
return is_efficient