Nashpy: a python library for the computation of equilibria of 2 player strategic games.
This library implements the following algorithms for Nash equilibria on 2 player games:
- Support enumeration
- Best response polytope vertex enumeration
- Lemke Howson algorithm
Nashpy has a simple set of Python dependencies: it only requires numpy
and scipy
so is straightforward to install on all operating systems.
Installation
By design Nashpy is easy to install: the easiest way to install is from pypi:
$ python -m pip install nashpy
Usage
Create bi matrix games by passing two 2 dimensional arrays/lists:
>>> import nashpy as nash
>>> A = [[1, 2], [3, 0]]
>>> B = [[0, 2], [3, 1]]
>>> game = nash.Game(A, B)
>>> for eq in game.support_enumeration():
... print(eq)
(array([1., 0.]), array([0., 1.]))
(array([0., 1.]), array([1., 0.]))
(array([0.5, 0.5]), array([0.5, 0.5]))
>>> game[[0, 1], [1, 0]]
array([3, 3])
Documentation
Full documentation is available here: http://nashpy.readthedocs.io/
Other game theoretic software
- Gambit is a library with a python api and support for more algorithms and more than 2 player games.
- Game theory explorer a web interface to gambit useful for teaching.
- Axelrod a research library aimed at the study of the Iterated Prisoners dilemma
Development
To install a development version of this library:
$ python setup.py develop
To run the full test suite (install pytest
: pip install pytest
) and run:
$ pytest .
All contributions are welcome, although this is meant to be a simple library, for more detailed game theoretic contribution please see gambit.
Code of conduct
In the interest of fostering an open and welcoming environment, all contributors, maintainers and users are expected to abide by the Python code of conduct: https://www.python.org/psf/codeofconduct/