Nashpy: a python library for 2 player games.
Nashpy is:
- An excellently documented library:
- The Nashpy game theory text book aims to be a course text on the background theory.
- The contributor documentation aims to be a text on research software development and help first time open source software contributions.
- A state of the art developed code base which aims to use the best of available tools to ensure the code is correct, readable and robust.
- Feature rich, the following are implemented:
- Support enumeration How to docs
🐍 - Theory docs📘 - Vertex enumeration How to docs
🐍 - Theory docs📘 - Lemke-Howson algorithm How to docs
🐍 - Theory docs📘 - Fictitious play How to docs
🐍 - Theory docs📘 - Stochastic fictitious play How to docs
🐍 - Theory docs📘 - Replicator dynamics How to docs
🐍 - Theory docs📘 - Replicator-mutation dynamics How to docs
🐍 - Theory docs📘 - Asymmetric replicator dynamics How to docs
🐍 - Theory docs📘 - Moran processes How to docs
🐍 - Generate games from repeated games How to docs
🐍 - Theory docs📘 - Moran processes on interaction graphs How to docs
🐍 - Moran processes on replication graphs How to docs
🐍
- Support enumeration How to docs
Documentation
Full documentation is available here: http://nashpy.readthedocs.io/
Installation
$ python -m pip install nashpy
To install Nashpy on Fedora, use:
$ dnf install python3-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])
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
Clone the repository and create a virtual environment:
$ git clone https://github.com/drvinceknight/nashpy.git
$ cd nashpy
$ python -m venv env
Activate the virtual environment and install tox
:
$ source env/bin/activate
$ python -m pip install tox
Make modifications.
To run the tests:
$ python -m tox
To build the documentation. First install the software which also installs the documentation build requirements.
$ python -m pip install flit
$ python -m flit install --symlink
Then:
$ cd docs
$ make html
Full contribution documentation is available at https://nashpy.readthedocs.io/en/latest/contributing/index.html
Pull requests are welcome.
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/