Axelrod icon indicating copy to clipboard operation
Axelrod copied to clipboard

Problems reproducing Axelrod, 1980

Open jamesking opened this issue 5 months ago • 9 comments

I am new to this library, and as a Hello World-style exercise, I am trying to reproduce the results in Axelrod, 1980 where Tit-For-Tat famously wins Axelrod's first IPD tournament.

>>> import axelrod as axl
>>> players = [s() for s in axl.axelrod_first_strategies]
>>> tournament = axl.Tournament(players, turns=200, repetitions=5)
>>> results = tournament.play()

This I hope matches the tournament setup in the original paper. (200 steps and 5 repetitions).

The problem I have is that Tit-For-Tat doesn't win as expected. Instead it ranks 3rd or 4th on successive tournaments. In each tournament First by Stein and Rapoport ranks first. Here's a sample output.

>>> results.ranked_names
['First by Stein and Rapoport: 0.05: (D, D)', 'First by Grofman', 'First by Shubik', 'Tit For Tat', 'First by Nydegger', 'First by Tideman and Chieruzzi: (D, D)', 'First by Davis: 10', 'Grudger', 'First by Graaskamp: 0.05', 'First by Downing', 'First by Feld: 1.0, 0.5, 200', 'First by Joss: 0.9', 'First by Tullock', 'First by Anonymous', 'Random: 0.5']

So… what am I doing wrong?

jamesking avatar Sep 01 '25 10:09 jamesking