# Prisoner's Dilemma as a Game Theory Laboratory

Last year Yvain had [organised](/lw/32u/diplomacy_as_a_game_theory_laboratory/) a [Diplomacy game](http://en.wikipedia.org/wiki/Diplomacy_game) between LessWrong users to test how well we perform in practical application of game theory. At least [two](/lw/32z/spring_1912_a_new_heaven_and_a_new_earth/) [games](/lw/345/rationalist_diplomacy_game_2_game_over/) had been played, but as far as I know no analysis was made afterwards. One reason is probably that few games involving complex interactions between players constitute at most anecdotal evidence for whatever hypothesis one may test. The second one is lack of comparison to outside players. Although the games were fun, their value as a game theory experiment remains rather low. Could we test our game theoretic skills in a statistically more significant way?

Only recently I have learned about Robert Axelrod's [experiment](http://en.wikipedia.org/wiki/Prisoner%27s_dilemma#Strategy_for_the_classic_prisoner.27s_dilemma_2) in which he run a competition of different strategies playing _iteraded prisoner's dilemma_, and got an idea to replicate it. I have already run a similar experiment with five contestants (all being my friends) and now a second run is being prepared, with at least nine strategies in the pool. I am interested in a third run, this time with strategies nominated by LessWrongers. The contestants of the second run which has identical rules are readers of my blog and neither of them is probably familiar with specific LW ideas. Therefore, they would serve as a fairly good control group to test LW's applied rationality skills (or a subset of). After matching the strategies in both groups separately, I plan to put all of them together and see who wins.

So, if you want to participate in this contest, feel free to send me your strategy. The rules are following.

1.  By a _strategy_ I mean a program sent by a contestant or coded according to his/her instructions. The strategies compete in iterated prisoner's dilemmas. A single iteration I will call a _turn_. In each turn each strategy has to choose between _cooperating_ and _defecting_. The payoffs are:
    *   if both cooperate, 4 points for each
    *   if both defect, 1 point for each
    *   else 7 points for the defector and 0 points for its cooperating opponent
2.  By a _match_ I mean a series of 100 iterations between the same opponents.
3.  There will be two different competitions, the _round-robin tournament_ and the _evolutionary tournament_. Two separate final standings will be made, one for each tournament. Any received strategy has to participate in both.
    *   In the round-robin tournament strategies will play one match against each other (not against a copy of themselves). The winner will be the strategy which acquires the highest total number of points. Number of won or lost matches is disregarded.
    *   The evolutionary tournament will simulate evolution of a population of strategies. In the beginning, equal number of copies of each strategy is present in the pool. Then the strategies are paired randomly (now a strategy may be paired against a copy of itself) and each pair plays one match. In the next _generation_ pool, the strategies will be represented in numbers proportional to the total number of points won by all its copies in the present generation. The total population will be maintained at a constant level (probably 2,000 strategies, up to rounding errors). Strategies may go extinct. The strategy with the highest number of copies after the 100th generation will be considered a winner.
4.  A strategy has access to results of all previous turns in its current match and the number of current turn. It can decide randomly (a pseudo-random generator will be used). It does _not_ have access to results of other matches (including its own previous matches), the number of current generation, population sizes, number of points won by any strategy in any phase of the tournament (except the number of points already won in the current match which can be calculated from the previous turns results) and its opponent's identity (namely it doesn't know whether it plays against a copy of itself). The strategies obviously can't read their opponent's source code.
5.  Each person can send only one strategy. Be honest.
6.  The strategy can be described in any comprehensible language. If I find problems in understanding, which will probably happen if the strategy is described in Lisp or Basque, but can happen even if it is written in English, I will ask.
7.  You should send your strategies by private message, not in comments to this post. Your opponents shouldn't know what you have prepared.
8.  The strategy needn't be original, but if I get two identical strategies, I will treat them as one.
9.  A Fully Random strategy is automatically included in the tournament. It plays defect or cooperate randomly with 50% chance each turn.
10.  Names of the authors of the strategies will be published by default. If you wish your name excluded, specify it in your message, and your strategy will compete anonymously.

The simulation will probably not be run before at least eight strategies are collected and before the beginning of September. _The competition is closed, no new strategies are accepted at this moment. 21 different strategies were accepted, their implementations are now being tested. Results will be probably posted on Sunday 4th September.  
_

\[Edit: Found inconsistency in using words _round_ and _turn_ to denote the same thing. Now _turn_ is used everywhere.\]