A Javascript-based simulation of the classical Iterated Prisoner's Dilemma game. Featuring:
Popular/Classic IPD Strategies and Custom User Strategies
Noisy Environment & Probabilistic Game Length
Population Representation by Evolution of Dominant Strategies
Iterated Prisoner's Dilemma Introduction
Two members of a criminal gang are arrested and imprisoned. Each prisoner is in solitary confinement with no means of communicating with the other. The prosecutors lack sufficient evidence to convict the pair on the principal charge. They hope to get both sentenced to a year in prison on a lesser charge. Simultaneously, the prosecutors offer each prisoner a bargain. Each prisoner is given the opportunity either to: betray the other by testifying that the other committed the crime, or to cooperate with the other by remaining silent. The offer is:
If A and B each betray the other, each of them receives the , serving 2 years in prison.
If A betrays B but B remains silent, A receives the , is set free and B receives the , serving 3 years in prison (and vice versa).
If A and B both remain silent, each of them receives , serving only 1 year in prison.
If two players play prisoner's dilemma more than once in succession and they remember previous actions of their opponent and change their strategy accordingly, the game is called . The iterated prisoner's dilemma game is fundamental to some theories of human cooperation and trust. On the assumption that the game can model transactions between two people requiring trust, cooperative behaviour in populations may be modeled by a multi-player, iterated, version of the game.
Unlike the standard prisoner's dilemma, in the iterated prisoner's dilemma the defection strategy is counter-intuitive and fails badly to predict the behavior of human players. Within standard economic theory, though, this is the only correct answer.