Le dilemme du prisonnier géométrique
a) Cas général
Dans cette partie nous allons observer le fonctionnement général d'un dilemme du prisonnier géométrique. Voici le principe d'un dilemme du prisonnier géométriquement nous allons essayer de le rendre le plus proche possible de notre quotidien:
On part d'une population initiale composée d'individus ayant une stratégie (nota bene: il y a moins de stratégies différentes que de cases) par exemple certains peuvent être des rancuniers d'autre des toujours trahir... . Cet ensemble d'individus forme donc une population que l'on peut représenter sous forme d'une matrice. On peut prendre pour exemple une classe d'étudiants ayant chacun sa propre personnalité ou stratégie: les rancuniers les donnants donnants....
Chaque individu de la population va interagir avec les individus "proches". La notion de proximité est très vaste puisque cela peut aussi bien être des employés d'une même entreprise que des animaux d'une même espèce ou aussi plus simplement les arbres proches géographiquement. Mais comment un individu va pouvoir interagir avec d'autres? Tout simplement cet individu va réunir les individus environnants et cet individu va organiser un tournoi avec les autres, un tournoi de type dilemme du prisonnier comme nous avons vu plus haut. Et l'individu qui organise le tournoi va adopter la stratégie du vainqueur du tournoi. Dans l'exemple il va s'agir de discuter, de voir comment les autres fonctionnent et adapter la stratégie la plus efficace.
C'est ainsi que la population va évoluer.
b) Un cas pratique
Nous allons maintenant prendre un exemple de dilemme du prisonnier résolu géométriquement. Tout d'abord on prend une population formée exclusivement de donnant donnant et de toujours seul (ou trahir toujours) dans les proportions suivantes: 9% de donnants donnants placés aléatoirement et le reste de trahir toujours.
On a donc une matrice composée de cases chaque case représente une stratégie qui va interagir avec les cases environnantes on entend ici par cases environnantes les cases suivantes:
La case organisant le tournoi est celle du centre a donc comme coordonnée [x][y] et les autres:
[x + 2] [y + 1] , [x + 2] [y - 1] , [x - 2 ] [y + 1] et [x - 2 ] [y – 1].
Chaque case va donc organisé son tournoi à 5 chacun va affronter les autres et s'affronter lui même lors d'un conflit de type dilemme du prisonnier avec la matrice des gains classique suivante sur 7 manches:
J1|J2 |
S1 = "trahir" |
S2 = "ne pas trahir" |
---|---|---|
S1 = "trahir" |
(1;1) |
(5;0) |
S2 = "ne pas trahir" |
(0;5) |
(3;3) |
Voici comment fonctionne notre second programme:
Au début on fait une matrice carrée de taille 500 et un canvas ayant des dimensions égales.
La matrice ne va contenir que des 1 et des 0. Les 1 symboliseront les donnant donnants et les 0 les méchants (toujours seuls). Il y a bien entendu un lien entre la matrice et le canvas puisque chaque point du canvas correspond à une case de la matrice.
Au début des itérations on a 9% de donnants donnants placés aléatoirement dans la matrice. Puis a chaque itération on va réaliser 500*500 tournois c'est à dire un pour chaque case. Chacun des tournoi va confronter 5 participants ces 5 participants sont soit ceux disposés selon le x écrasé montré plus haut. c'est à dire on confronte [x + 2] [y + 1] , [x + 2] [y - 1] , [x - 2 ] [y + 1] et [x - 2 ] [y – 1].
Or on sait que pour un tournoi de plus de 6 manches par confrontation avec une matrice des gains classique (0,1,3,5) et sans paramètre de réduction si dans les participants il y a au moins 2 donnants donnants c'est les donnants donnants qui remportent le tournoi.
Cela ce prouve très simplement ainsi:
Si un donnant donnant rencontre un donnant donnant le score sera de 3n, 3n avec n le nombre de manches car personne ne trahira l'autre.
Par contre si un donnant donnant rencontre un toujours seul le score sera de [(n-1 +5), (n-1)] avec n le nombre de manches car à la première manche le toujours seul trahiras le donnant donnant et aux autres les deux trahirons ensemble
Enfin si un toujours seul rencontre un toujours seul le score sera de [n, n] avec n le nombre de manches.
Ainsi pour une population de 2 donnants donnants et de trois toujours seul un donnant donnant marquera: 1*3n+3*(n-1)=6n-1
Alors qu'un toujours seul marqueras:
2*(n-1+5) +2*n=4n+4
Comme on souhaite que les gains d'un donnant donnant soit supérieurs aux gains d'un toujours seul on doit avoir:
6n-1≥4n+4
2n≥5
n≥5/2
Cela est amplement le cas pour n = 6 donc les donnants donnants l'emporterons dans ce type de confrontation.
Par contre pour une population de 1 donnant donnant et de quatre toujours seul un donnant donnant marquera: 4*(n-1)=4n-4
Alors qu'un toujours seul marqueras:
1*(n-1+5) +3*n=4n+4
Comme on souhaite que les gains d'un donnant donnant soit supérieurs aux gains d'un toujours seul on doit avoir:
4n-4≥4n+4
n-1 ≥ n+1
0≥2
Absurde donc un donnant donnant ne peut gagner contre 4 toujours seul.
On a donc si dans un tournoi avec deux donnants donnants la case située au centre du x écrasé sera donnant donnant on réitère ces séries de confrontation prés de 1000 fois et on obtient cette évolution:
Les
donnants donnants sont représentés en blanc , plus le
blanc est intense plus la densité de donnants donnants est
forte. On observe que les donnants donnants isolés sont
rapidement éliminés et qu'ils laissent places à
des quartiers de trahir toujours, il en est de même pour les
trahir toujours isolés.
Il est guère intéressant de regarder des impression d'écran nous vous invitons donc à lancer le programme dilemmegeomet.jar par contre pour l'arrêter soit il faut attendre la fin des 1000 itérations soit faire un ctrl alt. suppr.
Ce nouveau programme nous sert a expliquer la notion de population stable. Une population stable est une population où tout un ensemble de joueur pratiquant la même stratégie ne peux pas être envahi par une autre stratégie.
On voit ici que la population des joueurs toujours seul se fait envahir par donnant donnant lorsque donnant donnant est inséré avec un faible pourcentage donc toujours seul n'est pas une population stable lorsqu'un petit pourcentage de stratégies donnant donnant est inséré. Cependant on voit aussi que des stratégies donnant donnant insérées seules disparaissent. Ainsi, lorsque le pourcentage de stratégies coopératives introduites est trop faible, toujours seul apparaît comme une population stable. En effet, comme chaque joueur joue toujours seul à chaque itération toutes les stratégies plus coopératives (donc toutes les stratégies) gagnent le moins de points par rapport aux stratégies de la population stable en présence et donc ne peuvent être envahisseuse. Inversement si tout le monde est donnant donnant. Tout les donnant donnant collaborent ensemble et génèrent le maximum de points, tandis qu'un joueur toujours seul envahisseur se contentera d'un faible score contre ces stratégies et ainsi ne pourra envahir ces stratégies, qu'il soit inséré seul ou un petit pourcentage. Ainsi pour être stable, la réaction de cette population doit être extrémiste à la fois lors de ses propres interactions à le fois contre l'arrivée d'une stratégie envahisseuse.