EDIT: As I recieved fewer than 8 entries for both tournaments, I will not be running them. My apologies to those who did enter.
After the success of prase's Iterated Prisoner's Dilemma tournament, a number of people expressed interest in some variations on the initial tournament, including one with a reputation system from one match to the next. I've been trying to teach myself to program over the past few months, so I thought I'd have a go at implementing it.
As well as the vanilla p.d. competition, I thought I'd run a second tournament based on the game of chicken, which is similar to p.d. but reverses the last two pay-offs, making it better (at least in the short term) to co-operate with a defector. This obviously creates a greater potential for bully strategies (although you can also bully in p.d.), so I thought it might have some interesting consequences with a reputation system.
Exact rules are as follows:
- Anybody who wants may enter up to one strategy in each competition (you needn't enter the same strategy in both). You may also enter only one contest if you don't want to enter both. Strategies should be entered by private message to me, and should have names. I will accept duplicates.
- Strategies should be described in English, I may need to ask for clarification. A strategy should be able to tell me whether your program co-operates or defects in any situation, and should be computable.
- There will be two tournaments, Prisoner's Dilemma and Chicken. Each tournament will divide up into matches, and each match into rounds.
- In a round each strategy chooses which to co-operate or defect. The pay-offs for Prisoner's Dilemma are the same as the previous tournament, 4 each if both co-operate, 1 each if both defect otherwise 7 for the defector and 0 for the co-operator. In Chicken the mutual defection pay-off is replaced with a 7 point penalty, the other pay-offs are unchanged.
- In order to make its decision, each strategy is allowed to know the entire history of this match, as well as any prior matches which included either it or its opponent. It does not have access to any other matches, to its opponents identity or to its opponents source code.
- Each match has its length determined by an exponential distribution with each round having a 1% chance of being the last. At the end of the tournament, scores will be adjusted to make up for some programs playing more rounds than others (specifically, your score will be multiplied by the average number of rounds played and divided by the number of rounds you played)
- The tournament will be done as a Round Robin, with matches performed serially so there will usually be previous results to judge by. If I have time I will also try an evolutionary variation.
- In addition to the strategies submitted by players, I will add an automatic co-operator, an automatic defector and a random strategy (with equal chance of co-operating or defecting on any round).
- Names of authors will be revealed by default, if you don't want yours revealed then ask.
- I have created a poll in the comments about where people want the results posted.
Deadline for entry is 21st September. If I get fewer than 8 I won't run it, if I get more than 30 I'll run it with the first 30, so don't delay.
EDIT: To clarify for any who were confused, each strategy has access to all of its own matches and all of its opponents matches, not just matches between itself and its opponent.