ks_points

negmas.preferences.ks_points(ufuns: Sequence[UtilityFunction], frontier: Sequence[tuple[float, ...]], ranges: Sequence[tuple[float, ...]] | None = None, outcome_space: OutcomeSpace | None = None, issues: Sequence[Issue] | None = None, outcomes: Sequence[Outcome] | None = None, eps: float = 1e-12, subtract_reserved_value: bool = True, exponent: float = inf) tuple[tuple[tuple[float, ...], int], ...][source]

Calculates the all Kalai-Somordinsky bargaining solutions on the Pareto frontier of a negotiation which is the bargaining solution that maximizes minimum advantage ratio ref: Kalai, Ehud, and Meir Smorodinsky. “Other solutions to Nash’s bargaining problem.” Econometrica: Journal of the Econometric Society (1975): 513-518.

Parameters:
  • ufuns – A list of ufuns to use

  • frontier – a list of tuples each giving the utility values at some outcome on the frontier (usually found by pareto_frontier) to search within

  • outcome_space – The outcome-space to consider

  • issues – The issues on which the ufun is defined (outcomes may be passed instead)

  • outcomes – The outcomes on which the ufun is defined (outcomes may be passed instead)

  • exponent – The exponent used for evaluating distance to the optimal KS solution as the degree of the L-norm used. The default is infinity which indicates the maximum difference. Currently not used

Returns:

A tuple of three values (all will be None if reserved values are unknown)

  • A tuple of utility values at the nash point

  • The index of the given frontier corresponding to the nash point

Remarks:

  • The function searches within the given frontier only.