pareto_frontier

negmas.preferences.pareto_frontier(ufuns: Sequence[BaseUtilityFunction], outcomes: Sequence[Outcome] | None = None, issues: Sequence[Issue] | None = None, n_discretization: int | None = None, max_cardinality: int | float = inf, sort_by_welfare=True, eps: float = 1e-12) tuple[tuple[tuple[float, ...], ...], tuple[int, ...]][source]

Finds all pareto-optimal outcomes in the list.

Parameters:
  • ufuns – The utility functions

  • outcomes – the outcomes to be checked. If None then all possible outcomes from the issues will be checked

  • issues – The set of issues (only used when outcomes is None)

  • n_discretization – The number of items to discretize each real-dimension into

  • sort_by_welfare – If True, the results are sorted descendingly by total welfare

  • rational_only – If true, only rational outcomes can be members of the Pareto frontier.

  • eps – resolution

Returns:

Two lists of the same length. First list gives the utilities at Pareto frontier points and second list gives their indices