Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Axelrod-Python/Axelrod
A research tool for the Iterated Prisoner's Dilemma
https://github.com/Axelrod-Python/Axelrod
computer-science evolutionary-game-theory game-theory mathematics prisoners-dilemma python reproducible-research
Last synced: 3 months ago
JSON representation
A research tool for the Iterated Prisoner's Dilemma
- Host: GitHub
- URL: https://github.com/Axelrod-Python/Axelrod
- Owner: Axelrod-Python
- License: other
- Created: 2015-02-18T09:37:17.000Z (over 9 years ago)
- Default Branch: dev
- Last Pushed: 2024-07-12T22:06:22.000Z (4 months ago)
- Last Synced: 2024-07-29T07:31:48.242Z (4 months ago)
- Topics: computer-science, evolutionary-game-theory, game-theory, mathematics, prisoners-dilemma, python, reproducible-research
- Language: Python
- Homepage: http://axelrod.readthedocs.org/
- Size: 8.45 MB
- Stars: 716
- Watchers: 29
- Forks: 263
- Open Issues: 59
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.md
- Contributing: CONTRIBUTING.rst
- License: LICENSE.txt
- Citation: CITATION.cff
Awesome Lists containing this project
README
.. image:: https://img.shields.io/pypi/v/Axelrod.svg
:target: https://pypi.python.org/pypi/Axelrod.. image:: https://zenodo.org/badge/19509/Axelrod-Python/Axelrod.svg
:target: https://zenodo.org/badge/latestdoi/19509/Axelrod-Python/Axelrod.. image:: https://github.com/Axelrod-Python/Axelrod/workflows/CI/badge.svg
:target: https://github.com/Axelrod-Python/Axelrod/actions|Join the chat at https://gitter.im/Axelrod-Python/Axelrod|
Axelrod
=======Goals
-----A Python library with the following principles and goals:
1. Enabling the reproduction of previous Iterated Prisoner's Dilemma research
as easily as possible.
2. Creating the de-facto tool for future Iterated Prisoner's Dilemma
research.
3. Providing as simple a means as possible for anyone to define and contribute
new and original Iterated Prisoner's Dilemma strategies.
4. Emphasizing readability along with an open and welcoming community that
is accommodating for developers and researchers of a variety of skill levels.Features
--------With Axelrod you:
- have access `to over 200 strategies
`_, including original and classics like Tit
For Tat and Win Stay Lose Shift. These are extendable through parametrization
and a collection of strategy transformers.
- can create `head to head matches
`_ between pairs of strategies.
- can create `tournaments
`_ over a number of strategies.
- can study population dynamics through `Moran processes
`_ and an `infinite
population model
`_.
- can analyse detailed `results of tournaments
`_ and matches.
- can `visualise results
`_ of tournaments... image:: http://axelrod.readthedocs.io/en/stable/_images/demo_strategies_boxplot.svg
:height: 300 px
:align: center- can reproduce a number of contemporary research topics such as `fingerprinting `_ of
strategies and `morality metrics
`_... image:: https://github.com/Axelrod-Python/Axelrod-fingerprint/raw/master/assets/Tricky_Defector.png
:height: 300 px
:align: centerThe library has 100% test coverage and is extensively documented. See the
documentation for details and examples of all the features:
http://axelrod.readthedocs.org/`An open reproducible framework for the study of the iterated prisoner's
dilemma `_:
a peer reviewed paper introducing the library (22 authors).Installation
------------The library is tested on Python versions 3.8, 3.9, and 3.10.
The simplest way to install is::
$ pip install axelrod
To install from source::
$ git clone https://github.com/Axelrod-Python/Axelrod.git
$ cd Axelrod
$ python setup.py installQuick Start
-----------The following runs a basic tournament::
>>> import axelrod as axl
>>> players = [s() for s in axl.demo_strategies] # Create players
>>> tournament = axl.Tournament(players, seed=1) # Create a tournament
>>> results = tournament.play() # Play the tournament
>>> results.ranked_names
['Defector', 'Grudger', 'Tit For Tat', 'Cooperator', 'Random: 0.5']Examples
--------- https://github.com/Axelrod-Python/tournament is a tournament pitting all the
strategies in the repository against each other. These results can be easily
viewed at http://axelrod-tournament.readthedocs.org.
- https://github.com/Axelrod-Python/Axelrod-notebooks contains a set of example
Jupyter notebooks.
- https://github.com/Axelrod-Python/Axelrod-fingerprint contains fingerprints
(data and plots) of all strategies in the library.Contributing
------------All contributions are welcome!
You can find helpful instructions about contributing in the
documentation:
https://axelrod.readthedocs.io/en/latest/how-to/contributing/index.htmlPublications
------------You can find a list of publications that make use of or cite the library
on the `citations `_ page.Contributors
------------The library has had many awesome contributions from many `great
contributors `_.
The Core developers of the project are:- `drvinceknight `_
- `gaffney2010 `_
- `marcharper `_
- `meatballs `_
- `nikoleta-v3 `_.. |Join the chat at https://gitter.im/Axelrod-Python/Axelrod| image:: https://badges.gitter.im/Join%20Chat.svg
:target: https://gitter.im/Axelrod-Python/Axelrod?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge