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:
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 |
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\):
where the scalar \(\alpha\) is chosen such that:
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:
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 |
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