Table of Contents
Fetching ...

Reviving, reproducing, and revisiting Axelrod's second tournament

Vincent Knight, Owen Campbell, Marc Harper, T. J. Gaffney, Nikoleta E. Glynatsi

TL;DR

The paper tackles the reproducibility of Axelrod's influential second Iterated Prisoner's Dilemma tournament, where Tit for Tat (TFT) emerged as the winner. It achieves this by reviving surviving Fortran strategy implementations, interfacing them with the Axelrod-Python framework, and validating results through 25,000 replicated tournaments with fixed match lengths and payoff structure ($T=5$, $R=3$, $P=1$, $S=0$). The study confirms TFT's robustness but reveals context-dependent performance of other strategies, especially under noise or in larger, more diverse pools; it also identifies a bug in the Champion implementation that could affect historical rankings. By expanding the tournament to include additional strategies and integrating Stewart & Plotkin's work, the authors demonstrate how TFT's dominance can wane in heterogeneous or noisy environments, while strategies like k42r rise in prominence. Overall, the work provides a faithful, open-source preservation of historical code, advancing reproducible computational social science and offering new insights into reciprocity dynamics across varied settings.

Abstract

Direct reciprocity, typically studied using the Iterated Prisoner's Dilemma (IPD), is central to understanding how cooperation evolves. In the 1980s, Robert Axelrod organized two influential IPD computer tournaments, where Tit for Tat (TFT) emerged as the winner. Yet the archival record is incomplete: for the first tournament only a report survives, and for the second the submitted Fortran strategies remain but not the final tournament code. This gap raises questions about the reproducibility of these historically influential results. We recreate the second tournament by restoring the surviving Fortran implementations to compile with modern compilers and by building a Python interface that calls the original strategy functions without modification. Using the open-source Axelrod-Python library to run tournaments, we reproduce Axelrod's main findings: TFT prevails, and successful play tends to be cooperative, responsive to defection, and willing to forgive. Strategy rankings remain mostly unchanged. We then assess the robustness of the originally submitted strategies by incorporating additional strategies, and we run one of the largest IPD tournaments to date. We find that the original tournament was especially favorable to TFT and that it is difficult to dethrone TFT when the original submissions make up the majority of the field. We also observe that several lesser-known submissions perform strongly in more diverse settings and under noise. Our contributions are: (i) the first systematic reproduction of Axelrod's second tournament; (ii) a contemporary reassessment of the original results in light of new strategies and settings; and (iii) a preserved, easy-to-use implementation of the second-tournament strategies within Axelrod-Python to support future research.

Reviving, reproducing, and revisiting Axelrod's second tournament

TL;DR

The paper tackles the reproducibility of Axelrod's influential second Iterated Prisoner's Dilemma tournament, where Tit for Tat (TFT) emerged as the winner. It achieves this by reviving surviving Fortran strategy implementations, interfacing them with the Axelrod-Python framework, and validating results through 25,000 replicated tournaments with fixed match lengths and payoff structure (, , , ). The study confirms TFT's robustness but reveals context-dependent performance of other strategies, especially under noise or in larger, more diverse pools; it also identifies a bug in the Champion implementation that could affect historical rankings. By expanding the tournament to include additional strategies and integrating Stewart & Plotkin's work, the authors demonstrate how TFT's dominance can wane in heterogeneous or noisy environments, while strategies like k42r rise in prominence. Overall, the work provides a faithful, open-source preservation of historical code, advancing reproducible computational social science and offering new insights into reciprocity dynamics across varied settings.

Abstract

Direct reciprocity, typically studied using the Iterated Prisoner's Dilemma (IPD), is central to understanding how cooperation evolves. In the 1980s, Robert Axelrod organized two influential IPD computer tournaments, where Tit for Tat (TFT) emerged as the winner. Yet the archival record is incomplete: for the first tournament only a report survives, and for the second the submitted Fortran strategies remain but not the final tournament code. This gap raises questions about the reproducibility of these historically influential results. We recreate the second tournament by restoring the surviving Fortran implementations to compile with modern compilers and by building a Python interface that calls the original strategy functions without modification. Using the open-source Axelrod-Python library to run tournaments, we reproduce Axelrod's main findings: TFT prevails, and successful play tends to be cooperative, responsive to defection, and willing to forgive. Strategy rankings remain mostly unchanged. We then assess the robustness of the originally submitted strategies by incorporating additional strategies, and we run one of the largest IPD tournaments to date. We find that the original tournament was especially favorable to TFT and that it is difficult to dethrone TFT when the original submissions make up the majority of the field. We also observe that several lesser-known submissions perform strongly in more diverse settings and under noise. Our contributions are: (i) the first systematic reproduction of Axelrod's second tournament; (ii) a contemporary reassessment of the original results in light of new strategies and settings; and (iii) a preserved, easy-to-use implementation of the second-tournament strategies within Axelrod-Python to support future research.
Paper Structure (5 sections, 10 figures, 6 tables)

This paper contains 5 sections, 10 figures, 6 tables.

Figures (10)

  • Figure 1: Fortran source code for the Tit For Tat strategy (k92r.f). Each strategy takes as input the state of the match (J, M, K, L, R, JA) and outputs either 0 (cooperate) or 1 (defect). This code corresponds to the TFT strategy submitted to Axelrod's second tournament.
  • Figure 2: Diagrammatic representation of the interaction between Axelrod-Python, Axelrod_fortran, and the original Fortran code.a, Overview of how the three codebases interact. Axelrod_fortran creates strategy instances for each player. Tournaments and matches are managed by Axelrod-Python, which at each turn calls the corresponding Axelrod_fortran instance; this in turn invokes the original Fortran code to produce a decision from the match history. b, Turn-by-turn execution. On the first turn, Axelrod_fortran initialises the parameters required by the Fortran implementation, queries it for the first decision, and returns this to Axelrod-Python, which plays the move and updates the history. On each subsequent turn: (1) the previous turn is recorded and the history updated; (2) Axelrod_fortran access the updated history and (3) formats its into the inputs required by the Fortran code; (4) the Fortran code is called and returns a decision; (5) Axelrod-Python plays the decision. The process repeats until the match ends.
  • Figure 3: Fortran source code for k61r (Champion). The original implementation contained a bug: the variable ICOOP was not initialized within the function. In the first match it effectively started at 0, but in subsequent matches it could have kept its value from the previous match or be reset to 0, depending on the compiler and runtime environment. Line 5 shows the fix, which explicitly initializes ICOOP at the start of each match.
  • Figure 4: Reproducing Axelrod's second tournament.a, Comparison of the original rankings and the replicated rankings. Strategies are ordered by their original ranks; TFT again emerges as the overall winner, while k36r again ranks last. b, Differences in rank between the original and reproduced tournaments, ordered from most negative to most positive change. Most strategies shift by only 1-3 positions, though a few exhibit larger changes, including Champion (k61r). c, Mean scores of all strategies. Champion's average score drops relative to the other three strategies but remains close to the rest of the top ten. d, Violin plots showing the distribution of scores for the top 15 strategies across all repetitions. e, Results under alternative replication approaches, including with and without self-interactions and using a Python re-implementation of Champion. Across all settings, TFT remains the winner, while Champion exhibits the largest change in ranking.
  • Figure 5: Cooperation in Axelrod's second tournament.a, Mean cooperation rate by original ranking. Most strategies are highly cooperative, with the exception of those at the bottom of the ranking, which fall below 50%. b, Cooperation rates between each pair of players, players are ordered by their original ranking. c, Deviation from symmetry in pairwise cooperation rates, defined as the difference between cooperation matrices and their transposes. Values close to zero indicate that both strategies cooperate with one another at the same rate.
  • ...and 5 more figures