Pular para conteúdo

tucoopy.solutions.tau

Tau value helpers.

This module provides the utopia payoff and minimal rights vectors, and a tau value implementation.

minimal_rights

minimal_rights(game, M=None)

Compute the minimal rights vector \(m\) of a TU game.

Given the utopia payoff vector \(M\), the minimal right of player \(i\) is:

\[ m_i = \max_{S \ni i} \left[ v(S) - \sum_{j \in S \setminus \{i\}} M_j \right]. \]

Intuitively, this represents the minimum payoff player \(i\) can claim without being blocked by any coalition.

Parameters:

Name Type Description Default
game GameProtocol

TU game.

required
M list[float] | None

Precomputed utopia payoff vector. If None, it is computed internally.

None

Returns:

Type Description
list[float]

Minimal rights vector of length n_players.

Notes
  • The minimal rights vector depends on the utopia payoff.
  • Together, \((m, M)\) define a line segment used to construct the tau value.
  • This vector provides a lower bound for reasonable imputations.

Examples:

>>> m = minimal_rights(g)
>>> len(m) == g.n_players
True

tau_value

tau_value(game, *, tol=1e-09)

Compute the tau value of a TU game.

The tau value is defined (when applicable) as the intersection of the imputation hyperplane with the line segment connecting the minimal rights vector \(m\) and the utopia payoff vector \(M\):

\[ \tau = m + \alpha (M - m), \]

where the scalar \(\alpha\) is chosen such that:

\[ \sum_i \tau_i = v(N). \]

Parameters:

Name Type Description Default
game GameProtocol

TU game.

required
tol float

Numerical tolerance for detecting degeneracy.

1e-9

Returns:

Type Description
list[float]

Tau value allocation.

Raises:

Type Description
InvalidGameError

If the interpolation between \(m\) and \(M\) is ill-defined (degenerate case where the line cannot intersect the imputation plane).

Notes
  • The tau value is particularly well-behaved for quasi-balanced games.
  • It lies on the line segment between minimal rights and utopia payoff, balancing lower and upper bounds on player claims.
  • If \(\sum M_i = \sum m_i = v(N)\), the tau value coincides with \(m\).

Examples:

>>> tau = tau_value(g)
>>> len(tau) == g.n_players
True

utopia_payoff

utopia_payoff(game)

Compute the utopia payoff vector \(M\) of a TU game.

The utopia payoff of player \(i\) is defined as:

\[ M_i = v(N) - v(N \setminus \{i\}), \]

i.e. the maximum amount player \(i\) could hope to obtain if the rest of the players formed the grand coalition without them.

Parameters:

Name Type Description Default
game GameProtocol

TU game.

required

Returns:

Type Description
list[float]

Utopia payoff vector of length n_players.

Notes
  • \(M\) is sometimes called the marginal vector at the grand coalition.
  • It provides an upper bound for reasonable imputations.
  • The utopia payoff plays a central role in the definition of the minimal rights and the tau value.

Examples:

>>> M = utopia_payoff(g)
>>> len(M) == g.n_players
True