axelrod
A research tool for the Iterated Prisoner's Dilemma
Science Score: 59.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
✓Committers with academic emails
8 of 90 committers (8.9%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.8%) to scientific vocabulary
Keywords
computer-science
evolutionary-game-theory
game-theory
mathematics
prisoners-dilemma
python
reproducible-research
Keywords from Contributors
fuzzing
property-based-testing
gtk
qt
tk
wx
Last synced: 6 months ago
·
JSON representation
Repository
A research tool for the Iterated Prisoner's Dilemma
Basic Info
- Host: GitHub
- Owner: Axelrod-Python
- License: other
- Language: Python
- Default Branch: dev
- Homepage: http://axelrod.readthedocs.org/
- Size: 52.4 MB
Statistics
- Stars: 762
- Watchers: 28
- Forks: 273
- Open Issues: 61
- Releases: 95
Topics
computer-science
evolutionary-game-theory
game-theory
mathematics
prisoners-dilemma
python
reproducible-research
Created about 11 years ago
· Last pushed 9 months ago
Metadata Files
Readme
Changelog
Contributing
License
Citation
README.rst
.. 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 Game Theory Discord `_
server to chat -- `direct invite link `_.
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: center
The 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 install
Quick 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.
- 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/stable/how-to/contributing/index.html
Publications
------------
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
Owner
- Name: Axelrod-Python
- Login: Axelrod-Python
- Kind: organization
- Website: http://axelrod.readthedocs.org/en/latest/
- Repositories: 5
- Profile: https://github.com/Axelrod-Python
GitHub Events
Total
- Issues event: 10
- Watch event: 48
- Issue comment event: 88
- Push event: 12
- Pull request review comment event: 23
- Pull request review event: 31
- Pull request event: 46
- Fork event: 20
- Create event: 4
Last Year
- Issues event: 10
- Watch event: 48
- Issue comment event: 88
- Push event: 12
- Pull request review comment event: 23
- Pull request review event: 31
- Pull request event: 46
- Fork event: 20
- Create event: 4
Committers
Last synced: almost 3 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| Vincent Knight | v****t@g****m | 1,531 |
| Owen Campbell | o****l@t****k | 1,044 |
| Marc Harper | m****r@g****m | 796 |
| T.J. Gaffney | g****j@g****m | 134 |
| E Shaw | s****1@g****m | 119 |
| janga | j****7@g****m | 93 |
| James Campbell | j****l@t****k | 89 |
| Nikoleta Glynatsi | G****E@c****k | 79 |
| Sourav Singh | s****h@u****m | 74 |
| Karol M. Langner | k****r@g****m | 73 |
| Chadys | c****s@h****r | 48 |
| Thomas Campbell | t****l@t****k | 45 |
| Marc | m****r@u****m | 44 |
| Jason Young | J****4@g****m | 38 |
| Mansour Hakem | m****m@g****m | 28 |
| Kristian Glass | g****t@d****k | 24 |
| margaret | m****a@d****m | 24 |
| Geraint Palmer | p****t@g****m | 23 |
| Denis | d****s@b****n | 22 |
| edouard_argenson | e****n@g****m | 22 |
| kjurgielajtis | j****f@g****m | 20 |
| Martin | m****n@p****m | 20 |
| Daniel Mancia | d****a@u****u | 20 |
| Sudarshan Parvatikar | s****r@g****m | 16 |
| Cameron Davidson-Pilon | c****n@g****m | 14 |
| Melanie Beck | m****9@y****m | 13 |
| Ranjini Das | d****r@m****u | 11 |
| Yohsuke Murase | y****e@g****m | 11 |
| gaffney2010 | g****j@g****m | 11 |
| Marios Zoulias | t****9@d****r | 10 |
| and 60 more... | ||
Committer Domains (Top 20 + Academic)
tanti.org.uk: 3
cardiff.ac.uk: 2
doismellburning.co.uk: 2
google.com: 2
hotmail.co.uk: 2
deliveryhero.com: 1
bilogora.lan: 1
pythonforbiologists.com: 1
utexas.edu: 1
yum.com: 1
mtholyoke.edu: 1
dias.aueb.gr: 1
mail.citytech.cuny.edu: 1
ed.ac.uk: 1
live.co.uk: 1
jnmr.de: 1
yahoo.co.in: 1
sigmaforge.com: 1
york.ac.uk: 1
claralabs.com: 1
zagmail.gonzaga.edu: 1
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 56
- Total pull requests: 116
- Average time to close issues: 10 months
- Average time to close pull requests: about 1 month
- Total issue authors: 17
- Total pull request authors: 24
- Average comments per issue: 3.73
- Average comments per pull request: 3.16
- Merged pull requests: 74
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 6
- Pull requests: 30
- Average time to close issues: 25 days
- Average time to close pull requests: 8 days
- Issue authors: 5
- Pull request authors: 8
- Average comments per issue: 0.67
- Average comments per pull request: 3.63
- Merged pull requests: 13
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- marcharper (15)
- drvinceknight (13)
- 623637719 (5)
- gaffney2010 (4)
- alexhroom (4)
- erenarkangil (3)
- langner (1)
- blokhin (1)
- jamesking (1)
- jsafyan (1)
- BradKML (1)
- miller-ian (1)
- caddycarine (1)
- Nikoleta-v3 (1)
- xjcl (1)
Pull Request Authors
- gaffney2010 (29)
- marcharper (28)
- drvinceknight (22)
- miller-ian (12)
- Mike014 (6)
- alexhroom (4)
- caddycarine (4)
- moderouin (3)
- dashiellfryer (2)
- dongwonmoon (2)
- LindyZh (2)
- jodoyle29 (2)
- benjjo (2)
- bing-j (2)
- Himnish1 (1)
Top Labels
Issue Labels
5.0.0 (4)
discussion (2)
up-for-grabs (2)
enhancement (1)
Pull Request Labels
ready-to-merge (29)
ready-for-review (10)
5.0.0 (9)
Packages
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 8
conda-forge.org: axelrod
Axelrod is a library for conducting research in Iterated Prisoner's Dilemma and enable reproducibilty of research on Iterated Prisoner's Dilemma. The library contains over 150 strategies for IPD and supports Python 3.5 and 3.6
- Homepage: http://github.com/Axelrod-Python/Axelrod
- License: MIT
-
Latest release: 4.5.0
published about 7 years ago
Rankings
Forks count: 10.5%
Stargazers count: 14.7%
Average: 27.6%
Dependent repos count: 34.0%
Dependent packages count: 51.2%
Last synced:
6 months ago
Dependencies
.github/workflows/config.yml
actions
- actions/checkout v1 composite
- actions/setup-python v1 composite
requirements/development.txt
pypi
- hypothesis ==5.19.3 development
requirements/human.txt
pypi
- prompt-toolkit >=3.0
requirements/requirements.txt
pypi
- cloudpickle >=0.2.2
- dask >=2.9.2
- fsspec >=0.6.0
- matplotlib >=3.0.3
- numpy >=1.17.4
- pandas >=1.0.0
- pyyaml >=5.1
- scipy >=1.3.3
- toolz >=0.8.2
- tqdm >=4.39.0