egttools.games.nonlinear_games.AbstractNPlayerGame¶
- class AbstractNPlayerGame(self: egttools.numerical.numerical_.games.AbstractNPlayerGame, nb_strategies: SupportsInt | SupportsIndex, group_size: SupportsInt | SupportsIndex)¶
Bases:
AbstractGameAbstract N-player game.
This abstract base class represents a symmetric N-player game in which each strategy’s fitness is computed as the expected payoff over all group compositions in a population.
- Parameters:
Methods
Computes the fitness of a given strategy in a population state.
Computes and returns the full payoff matrix.
Returns the payoff of a strategy in a given group context.
Returns the payoff matrix.
Executes the game for a given group composition and fills the payoff vector.
Saves the payoff matrix to a text file.
Updates an entry in the payoff matrix.
- __init__(self: egttools.numerical.numerical_.games.AbstractNPlayerGame, nb_strategies: SupportsInt | SupportsIndex, group_size: SupportsInt | SupportsIndex) None¶
Abstract N-player game.
This abstract base class represents a symmetric N-player game in which each strategy’s fitness is computed as the expected payoff over all group compositions in a population.
- __new__(**kwargs)¶
- __str__(self: egttools.numerical.numerical_.games.AbstractNPlayerGame) str¶
- calculate_fitness(self: egttools.numerical.numerical_.games.AbstractNPlayerGame, strategy_index: SupportsInt | SupportsIndex, pop_size: SupportsInt | SupportsIndex, strategies: Annotated[numpy.typing.NDArray[numpy.uint64], '[m, 1]']) float¶
Computes the fitness of a given strategy in a population state.
- Parameters:
strategy_index (int) – The strategy of the focal player.
pop_size (int) – Total population size.
strategies (numpy.ndarray) – Population state as a strategy count vector.
- Returns:
Fitness of the focal strategy in the given state.
- Return type:
- calculate_payoffs(self: egttools.numerical.numerical_.games.AbstractNPlayerGame) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']¶
Computes and returns the full payoff matrix.
- Returns:
A matrix with expected payoffs. Each row represents a strategy, and each column a group configuration.
- Return type:
- group_size(self: egttools.numerical.numerical_.games.AbstractNPlayerGame) int¶
- nb_group_configurations(self: egttools.numerical.numerical_.games.AbstractNPlayerGame) int¶
- nb_strategies(self: egttools.numerical.numerical_.games.AbstractNPlayerGame) int¶
- payoff(self: egttools.numerical.numerical_.games.AbstractNPlayerGame, strategy: SupportsInt | SupportsIndex, group_composition: collections.abc.Sequence[SupportsInt | SupportsIndex]) float¶
Returns the payoff of a strategy in a given group context.
- Parameters:
strategy (int) – The strategy index.
group_composition (numpy.ndarray) – The group configuration.
- Returns:
The corresponding payoff.
- Return type:
- payoffs(self: egttools.numerical.numerical_.games.AbstractNPlayerGame) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']¶
Returns the payoff matrix.
- Returns:
Matrix of shape (nb_strategies, nb_group_configurations).
- Return type:
- play(self: egttools.numerical.numerical_.games.AbstractNPlayerGame, group_composition: collections.abc.Sequence[SupportsInt | SupportsIndex], game_payoffs: collections.abc.Sequence[SupportsFloat | SupportsIndex]) None¶
Executes the game for a given group composition and fills the payoff vector.
- Parameters:
group_composition (numpy.ndarray) – One-dimensional array containing the number of players of each strategy in the group.
game_payoffs (numpy.ndarray) – Output container where the payoff of each strategy will be written.
- save_payoffs(self: egttools.numerical.numerical_.games.AbstractNPlayerGame, file_name: str) None¶
Saves the payoff matrix to a text file.
- Parameters:
file_name (str) – Destination file path.
- update_payoff(self: egttools.numerical.numerical_.games.AbstractNPlayerGame, strategy_index: SupportsInt | SupportsIndex, group_configuration_index: SupportsInt | SupportsIndex, value: SupportsFloat | SupportsIndex) None¶
Updates an entry in the payoff matrix.
- __annotations__ = {}¶