Pular para conteúdo

tucoopy.solutions.gately

Gately point.

The Gately point is an imputation based on a proportionality condition involving individual rationality and utopia payoffs.

GatelyResult dataclass

Result of the Gately point computation.

Attributes:

Name Type Description
x list[float]

Allocation vector (length n_players).

d float

Common propensity-to-disrupt value.

gately_point

gately_point(game, *, tol=1e-12)

Compute the Gately point for an essential TU cooperative game.

The Gately point is a single-valued imputation obtained by equalizing the propensity to disrupt across players. For an imputation \(x\), the propensity to disrupt of player \(i\) is defined as:

\[ d_i(x) = \frac{v(N) - x_i}{x_i - v(\{i\})}. \]

The Gately point is the imputation \(x\) for which all players have the same propensity:

\[ d_1(x) = d_2(x) = \cdots = d_n(x). \]

For essential games (where \(v(N) > \sum_i v(\{i\})\)), this condition yields a closed-form solution.

Parameters:

Name Type Description Default
game GameProtocol

TU cooperative game.

required
tol float

Numerical tolerance for detecting non-essential games.

1e-12

Returns:

Type Description
GatelyResult

Allocation and common propensity-to-disrupt value.

Raises:

Type Description
InvalidParameterError

If: - n_players < 2, or

InvalidGameError

If: - the game is non-essential, i.e. \(v(N) \le \sum_i v(\{i\})\).

Notes
  • The Gately point lies in the imputation set.
  • It balances the incentives of players to leave the grand coalition.
  • The formula used here is valid precisely when the game is essential.
  • The result is numerically adjusted to ensure efficiency (sum of allocations equals \(v(N)\)).

Examples:

>>> x = gately_point(g)
>>> sum(x) == g.value(g.grand_coalition)
True