« Dilemme du prisonnier » : différence entre les versions
Aucun résumé des modifications |
|||
Ligne 33 : | Ligne 33 : | ||
À Chaque tour les prisonniers vont jouer au dilemme du prisonnier avec chacun de leurs voisins. Ils obtiendront un score conformément à leurs choix et à la matrice des Paiements. Puis chacun leur tour mettre à jour leur stratégie en fonction du score des voisins. |
À Chaque tour les prisonniers vont jouer au dilemme du prisonnier avec chacun de leurs voisins. Ils obtiendront un score conformément à leurs choix et à la matrice des Paiements. Puis chacun leur tour mettre à jour leur stratégie en fonction du score des voisins. |
||
Afin de pouvoir visualiser l'évolution de notre espace nous avons créer un programme en Java afin de profiter des aspects suivant de Java: |
|||
Le premier est la programmation objet, cela nous permet de diviser la complexité de notre programme dans plusieurs objets interagissants entre eux. Nous pouvons aussi créer des abstractions d'objets qui nous permettent d'avoir des objets qui ont des comportements différents les uns des autres mais ayants tous des points communs. |
|||
Le second est la bibliothèque Abstract Windows Toolkit (ou AWT pour faire plus court). Qui nous permet de faire sans trop de problèmes une fenêtre personnalisable qui affiche des composants grapihques. Ces composants étant eux mêmes variées, on utilisera surtout les propriétés du composant Canvas dans ce programme. Grâce à l’héritage permis par la programmation objet nous pouvons créer nos propres composants graphiques pour afficher nos résultats. |
|||
Notre programme crée donc une fenêtre qui affiche les prisonniers en fonction de leur stratégie actuelle et de leur dernière stratégie.Le code couleur est le suivant : |
|||
-en rouge les Traîtres qui l’ont été pendant 2 tours consécutifs |
|||
-en jaune les Croyants qui sont devenus Traîtres |
|||
-en vert les Traîtres devenus Croyants |
|||
-en bleu les Croyants qui l’ont été pendant 2 tours consécutifs |
|||
== III-Une expérience intéressante == |
== III-Une expérience intéressante == |
Version du 18 mai 2019 à 14:21
Introduction
Le dilemme du prisonnier à été inventer en 1950 par Albert William Tucker et fait parti de la théorie des jeux qui est un domaine des mathématiques étudiant les interactions entre différents individus qui sont conscients ou non de ces interactions. Ils devront donc faire des choix dont ils sont conscients ou non lors de ces interactions.
I-Le dilemme du prisonnier
Les individus sont soumis dans le dilemme du prisonnier à une interaction où ils ont deux choix soit ils coopèrent avec l’autre individu soit ils le trahissent. Les individus sont récompensés selon la matrice des Paiements suivante :
L’intérêt de la configuration actuelle de la matrice des Paiements actuelle est que les individus ont un intérêt certain à trahir l’autre mais que la coopération est la meilleur option pour les deux individus. On représente l’intérêt à trahir par rapport à la coopération par la variable B qui dans notre exemple est égale à 1,85.
Afin de simplifier notre modèle nous ne considérerons que deux comportements possibles qui sont :
-Le Croyant qui coopérera systématiquement
-Le Traître qui trahira systématiquement
II-Spatialisation du Dilemme du prisonnier
Nous spatialisons le dilemme du prisonnier afin d’expliquer en partie des observations dans le vivant où les êtres vivants coopèrent entre eux alors qu’ils ont tout à y gagner en ne le faisant pas. Pour étayer nos propos on propose la citation suivante :« The prisoners’ Dilemma is an interesting metaphor for the fundamental biological problem of how cooperative behaviour may evolve and be maintained »(Nowak, M.A. et May, R.M. 1992. Evolutionary games and spatial chaos). En spatialisant le dilemme du prisonnier nous pouvons observer l’évolution des pratiques dans des situations variées. Il est à noter que nous pouvons aussi établir des liens entre les domaines de l’économie et de la sociologie notamment.
Les prisonniers sont au voisinage de Moore (8 voisins) de tel sorte à ce que dans l’espace les voisins d’un prisonnier lambda soient disposés de la manière suivante :
1 2 3
4 P 5
6 7 8
L’espace dans lequel ils évoluent est un espace toroïdale (bordures ouvertes) en forme de carré de dimension n*n.
À Chaque tour les prisonniers vont jouer au dilemme du prisonnier avec chacun de leurs voisins. Ils obtiendront un score conformément à leurs choix et à la matrice des Paiements. Puis chacun leur tour mettre à jour leur stratégie en fonction du score des voisins.
Afin de pouvoir visualiser l'évolution de notre espace nous avons créer un programme en Java afin de profiter des aspects suivant de Java:
Le premier est la programmation objet, cela nous permet de diviser la complexité de notre programme dans plusieurs objets interagissants entre eux. Nous pouvons aussi créer des abstractions d'objets qui nous permettent d'avoir des objets qui ont des comportements différents les uns des autres mais ayants tous des points communs.
Le second est la bibliothèque Abstract Windows Toolkit (ou AWT pour faire plus court). Qui nous permet de faire sans trop de problèmes une fenêtre personnalisable qui affiche des composants grapihques. Ces composants étant eux mêmes variées, on utilisera surtout les propriétés du composant Canvas dans ce programme. Grâce à l’héritage permis par la programmation objet nous pouvons créer nos propres composants graphiques pour afficher nos résultats.
Notre programme crée donc une fenêtre qui affiche les prisonniers en fonction de leur stratégie actuelle et de leur dernière stratégie.Le code couleur est le suivant :
-en rouge les Traîtres qui l’ont été pendant 2 tours consécutifs
-en jaune les Croyants qui sont devenus Traîtres
-en vert les Traîtres devenus Croyants
-en bleu les Croyants qui l’ont été pendant 2 tours consécutifs