Le dilemme du prisonnier

Dans le jeu du dilemme du prisonnier, deux détenus sont emprisonnés dans des cellules séparées. La police fait à chacun des deux le même marché:
"Tu as le choix entre dénoncer ton complice ou non. Si tu le dénonces et qu'il te dénonce aussi, vous aurez une remise de peine d'un an tous les deux. Si tu le dénonces et que ton complice te couvre, tu auras une remise de peine de 5 ans, mais ton complice tirera le maximum. Mais si vous vous couvrez mutuellement, vous aurez tous les deux une remise de peine de 3 ans."

Dans cette situation, il est clair que si les deux s'entendent, ils s'en tireront globalement mieux que si l'un des deux dénonce l'autre. Mais alors l'un peut être tenté de s'en tirer encore mieux en dénonçant son complice. Craignant cela, l'autre risque aussi de dénoncer son complice pour ne pas être le dindon de la farce. Le dilemme est donc: "faut-il accepter de couvrir son complice (donc de coopérer avec lui) ou le trahir ?"

Le tableau standard est le suivant :

Joueur B
coopèretrahit
Joueur A coopère
(3,3)
(0,5)
trahit
(5,0)
(1,1)

Ce genre de situation se rencontre fréquemment dans la vie: concurrence entre deux entreprises, conflits de personnes, comportement social de certains animaux, guerre des tranchées durant la guerre 14-18 (Axelrod 1992), etc.
Ce modèle très simple de la théorie des jeux semble appréhender en miniature les tensions entre cupidité individuelle et intérêts de la coopération collective. Pour cette raison, il est devenu un des modèles les plus utilisés en sociologie, biologie et économie.

Le dilemme du prisonnier itéré

Le dilemme du prisonnier devient plus intéressant et plus réaliste lorsque la durée de l'interaction n'est pas connue. On peut alors envisager de se souvenir du comportement d'un joueur à son égard et développer une stratégie en rapport. Par exemple, si je sais que mon adversaire ne coopère jamais, mon intérêt sera de ne pas coopérer non plus, sous peine d'être systématiquement grugé. Par contre si je sais que mon adversaire coopérera toujours quoi qu'il arrive, j'aurai intérêt à être vicieux et ne jamais coopérer pour maximiser mon gain.
La stratégie appelée "Donnant donnant", qui consiste à coopérer au premier coup puis à systématiquement copier le comportement de son interlocuteur à la rencontre précédente, s'avère particulièrement robuste (Axelrod 1992).

Votre choix
Choix du complice
your action Tour
my action
Votre score:             Score du complice:

Résultat du tour de jeu:

Boutons pour jouer une partie interactive:        

Intervention du hasard (%): 1 2 5 10 20 30 40
Vitesse de simulation (secs / tour): 0.05 0.20 0.50 1 2 5 10
Nombre de tours:     50 100 200 500 1000 5000

Évaluation des résultats (%)
Votre résultat Résultat du complice
Résultat commun
Évaluation des stratégies du complice (%)
Donnant donnant Donnant donnant / Aléatoire
Donnant pour 2 donnants / Aléatoire Donnant pour 2 donnants
Sondeur naïf Sondeur repentant
Pacificateur naïf Vrai pacificateur
Aléatoire Toujours trahir
Toujours coopérer Rancunier
Pavlov Pavlov / Aléatoire
Adaptatif Graduel
Donnant donnant soupçonneux Rancunier doux

   


Travail: le dilemme du prisonnier itéré avec Mathematica

Il est relativement simple d'implémenter le dilemme du prisonnier itéré sous Mathematica; il s'agit essentiellement de manipuler des listes, un domaine où Mathematica est particulièrement performant. Des notions de programmation modulaire sont aussi requises.
L'idée est que chaque élève programme quelques stratégies et qu'il choisisse celle qui lui semble la meilleure. Chaque stratégie doit être écrite dans un module. Ensuite, les élèves s'affronteront deux à deux dans un tournoi (il s'agira donc de rassembler les modules dans un même programme). Chaque stratégie affrontera toutes les autres (y compris elle-même). Toutes les stratégies participeront ainsi que cinq "joueurs" invités: "Bonne Poire", "Toujours seul", "Calculateur", "Aléatoire" et "Donnant donnant", ainsi que le maître qui participera sous le nom de "Coyote".

Cliquez sur le nom du fichier ci-dessus puis enregistrez sur votre disque dur ce fichier en format Texte en allant dans le menu Fichier/Enregistrer sous...
Ouvrez ensuite ce fichier depuis Mathematica (version 3 ou supérieure), et complétez-le.
Pour les élèves:

dilemme.nb (20 Ko)

Pour le maître:

tournoi.nb (16 Ko)

Les anciens tournois
Deux tournois ont déjà eu lieu.
Le tournoi 1997:

tour97.nb (48 Ko)

Le tournoi 2000:

tour00.nb (24 Ko)

Note: Si vous n'avez pas Mathematica, vous pouvez télécharger le logiciel gratuit MathReader pour visualiser (mais pas exécuter) ces fichiers.


Références


Didier Müller, 26.11.01