negmas.utilities.pareto_frontier(ufuns: Iterable[negmas.utilities.UtilityFunction], outcomes: Optional[Iterable[Union[negmas.outcomes.OutcomeType, Tuple[Union[int, float, str, list]], Dict[Union[int, str], Union[int, float, str, list]]]]] = None, issues: Optional[Iterable[negmas.outcomes.Issue]] = None, n_discretization: Optional[int] = 10, sort_by_welfare=False)Tuple[List[Tuple[float]], List[int]][source]

Finds all pareto-optimal outcomes in the list

  • 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 resutls are sorted descendingly by total welfare


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