kalai_points

negmas.preferences.kalai_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) tuple[tuple[tuple[float, ...], int], ...][source]

Calculates the all Kalai bargaining solutions on the Pareto frontier of a negotiation which is the most Egaliterian solution ref: Kalai, Ehud (1977). “Proportional solutions to bargaining situations: Intertemporal utility comparisons” (PDF). Econometrica. 45 (7): 1623–1630. doi:10.2307/1913954. JSTOR 1913954.

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)

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.