Skip to content

tucoopy.power.coleman

Coleman indices for complete simple games.

This module implements Coleman's system-level and player-level measures:

  • collectivity power to act (fraction of winning coalitions),
  • power to prevent action (criticality among winning coalitions),
  • power to initiate action (pivotality among losing coalitions).

coleman_collectivity_power_to_act

coleman_collectivity_power_to_act(game)

Compute Coleman's collectivity power to act for a complete simple game.

This quantity measures how often the group, as a whole, is able to take collective action. It is defined as the fraction of coalitions that are winning:

\[ C = \frac{\#\{ S \subseteq N \mid v(S) = 1 \}}{2^n}. \]

Parameters:

Name Type Description Default
game Game

A complete simple game.

required

Returns:

Type Description
float

The collectivity power to act.

Notes
  • This is not a player-level index, but a system-level measure of how permissive the decision rule is.
  • A high value means many coalitions can produce action; a low value means the decision rule is restrictive.

Examples:

>>> coleman_collectivity_power_to_act(g)
0.5

coleman_initiate_index

coleman_initiate_index(game)

Compute Coleman's power to initiate action for each player.

For a losing coalition \(S\), a player \(i \notin S\) is said to have initiating power if adding \(i\) makes the coalition winning:

\[ v(S) = 0 \quad \text{and} \quad v(S \cup \{i\}) = 1. \]

The index of player \(i\) is the fraction of losing coalitions in which \(i\) can turn the outcome into a winning one:

\[ C_i^{\text{initiate}} = \frac{\#\{ S \mid v(S)=0,\ i \text{ pivotal for } S \}} {\#\{ S \mid v(S)=0 \}}. \]

Parameters:

Name Type Description Default
game Game

A complete simple game.

required

Returns:

Type Description
list[float]

Coleman initiating index for each player.

Notes
  • This measures how often a player can create collective action.
  • Dual to the preventive index: one measures blocking power, the other initiating power.

Examples:

>>> coleman_initiate_index(g)
[0.6, 0.2, 0.2]

coleman_prevent_index

coleman_prevent_index(game)

Compute Coleman's power to prevent action for each player.

For a winning coalition \(S\), a player \(i \in S\) is said to have preventive power if removing \(i\) makes the coalition losing:

\[ v(S) = 1 \quad \text{and} \quad v(S \setminus \{i\}) = 0. \]

The index of player \(i\) is the fraction of winning coalitions in which \(i\) is critical:

\[ C_i^{\text{prevent}} = \frac{\#\{ S \mid v(S)=1,\ i \text{ critical in } S \}} {\#\{ S \mid v(S)=1 \}}. \]

Parameters:

Name Type Description Default
game Game

A complete simple game.

required

Returns:

Type Description
list[float]

Coleman preventive index for each player.

Notes
  • This measures how often a player can block collective action.
  • Closely related to the Banzhaf index, but normalized by the number of winning coalitions instead of the number of all coalitions.

Examples:

>>> coleman_prevent_index(g)
[0.4, 0.3, 0.3]