récréations informatiques

home & thèmes & liens & contact

 

Résumé: quelle stratégie adopter? Avouer ou trahir, coopérer ou tromper. Quelle stratégie comportementale adopter dans des sociétés simples ou lorsque les membres d’une société écartent les exploiteurs acharnés? Le dilemme des prisonniers est devenu un classique, il est un des jeux les plus étudiés pour mieux comprendre la dynamique sociale d’un groupe d’individus en compétition. On peut, avec l’aide d’un ordinateur, expérimenter les avantages respectifs de l’entraide ou de la trahison, sans risquer la prison...

Mots-clés: logique, paradoxe, dilemme, prisonnier, choix, prévision, stratégie, calcul matriciel.

Solution:

La solution actuellement proposée est donnée en P5JS.

thèmes

de plus

Le dilemme des prisonniers

Le sujet est inspiré d’un article d'Alun Lloyd de l’Université d’Oxford, paru dans la revue Pour la science, No 214 d’août 1995 et du livre intitulé Le livre des paradoxes par Nicholas Falletta et paru chez Belfond/sciences en 1983.

Le dilemme des prisonniers s’intitule comme suit (extrait du livre de N. Falletta) : un commissaire de police vient d’appréhender deux individus soupçonnés de vol à main armée; il n’a cependant pas assez de preuves contre eux pour les traîner en justice et emporter la conviction du juge. Mais, ayant l’expérience de la justice criminelle et de la mentalité des délinquants, il fait venir les suspects tour à tour dans son bureau et leur propose à chacun un marché. Le commissaire reconnaît que des aveux de l’un des deux lui suffiront. Mais il les lui faut: sans cela, la seule charge qu’il pourra retenir contre eux sera le port d’armes prohibé, passible, disons, d’un an de prison. Voici la proposition du commissaire : si seulement l’un des deux prisonniers avoue, le mouchard sera libre et son complice fera dix ans de prison. Si les deux avouent, chacun n’en fera que cinq. Les suspects ne peuvent, bien sûr, communiquer entre eux. Que vont-ils choisir?

La solution paraît simple au premier abord : aucun des deux hommes n’avoue, de sorte que chacun ne fera qu’un an de prison, peine minimum. Mais voyons le problème du point de vue de chaque individu. Dans ce cas, la meilleure stratégie est d’avouer quoique fasse l’autre. En effet, si le suspect A avoue et que B persiste à nier, A est libre, ce qui est pour lui la meilleure solution. D’autre part, si B avoue également, A s’en trouve mieux d’avoir avoué, puisque, selon l’hypothèse, il ne fera que cinq ans de prison au lieu de dix. On peut tenir le même raisonnement pour le suspect B. Or, si les deux suspects se comportent de cette manière « rationnelle », ils avouent tous les deux, ce qui amène à subir une peine plus lourde que s’ils avaient nié.

C’est en 1951 que Merril M. Flood présenta ce paradoxe. La version proposée ici est due à Albert W. Tucker, professeur de mathématiques à l’Université de Princeton. Ce problème a provoqué de grands remous dans les théories de la communication et des jeux, surtout dans les recherches sur la coopération et la résolution des conflits.

De nombreuses expériences, où l’on faisait jouer à des personnes réelles le rôle des prisonniers, ont montré que l’aveu est la tactique la plus souvent adoptée par les participants. Ceux qui tablent sur la stratégie de la coopération et nient sont inévitablement exploités par leurs partenaires. Ces derniers, en refusant de coopérer, obligent généralement les premiers à se retrouver dans une situation de double aveu. De plus, certains facteurs, comme la durée relative des peines et le nombre de jeux réalisés, influent sur les résultats. Mais on parvient parfois à ce que les joueurs coopèrent lorsque la communication entre eux est autorisée, ce qui leur permet de développer une certaine confiance.

Il y a de nombreuses situations analogues au dilemme des prisonniers dans le monde réel. Dans le cadre des relations internationales, l’une des plus citées est celle de la course aux armements entre deux nations rivales : continuer à dépenser de l’argent en armements ou arrêter. Si les deux nations arrêtent, chacune pourra consacrer son budget à des causes pacifiques. Si l’une continue et pas l’autre, alors très vite la première développera une force militaire capable de vaincre la seconde. Si les deux pays poursuivent leur course, la situation est pire que la première, car ils ont dépensé des sommes énormes pour des armes dangereuses, sans qu’aucun soit plus puissant que l’autre.

Mais, ici encore, la stratégie la plus bénéfique aux deux, celle de la coopération est aléatoire, car on risque toujours d’être dupé par son adversaire.

Pour expérimenter les avantages respectifs de l’entraide ou de la trahison, on peut utiliser l’ordinateur. On examine une configuration spatiale où les joueurs demeurent sur les cases d’un grand échiquier et passent leur temps à jouer au dilemme des prisonniers à un tour, contre chacun de leurs voisins. Pour éviter des difficultés dues aux bords et aux coins de l’échiquier, on considère que celui-ci boucle sur lui-même : la voisine de « gauche » d’une case du bord gauche est sur le bord droit, dans la même ligne ; de même, les bords supérieur et inférieur sont considérés comme adjacents. Tous les coups d’un même tour sont joués simultanément.

En un tour, chaque joueur affronte chacun de ses huit voisins immédiats et lui-même. Les points attribués à l’issue de ces duels dépendent de la stratégie du joueur et de celle de ses adversaires. Lorsque deux joueurs coopèrent, chacun marque un point ; quand les deux trahissent, aucun ne marque. Un joueur ne marque pas s’il coopère avec un adversaire qui trahit. La marque maximale, notée b, revient au joueur qui a trompé un adversaire coopératif. La valeur de b détermine l’issue du jeu. Il est conseillé de choisir une valeur supérieure à 1.

Le tableau ci-dessous, appelé matrice des gains, résume les quatre situations possibles :


Pour un tour donné, la somme des neuf résultats obtenus contre les huit voisins et soi-même constitue la marque d’un joueur. A la fin de chaque tour, chaque joueur compare sa marque à celle de ses huit voisins, de manière à adopter la stratégie la plus avantageuse au tour suivant. Par exemple, quand l’adversaire le plus heureux de son voisinage a coopéré, le joueur coopère au tour suivant. Dans le dilemme des prisonniers à un tour, le meilleur choix est la trahison qui rapporte le plus de points, quel que soit le choix de l’adversaire.


Le jeu avec une configuration spatiale est moins évident, car la stratégie que chaque joueur adopte au tour suivant dépend des marques de ses huit voisins autant que de la sienne.

L’exercice consiste donc à simuler le dilemme des prisonniers sur un échiquier.

Indications

Pour programmer la coopération et la traîtrise, on prend un échiquier, par exemple de 60 lignes et 60 colonnes. Chaque case de l’échiquier contient une valeur, 1 s’il coopère et 2 dans le cas d’une traîtrise. Les marques ou matrices des gains désignent la stratégie adoptée par le joueur x face au joueur y. La matrice des gains est donc un tableau de quatre cases, deux lignes sur deux colonnes. Dans la première ligne, le joueur coopère, dans la deuxième, il trahit. Les colonnes indiquent la stratégie de l’adversaire. Dans la première colonne, il coopère, dans la deuxième, il trahit.

Au début du jeu, le programme décide de la stratégie que chaque joueur adoptera au premier tour.

La grille est remplie donc de joueurs qui sont soit des traîtres, soit des coopérateurs. Pour ceux-là on introduit un seuil indiqué par la lettre p qui détermine la proportion de joueurs qui trahissent au premier tour ou qui coopèrent. Ensuite, pour chaque case de l’échiquier, le programme calcule et enregistre la marque du joueur dans une variable qu’on peut appeler marque(i,j). Ce nombre est la somme des résultats des neufs affrontements avec les concurrents situés sur les cases est, ouest, nord, sud, etc. et lui-même. Une fois qu’il a calculé la marque de chaque case, le programme détermine la stratégie la plus avantageuse dans chaque groupe de voisins. Il affecte la stratégie gagnante à la case centrale du groupe et enregistre la disposition des nouvelles stratégies. Le programme considère chaque case en enregistrant son résultat. Il analyse ensuite les cases voisines. Quand la marque de l’un des voisins excède la marque maximale, ce nombre prend cette valeur et la stratégie du voisin est enregistrée. Quand tous les voisins sont ainsi passés en revue, la variable marque maximale contient la meilleure marque obtenue dans ce groupe et affecte la stratégie gagnante à ce joueur. Une fois que le programme a déterminé toutes les nouvelles stratégies, il les copie dans la grille et répète l’ensemble des opérations.

On peut visualiser l’évolution du jeu en affectant une couleur aux points de l’écran. Pour décrire à la fois la stratégie adoptée par le joueur dans le tour en cours et dans le tour précédent, on utilise quatre couleurs : le bleu indique un joueur qui coopère et à coopéré, le rouge un joueur qui trahit et a trahi, le vert un joueur qui coopère et a trahi et le jaune un joueur qui trahit et a coopéré. Ce code de couleurs permet de repérer les joueurs qui ont choisi la coopération ou la traîtrise, mais également ceux qui ont changé de stratégie ou ceux qui n’en ont pas changé.

On change ensuite les paramètres pour changer les résultats. L’évolution du jeu dépend largement de la valeur b, le bénéfice de la traîtrise. Plus b est grand, plus il est avantageux de trahir les joueurs coopératifs qu’on rencontre. Les traîtres exploitent toujours les joueurs coopératifs isolés, qui perdent toujours. En revanche, des blocs de joueurs coopératifs peuvent s’entraider et prospérer.

On conseille quelques valeurs de b: 1,15 ; 1,35 ; 1,55 ; 1,77 ; 1,9 ; et 2,01. On observe également que si la configuration initiale est symétrique, le programme produit de jolis motifs. L’exemple donné plus haut est construit à partir d’une grille avec un seul traître au centre.

On peut également modifier les conditions limites aux bords de l’échiquier en n’affrontant que cinq ou trois voisins. On peut également transposer le jeu sur un réseau en nid d’abeilles, où chaque case a six voisins immédiats.

Version p5.js. Instructions: faire reset pour une autre représentation.