Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 66 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,69 @@
# Paper revisiting Axelrod's second tournament
# Reviving, Reproducing, and Revisiting Axelrod's Second Tournament

## Setting up the environment
This repository contains the code and manuscript source files for the project
***Reviving, Reproducing, and Revisiting Axelrod's Second Tournament***.

- Install https://github.com/Axelrod-Python/TourExec (see instructions there).
- Create the conda environment:
The project reproduces Robert Axelrod’s second Iterated Prisoner’s Dilemma
tournament, originally run in the early 1980s, using the original Fortran
implementations of the submitted strategies. It uses
[**Axelrod-Python**](https://github.com/Axelrod-Python/Axelrod) and
[**TourExec**](https://github.com/Axelrod-Python/TourExec) to run the computer
tournament simulations.

conda env create -f environment.yml
A preprint of this work is available at: https://arxiv.org/abs/2510.15438.


## Requirements

* Install [TourExec](https://github.com/Axelrod-Python/TourExec) (see
installation instructions in that repository).
* You will also need Python.


## Setting up the Environment

To install all necessary Python dependencies, we recommend creating a **conda
environment** using the provided configuration file `src/environment.yml`. From
the root of this repository run:

```bash
conda env create -f src/environment.yml
conda activate axelrod_tournament
```


## Source Code

* The code for generating and reproducing the original tournaments is located in
the `src/` directory.
* It includes:

* **Tournament execution scripts** to reproduce Axelrod’s results.
* **Analysis scripts and Jupyter notebooks** for generating all figures used
in the manuscript.

To rerun the original tournaments, refer to the
[documentation](https://github.com/Axelrod-Python/revisiting-axelrod-second/tree/main/src)
in `src/`.


## Data

Running the simulations will generate the tournament data.

If you prefer **not to rerun** the entire simulation, you can download the
archived data from Zenodo:

1. Download the dataset archive from https://doi.org/10.5281/zenodo.17250038.
2. Unzip it into the `data/` folder.

This will allow you to reproduce the analysis and figures directly.


## Analysis and Figures

All data analysis and manuscript figures were generated using **Python** and
**Jupyter notebooks**, available under `src/`.

If you have downloaded the archived data, you can simply open and run the
notebooks to reproduce all figures without rerunning the full simulations.
Binary file modified assets/Figure1.key
Binary file not shown.
Binary file modified assets/Figure1.pdf
Binary file not shown.
Binary file added assets/Figure_linear_regression_results.key
Binary file not shown.
Binary file added assets/Figure_linear_regression_results.pdf
Binary file not shown.
Binary file modified assets/original_ranks_boxplots.pdf
Binary file not shown.
Binary file modified assets/original_scores_boxplots.pdf
Binary file not shown.
Binary file modified assets/original_tournament_r_squared_versus_number_of_features.pdf
Binary file not shown.
34 changes: 17 additions & 17 deletions assets/original_tournament_rankings.tex
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
\begin{tabular}{llcccc}
\begin{tabular}{llccccr}
\toprule
& \makecell[c]{Author} & \makecell[c]{Average Score} & \makecell[c]{Reproduced Rank} & \makecell[c]{Original Rank} & \makecell[c]{Average\\Cooperation Rate} \\
& \makecell[c]{Author} & \makecell[c]{Average Score} & \makecell[c]{Reproduced Rank} & \makecell[c]{Original Rank} & \makecell[c]{Average\\Cooperation Rate} & \makecell[c]{Win\\proportion} \\
\midrule
k92r & Anatol Rapoport & 2.878 & 1 & 1 & 0.922 \\
k61r & Danny C Champion & 2.791 & 12 & 2 & 0.954 \\
k42r & Otto Borufsen & 2.861 & 2 & 3 & 0.916 \\
k49r & Rob Cave & 2.826 & 4 & 4 & 0.892 \\
k44r & William Adams & 2.826 & 3 & 5 & 0.882 \\
k60r & Jim Graaskamp and Ken Katzen & 2.810 & 9 & 6 & 0.844 \\
k41r & Herb Weiner & 2.811 & 8 & 7 & 0.865 \\
k75r & Paul D Harrington & 2.826 & 5 & 8 & 0.802 \\
k84r & T Nicolaus Tideman and Paula Chieruzz & 2.812 & 7 & 9 & 0.882 \\
k32r & Charles Kluepfel & 2.817 & 6 & 10 & 0.873 \\
k35r & Abraham Getzler & 2.801 & 11 & 11 & 0.888 \\
k68r & Fransois Leyvraz & 2.808 & 10 & 12 & 0.917 \\
k72r & Edward C White Jr & 2.776 & 13 & 13 & 0.924 \\
k46r & Graham J Eatherley & 2.772 & 14 & 14 & 0.948 \\
k83r & Paul E Black & 2.743 & 15 & 15 & 0.935 \\
k92r & Anatol Rapoport & 2.8785 & 1 & 1 & 0.9218 & 0.6306 \\
k61r & Danny C Champion & 2.7907 & 12 & 2 & 0.9542 & 0.0000 \\
k42r & Otto Borufsen & 2.8607 & 2 & 3 & 0.9161 & 0.3149 \\
k49r & Rob Cave & 2.8260 & 4 & 4 & 0.8922 & 0.0000 \\
k44r & William Adams & 2.8260 & 3 & 5 & 0.8819 & 0.0038 \\
k60r & Jim Graaskamp and Ken Katzen & 2.8102 & 9 & 6 & 0.8440 & 0.0102 \\
k41r & Herb Weiner & 2.8107 & 8 & 7 & 0.8650 & 0.0000 \\
k75r & Paul D Harrington & 2.8258 & 5 & 8 & 0.8019 & 0.0224 \\
k84r & T Nicolaus Tideman and Paula Chieruzz & 2.8124 & 7 & 9 & 0.8818 & 0.0000 \\
k32r & Charles Kluepfel & 2.8170 & 6 & 10 & 0.8726 & 0.0080 \\
k35r & Abraham Getzler & 2.8010 & 11 & 11 & 0.8878 & 0.0002 \\
k68r & Fransois Leyvraz & 2.8085 & 10 & 12 & 0.9169 & 0.0000 \\
k72r & Edward C White Jr & 2.7762 & 13 & 13 & 0.9242 & 0.0000 \\
k46r & Graham J Eatherley & 2.7722 & 14 & 14 & 0.9483 & 0.0000 \\
k83r & Paul E Black & 2.7425 & 15 & 15 & 0.9347 & 0.0000 \\
\bottomrule
\end{tabular}
Binary file modified assets/original_tournament_reproducing.pdf
Binary file not shown.
87 changes: 87 additions & 0 deletions bibliography.bib
Original file line number Diff line number Diff line change
Expand Up @@ -489,3 +489,90 @@ @dataset{knight_2025_17250038
doi = {10.5281/zenodo.17250038},
url = {https://doi.org/10.5281/zenodo.17250038},
}

@article{open_science_collaboration2015,
title={Estimating the reproducibility of psychological science},
author={{Open Science Collaboration}},
journal={Science},
year={2015},
volume={349},
number={6251},
pages={aac4716},
}

@article{camerer2016,
title={Evaluating replicability of laboratory experiments in economics},
author={Camerer, Colin F. and others},
journal={Science},
year={2016},
volume={351},
number={6280},
pages={1433--1436},
}

@article{camerer2018,
title={Evaluating the replicability of social science experiments in Nature and Science between 2010 and 2015},
author={Camerer, Colin F. and others},
journal={Nature Human Behaviour},
year={2018},
volume={2},
pages={637--644},
}


@article{silberzahn2018,
title={Many analysts, one dataset: Making transparent how variations in analytical choices affect results},
author={Silberzahn, Raphael and others},
journal={Advances in Methods and Practices in Psychological Science},
year={2018},
volume={1},
number={3},
pages={337--356},
}

@article{breznau2022,
title={Observing many researchers using the same data and hypothesis reveals a hidden universe of uncertainty},
author={Breznau, Nate and others},
journal={PNAS},
year={2022},
volume={119},
number={44},
pages={e2203150119},
}

@article{sandve2013,
title={Ten simple rules for reproducible computational research},
author={Sandve, Geir Kjetil and others},
journal={PLoS Computational Biology},
year={2013},
volume={9},
number={10},
pages={e1003285},
}

@article{wilson2017,
title={Good enough practices in scientific computing},
author={Wilson, Greg and others},
journal={PLoS Computational Biology},
year={2017},
volume={13},
number={6},
pages={e1005510},
}

@article{stodden2018,
title={Enhancing reproducibility for computational methods},
author={Stodden, Victoria and Seiler, Jennifer and Ma, Zhaokun},
journal={PNAS},
year={2018},
volume={115},
number={11},
pages={2561--2570},
}

@book{turingway2022,
title={The Turing Way: A Handbook for Reproducible, Ethical and Collaborative Data Science},
author={{The Turing Way Community}},
year={2022},
note={Zenodo. DOI: 10.5281/zenodo.3233853}
}
Binary file modified paper/main.pdf
Binary file not shown.
Loading