pareto_frontier

negmas.preferences.pareto_frontier(ufuns, outcomes=None, issues=None, n_discretization=None, max_cardinality=inf, sort_by_welfare=True, eps=1e-12)[source]

Finds all pareto-optimal outcomes in the list.

Parameters:
  • ufuns (Sequence[BaseUtilityFunction]) – The utility functions

  • outcomes (Sequence[Outcome] | None) – the outcomes to be checked. If None then all possible outcomes from the issues will be checked

  • issues (Sequence[Issue] | None) – The set of issues (only used when outcomes is None)

  • n_discretization (int | None) – 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 (float) – resolution

Return type:

tuple[tuple[tuple[float, …], …], tuple[int, …]]

Returns:

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