tucoopy.power.johnston¶
Johnston power index.¶
The Johnston index refines Banzhaf criticality by splitting each winning coalition's contribution equally among its critical players.
johnston_index ¶
johnston_index(game)
Compute the Johnston power index for a complete simple game.
In a simple game (\(v(S) \in \{0,1\}\)), a player \(i\) is critical in a winning coalition \(S\) if removing \(i\) makes the coalition losing:
The Johnston index assigns to each critical player an equal share of the coalition's criticality. That is, each winning coalition \(S\) contributes:
to each \(i \in C(S)\).
The resulting vector is then normalized to sum to 1.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
game | Game | A complete simple game. | required |
Returns:
| Type | Description |
|---|---|
list[float] | Johnston index for each player (length |
Raises:
| Type | Description |
|---|---|
InvalidGameError | If the game is not a complete simple game (checked by :func: |
NotSupportedError | If |
Notes
- The Johnston index refines the idea of criticality used in the (unnormalized) Banzhaf index.
- In the Banzhaf index, each critical occurrence contributes equally (1). In the Johnston index, the contribution of a coalition is divided equally among its critical players.
- This index captures how often a player is decisive and how many other players share that decisiveness.
Examples:
>>> ji = johnston_index(g)
>>> sum(ji)
1.0