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 🐍
Full documentation is available here: http://nashpy.readthedocs.io/
$ python -m pip install nashpy
To install Nashpy on Fedora, use:
$ dnf install python3-nashpy
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])
- 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
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.
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/