Michael Townsley, Michael Weeks, Rammohan Ragade, and Anup Kumar
Abstract— The Iterated Prisoner’s Dilemma (IPD) is a classic construct, used to explain the nature of cooperative/noncooperative behavior in society. One way to simulate the iterated prisoner’s dilemma is with a genetic algorithm to evolve the population of prisoner’s dilemma players to their maximum potential. However, the limitations of computational power are a large factor in the ability to run very large simulations, and gather accurate and useful statistics. This simulation is an obvious candidate for addressing problems in parallel and distributed computing. This paper will first demonstrate that a population of IPD players will develop cooperation over successive generations. This work is concerned with implementing a large simulation of mobile IPD players, across a network of machines. We present implementation considerations for such simulations and the resulting impacts of parallelizing on the simulation.
model cooperation in open-source software development [2]. In this game, two players meet and either cooperate with each other, defect against each other, or have a mixed outcome where one defects while the other cooperates. Each player makes his choice at the same time. The name comes from the story of two prisoners, each asked separately to testify against the other. If they both refuse to talk (and thus cooperate with each other), then both are released. If they both agree to testify (defect) against the other, they both will be convicted. One could testify against the other, winning his freedom at the expense of the other (cooperating) player. Scoring is based on the outcome; a defecting player scores five points against a cooperating player. Two players who cooperate both do fairly well, scoring three points each, while two defecting players both do poorly, scoring only one point each. A player who cooperates with a