Iterated prisoner's dilemma



Si tu ne connais pas le dilemme du prisonnier, voilà le principe.

A 6h du matin, la police débarque chez Bunny P. et Clyde B. Le shérif les accuse de plusieurs attaques de banques. Pour les faire avouer, il les place dans les 2 cellules les plus éloignées de la prison. Il vient voir Clyde et lui dit "Allez, parle !". La situation est alors la suivante :

Bunny avoue Bunny nie
Clyde
avoue
4 ans pour Bunny et Clyde
pour hold-up
5 ans pour Bunny
Clyde relâché pour coopération
Clyde
nie
5 ans pour Clyde
Bunny relâchée pour coopération
2 ans pour Bunny et Clyde
pour port d'arme

Clyde se dit que si Bunny avoue, il a intérêt à avouer aussi pour éviter les 5 ans de prison. D'un autre côté, si elle nie, il a aussi intérêt à avouer puisqu'il échappe à la prison (et du coup Bunny se mange 5 ans, bien fait pour elle). Finalement se dit-il, je vais avouer. Bunny va tenir le même raisonnement et va avouer aussi, si bien qu'ils se prendront 4 ans de prison. Alors que s'ils avaient nié tous les deux, ils ne s'en seraient pris que deux. Enfin bref.

Ce constat a donné lieu à tout un tas d'études plus palpitantes les unes que les autres. Il y a quelques années, Robert Axelrod a créé un tournoi basé sur le dilemme du prisonnier (ça me saoûle de tout expliquer ; cherche sur Internet si ça t'intéresse).

ipridi est mini-programme en python simulant un tel tournoi. Des robots sont programmés pour coopérer ou trahir.

Voir le code-source

Télécharger ipridi

Little Neo, 2005

Accueil