AnalyzedStrategies

class poisson_approval.AnalyzedStrategies(equilibria: list, utility_dependent: list, inconclusive: list, non_equilibria: list)[source]

A container with all the strategies analyzed for a given profile.

Parameters
  • equilibria (list of Strategy) – List of the strategies where equilibrium is sure.

  • utility_dependent (list of Strategy) – List of the strategies where the equilibrium depends on the exact utilities.

  • inconclusive (list of Strategy) – List of the strategies where we are not able to decide whether it is an equilibrium or not. In the current version of the package, this argument is not used anymore, because we are always able to decide whether a strategy is an equilibrium or not.

  • non_equilibria (list of Strategy) – List of the strategies where the program certifies there is no equilibrium.

Examples

>>> from poisson_approval import StrategyOrdinal, ProfileOrdinal
>>> profile = ProfileOrdinal({'abc': 0.2, 'acb': 0.3, 'bac': 0.5})
>>> analyzed_strategies = AnalyzedStrategies(
...     equilibria=[StrategyOrdinal({'abc': 'a', 'acb': 'a', 'bac': 'b'}, profile=profile)],
...     utility_dependent=[StrategyOrdinal({'abc': 'a', 'acb': 'ac', 'bac': 'b'}, profile=profile)],
...     non_equilibria=[StrategyOrdinal({'abc': 'ab', 'acb': 'a', 'bac': 'b'}, profile=profile)],
...     inconclusive=[StrategyOrdinal({'abc': 'ab', 'acb': 'ac', 'bac': 'b'}, profile=profile)]
... )
>>> print(analyzed_strategies.winners_at_equilibrium)
a, b
property winners_at_equilibrium

The possible winners at equilibrium.

This gives the winners in all equilibria, without the winners in utility_dependent.

Type

Winners