• Aucun résultat trouvé

Td corrigé théorie des jeux pdf

N/A
N/A
Protected

Academic year: 2022

Partager "Td corrigé théorie des jeux pdf"

Copied!
1
0
0

Texte intégral

(1)
(2)

T

able D es M atières

I. RECHERCHE DU MEILLEUR CHEMIN...

A. BRITISH MUSEUM...

B. RECHERCHEHEURISTIQUE...

1. Principe...

2. Défaut...

3. Algorithme...

C. A*...

1. Algorithme de A* pour une estimation minorante...

2. Exemple...

II. LA THÉORIE DES JEUX...

A. LESJEUX, STRUCTURELUDIQUEETOPTIMALISATION...

B. GÉNÉRALITÉS...

1. Les types de jeux...

a) Jeux finis...

b) Jeux à somme nulle...

c) Jeux à information parfaite...

d) Jeux à entente...

2. Les joueurs...

a) Intelligents...

b) Prudents...

3. Les points de vue...

4. Stratégie...

a) Généralités...

b) Stratégies mixtes...

c) Choix de stratégies...

5. Représentation...

a) Représentation matricielle...

b) Représentation arborescente...

c) La fonction d'évaluation...

d) Notation...

C. LESALGORITHMES...

1. MINIMAX...

a) Forme normale...

(1) Joueur maximisant...

(2) Joueur minimisant...

(3)

(3) Point col...

b) Forme extensive...

(1) MINIMAX : profondeur d’abord...

(2) MINIMAX : retour en arrière...

c) Solve...

(1) Le principe de Solve...

(2) L’algorithme...

2. a-b...

a) Limite a...

b) Limite b...

c) Algorithme...

d) Exemple...

e) Conclusion...

3. SSS*...

a) Introduction...

b) Le principe de SSS*...

(1) Navigation...

(2) Nœuds MAX...

(3) Nœud MIN...

c) Algorithme...

d) Exemple...

e) Conclusion...

4. SCOUT...

a) TEST...

(1) Nœud MIN...

(2) Nœud MAX...

(3) Procédure TEST(J, v, >)...

b) Exemple...

c) Conclusion...

D. CONCLUSION...

(4)

I. Recherche du meilleur chemin

A. British Museum

On calcule tous les chemins avant de rechercher le meilleur par comparaison.

B. Recherche heuristique

Cette technique est basée sur le développement du chemin partiel de moindre coût.

1. Principe

Au cours de la recherche il existe de nombreux chemins incomplets attendant d'être examinés.

On développe le plus court d'entre eux au niveau suivant pour créer autant de chemins complets qu'il y a de branches. On développe à nouveau le plus court des chemins partiels existant. On recommence jusqu'à l'arrivée à destination.

Ayant toujours choisi le sous chemin le plus court, le premier chemin arrivant au but est à coup sûr optimal.

2. Défaut

La dernière portion du chemin pourrait rendre la solution plus longue qu'un ou plusieurs chemins incomplets.

La nouvelle condition d'arrêt doit donc être : arrêt lorsque le plus court chemin incomplet est plus long que le plus court chemin complet trouvé.

3. Algorithme

1¥ On développe le noeud situé à la fin du plus court chemin conduisant à un noeud ouvert.

2¥ Le développement se poursuit jusqu'à ce qu'il existe un chemin reliant le but de longueur inférieure ou égale à celle de tous les chemins partiels menant à des noeuds ouverts.

On peut améliorer la recherche heuristique en ajoutant des estimations des distances restant à parcourir à la longueur du chemin déjà parcouru.

On développe alors au maximum le chemin où la longueur estimée est la plus courte, jusqu'à modification significative de cette estimation.

On peut aussi supprimer les chemins redondants.

ex : On supprime le chemin a-b-c si le chemin a-c est disponible…

On en arrive enfin à la procédure A*…

(5)

C. A*

C'est une recherche heuristique avec estimation de la distance restante par minoration de la distance réelle…

ex : La ligne droite pour le voyageur de commerce

…combinée avec le principe de la programmation dynamique, conduisant aux solutions optimales.

1. Algorithme de A* pour une estimation minorante

1 - Initialement, la file des chemins partiels contient le chemin d'ordre 0, de longueur nulle et reliant la racine à nulle-part.

2 - Jusqu'à ce que la file soit vide, ou que le nœud but soit atteint, regarder si le premier chemin de la file atteint le but :

a - Si c'est le cas : ne rien faire.

b - Si le premier chemin de la file n'aboutit pas au but:

i - Le supprimer de la file

ii - Former les nouveaux chemins obtenus en prolongeant d'un niveau le chemin supprimé.

iii - Insérer ces nouveaux chemins dans la file.

iv - Le coût de chaque chemin étant la somme de la distance déjà parcourue et d'une estimation minorante de la distance restant à parcourir, trier la file par coût croissants ou plus atteignent le même nœud, ne conserver que celui ayant la longueur minimale.

3 - La recherche aboutit si le nœud but a été atteint et échoue sinon.

A* est efficace lorsque ses composantes le sont.

2. Exemple

Supposons que l’on veuille résoudre un problème du type voyageur de commerce, c’est-à-dire trouver un chemin dans un réseau de villes reliées par des routes. Le chemin doit commencer à la ville de départ S et se terminer à la ville but G.

Utili sez Word 6.0c (ou ultŽrieu r)

pour affich er une image Ma cin tosh.

Le voyageur de commerce : distance routières entre les villes

(6)

Si l’on a l’intention de parcourir fréquemment le chemin entre S et G, il est préférable de trouver un très bon chemin.

Soit h*(u) le minimum des coûts des chemins de u à v, v décrivant l’ensemble des états terminaux. C’est le coût minimal pour aller de l’état u à un état terminal.

Soit g*(u) le minimum du coût des chemins de S (état de départ) à u.

Soit f*(u) = g*(u) + h*(u). C’est le minimum du coût des chemins passant par u et menant de S (état de départ) à un état terminal.

Sauf dans des cas triviaux, aucune de ces trois fonctions n’est connue à priori. Pour s’aider dans la résolution du problème posé, on se donne une information heuristique sous la forme d’une application h.

h(u) est une estimation de h*(u).

On dira que h est minorante si et seulement si, pour tout état u, h(u) ≤ h*(u).

C’est le cas si on utilise la ligne droite, ou distance à vol d’oiseau, comme fonction d’approximation.

On prendra comme approximation de g*(u), le coût du meilleur des chemins menant de S à u.

On définit finalement f(u) = g(u) + h(u).

L’algorithme se fondant sur f pour ordonne les nœuds s’appelle l’algorithme A.

Lorsque h est un minorant de h*, c’est l’algorithme A*.

Si le graphe est fini et qu’une solution existe, l’algorithme A* trouvera le meilleur chemin vers le but.

(7)

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

Recherche A*

(8)

Ainsi, à partir de S, on peut définir deux chemins, vers A et vers D. Il y a donc deux états possibles:

Etat n°1 en A : le coût du chemin de S à A est de 3, d’où g(A) = 3. L’estimation du coût du chemin de A à G est de 9,4 (distance à vol d’oiseau), d’où h(A) = 9,4. Donc,

f(A) = g(A) + h(A) = 12,4

Etat n°2 en D : le coût du chemin de S à D est de 4, d’où g(D) = 4. L’estimation du coût du chemin de D à G est de 8,9 (distance à vol d’oiseau), d’où h(D) = 8,9. Donc,

f(D) = g(D) + h(D) = 12,9

Il en résulte que, vers A, il existe un chemin qui mène à G, de longueur estimée à 12,4 (contre 12,9 vers D). Il faut donc développer le nœud A.

La résolution globale du problème est détaillée dans le tableau ci après :

Ville Villes Suiv. Evaluation Liste Etats Min Etats Restants

S A,D f(A) = 12,4

f(D) = 12,9

(SD; 12,9) (SA; 12,4)

(SA; 12,4) (SD; 12,9)

A B, D f(B) = 13,7

f(D) = 17,9

(SD; 12,9) (SAB; 13,7) (SAD; 17,9)

(SD; 12,9) (SAB; 13,7) (SAD; 17,9)

D A, E f(A)=18,4

f(E) = 12,9

(SAB; 13,7) (SAD; 17,9) (SDA; 18,4) (SDE; 12,9)

(SDE; 12,9) (SAB; 13,7) (SAD; 17,9) (SDA; 18,4)

E B, F f(B) = 17,7

f(F) = 13

(SAB; 13,7) (SAD; 17,9) (SDA; 18,4) (SDEB; 17,7) (SDEF; 13)

(SDEF; 13) (SAB; 13,7) (SAD; 17,9) (SDA; 18,4) (SDEB; 17,7)

F G f(G) = 13 (SAB; 13,7)

(SAD; 17,9) (SDA; 18,4) (SDEB; 17,7) (SDEF; 13)

(SDEFG; 13) (SAB; 13,7) (SAD; 17,9) (SDA; 18,4) (SDEB; 17,7)

On notera le retour en arrière suite au développement de A. En effet, l’estimation a laissé croire qu’il pouvait exister un chemin à 12,4 de coût en passant par A. Le développement des chemins issus de A nous en a détrompé, puisque l’estimation du coût devenait supérieure à celui passant par D.

(9)

II. La théorie des jeux

Les noeuds d'un arbre de jeu sont reliés entre eux par des branches représentant le passage d'une situation de jeu à une autre. La différence avec les arbres de recherche de meilleur chemin vient du fait que deux joueurs agissent comme des adversaires et prennent des décisions à tour de rôle, les jeux font donc appel à d'autres procédures de recherche.

La procédure la plus simple étant d’évaluer chaque nœud en fonction de ses fils, malheureusement, on se heurte rapidement au problème de l’explosion combinatoire due au développement complet de l’arbre.

Conjointement à l'élagage a-b pour parer à l'explosion combinatoire il est parfois utile d'orienter la recherche vers les coups les plus plausibles. La procédure d'orientation réduit la recherche selon une profondeur croissante et une plausibilité croissante (plus plausible implique recherche plus profonde)

A. Les jeux, structure ludique et optimalisation

A la notion de jeu se trouve associée celle de partage et de gain. C'est ici qu'interviendront les stratégies pour augmenter le gain et réduire la perte.

On arrive à l’ancien problème de recherche de l'équité.

ex : Partage des terres et d'héritage…

C'est encore une théorie de partage qui devait guider Pascal dans sa recherche de l'équité dans les partages des enjeux lorsqu'une partie, ou élément synchronique du jeu, est brutalement interrompue avant la fin normalement prévue par les règles.

ex : Supposons que 2 joueurs engagent une partie de dés.

Règle du jeu : est déclaré gagnant le premier à marquer 3 points, étant entendu qu'un joueur marque un point chaque fois que le numéro qu'il a choisi est tiré.

Les 2 joueurs ont misé chacun 30 francs.

La partie va bon train et déjà le 1, choisi par le joueur A, est sorti 2 fois et le 6, choisi par le joueur B, une fois.

Survient un événement majeur obligeant l'arrêt de la partie. Comment répartir les mises équitablement?

• A première vue, le problème semble simple: A ayant déjà acquis 2 points et n'ayant besoin que d'un seul coup pour gagner, contre seulement 1 point pour B qui a besoin de 2 coups heureux pour gagner, peut prétendre que ses chances pour gagner sont doubles et exiger 40 francs.

(10)

• On peut faire un raisonnement tout-à-fait différent et plus équitable pour A. En effet, pour s'en convaincre il suffit d'envisager le coup suivant : Le pire qui puisse arriver à A est que B sorte un 6. Auquel cas, les deux joueurs se trouveraient à égalité, A est donc sûr de partir avec 30 francs. Néanmoins, le sort peut être favorable à A et si le 1 est tiré, il ramasse tout. Tout bien considéré, A à autant de chances de gagner que de perdre le coup supplémentaire il serait donc plus équitable de partager les 30 francs restant de telle sorte que A prend 45 francs et B en prend 15.

Cette deuxième méthode, dite de Pascal a donné naissance au calcul des espérances d'où le hasard est exclu! La théorie des jeux associe donc à chaque joueur et pour chaque situation intermédiaire une espérance de gain.

Lorsque le jeu cesse d'être à information parfaite, comme dans le cas des jeux de guerre, il n'y a plus de stratégie pure optimale. Il devient nécessaire à chacun des adversaires de supputer son espérance de gain en probabilisant les choix, aussi bien les siens que ceux de son adversaire. La fonction d'espérance de gain admet un point d'équilibre selon le théorème de dualité.

Il existe aussi des jeux où une entente entre les joueurs peut être d'un bénéfice commun : problèmes d'entente et de coalition.

Quand on parle d'un jeu, on cherche d'abord à savoir s'il existe une méthode optimale pour y jouer. En général, sinon toujours, les différentes façons de jouer constituent un ensemble fini bien que parfois astronomiquement grand, c'est le cas du jeu d'échecs. La réponse à cette question repose essentiellement sur le fait de savoir si cet ensemble est ordonné ou non. Tout tient donc dans la définition de la relation d’ordre et la solution à de tels problèmes relève de la théorie des jeux.

Il convient de considérer la théorie des jeux comme la branche des mathématiques qui traite de l’aspect formel de la théorie de la décision. Cela implique un choix d’actions parmi un ensemble possibilités en connaissant les conséquences induites.

L’une des limitations de la théorie des jeux réside dans le fait qu’elle ne prend en compte que la logique des stratégies et shunte l’aspect psychologique.

En ce qui concerne les conflits humains, l'intérêt de la théorie des jeux réside plus dans sa faculté à disséquer les méthodes de raisonnement, que dans les solutions qu'elle peut ou non apporter. Elle permet ainsi de transcender l'émotionnel pour se focaliser sur l'analyse logique et mathématique… On entre ainsi dans le domaine de l'IAD.

B. Généralités

1. Les types de jeux

Les jeux sont souvent différenciés par leur appartenance, ou leur non appartenance, à

(11)

Jeux finis.

Jeux à somme nulle.

Jeux à information parfaite.

Nombre de joueurs.

a) Jeux finis

Un jeu est dit fini, si il satisfait aux conditions suivantes :

Il est joué en un nombre fini de coups.

Chaque joueur a un nombre fini de choix à chaque coup.

ex : Jeu de Nim. (Vider plusieurs tas de pions de taille variable - traditionnellement, il y a trois tas de 3, 4 et 5 pions). On ne peut enlever qu’un nombre fini d’allumettes, et un ne peut jouer que nombre d’allumettes coups au maximum…

b) Jeux à somme nulle

Un jeu à somme nulle est un jeu où les paiements sont réciproques. C’est à dire que les gains d’un joueur sont les pertes d’autres joueurs. Il n’y a pas d’apport de l’extérieur.

ex : Dames. Si un joueur gagne, c’est grâce à la défaite de l’autre.

c) Jeux à information parfaite

Un jeu à information parfaite est un jeu satisfaisant aux conditions suivantes :

Les joueurs jouent successivement.

Chaque joueur est parfaitement renseigné sur les coups précédents des autres joueurs.

ex : Echecs. Les joueur jouent à tour de rôle et connaissent tous les mouvements depuis le début de la partie.

Dans l’étude des algorithmes suivante, nous allons considérer des jeux à deux joueurs, à somme nulle et à information parfaite.

d) Jeux à entente

Les duels, qu’ils soient à information parfaite ou non, ne sont pas les seuls types de jeu abordés par la théorie des jeux et traités sur ordinateur. Les duels sont en effet des jeux à deux personnes de somme nulle, ce qui formulé autrement signifie qu’aucune entente entre les joueurs ne saurait bénéficier simultanément à l’un et à l’autre. Il en va tout autrement si le jeu n’est pas de somme nulle, car il peut être alors des circonstances où les antagonistes cherchent à se mettre d’accord afin que le déroulement de la partie aboutisse, pour l’un et l’autre , à un résultat plus intéressant que celui qu’ils obtiendraient en l’absence de toute entente.

(12)

ex : Bataille des sexes. Le manque à gagner est inférieur pour chacun lorsqu’il adopte le point de vue de l’autre et cède, plutôt que de s’en tenir à son propre point de vue.

Le problème de l’entente peut se transformer en un problème de coalition si le nombre de protagonistes augmente. La complexité ne peut que s’en ressentir. Ainsi la théorie des jeux et l’analyse scientifique de ceux-ci requièrent, outre une bonne appréciations des atouts dont on dispose en propre lorsqu’on est impliqué dans le jeu, complétée par une appréciation aussi bonne des atouts d’autrui, l’attitude à se faire écouter, la faculté de se rendre crédible et le talent nécessaire pour que conscience soit prise d’une rationalité collective qui doit être partagée par tous les participants.

Le problème posé est de savoir comment apporter une solution rigoureuse là où il semble que seules des considérations d’éthiques fondées sur le sens de la loyauté, de la confiance mutuelle, peuvent justifier le choix d’une stratégie. La contradiction est levée par une généralisation de la notion de jeu à celle de métajeu assortie de l’introduction d’un nouveau concept : celui de stratégie conditionnelle.

ex : Jeu de la TOSCA ou jeu du trouillard. Le célèbre opéra de Puccini met en scène le chef de la police Scarpia, la Tosca et son amant Cavaradossi, condamné à mort. Scarpia a proposé à la Tosca un marché : de fallacieuses amours contre un simulacre d’exécution.

Cependant, après avoir conclu ce marché, aucun des deux ne respecta sa parole, la Tosca poignardant Scarpia alors même qu’il l’embrasse. Il eût été préférable pour les deux de s’entendre, malgré les désavantages que cela procure à chacun. Ce jeu peut être modélisé sous la forme d’une matrice :

Sh Sf

Th (1/2 , 1/2) (-1 , 1) Tf (1 , -1) (-3/4 , -3/4)

Maintenant, on peut introduire la notion de métajeu en considérant les stratégies conditionnelles suivantes :

S1 = (H, Ti) , S2 = i , S3 = i , S4 = (F, Ti) où i = H,F

et où i signifie qu’il s’agit du choix que l’on peut attendre de T avec Ti = H ou F.

Dans ce cas, si on donne à T 16 possibilités de répliques conditionnées, en relation avec les options de S (par exemple, T4 = HFHH signifie que T s’attend à ce que S essaie de faire comme lui) , on obtient la matrice de jeu suivante :

(13)

S1 S2 S3 S4

T1 = HHHH (1/2 , 1/2) (1/2 , 1/2) (-1 , 1) (-1 , 1) T2 = HHHF (1/2 , 1/2) (1/2 , 1/2) (-1 , 1) (-3/4 , -3/4) T3 = HHFH (1/2 , 1/2) (1/2 , 1/2) (1 , -1) (-1 , 1) T4 = HFHH (1/2 , 1/2) (-3/4 , -3/4) (-1 , 1) (-1 , 1) T5 = FHHH (1 , -1) (1/2 , 1/2) (-1 , 1) (-1 , 1) T6 = HHFF (1/2 , 1/2) (1/2 , 1/2) (1 , -1) (-3/4 , -3/4) T7 = HFHF (1/2 , 1/2) (-3/4 , -3/4) (-1 , 1) (-3/4 , -3/4) T8 = FHHF (1 , -1) (1/2 , 1/2) (-1 , 1) (-3/4 , -3/4) T9 = HFFH (1/2 , 1/2) (-3/4 , -3/4) (1 , -1) (-1 , 1) T10 = FHFH (1 , -1) (1/2 , 1/2) (1 , -1) (-1 , 1) T11 = FFHH (1 , -1) (-3/4 , -3/4) (-1 , 1) (-1 , 1) T12 = FFFH (1 , -1) (-3/4 , -3/4) (1 , -1) (-1 , 1) T13 = FHFF (1 , -1) (-3/4 , -3/4) (-1 , 1) (-3/4 , -3/4) T14 = HFFF (1 , -1) (1/2 , 1/2) (1 , -1) (-3/4 , -3/4) T15 = FFFF (1/2 , 1/2) (-3/4 , -3/4) (1 , -1) (-3/4 , -3/4) T16 = HHHH (1 , -1) (-3/4 , -3/4) (1 , -1) (-3/4 , -3/4)

Cette matrice de jeu comporte trois points de stabilité (T6, S2), (T14, S2) et (T16, S3) en ce sens que, si l’un des joueurs s’en tient à la stratégie correspondant à l’un de ces points, l’autre ne peut aucunement améliorer sa situation en changeant de stratégie. On peut dire de ces trois points que le second est le plus rationnel à la fois pour S et pour T, alors que le troisième coïncide avec la solution du minimax. Le point (T14, S2) rétablit notre tranquillité d’esprit et réconcilie la sagesse, la morale et le rationnel.

(14)

2. Les joueurs

Afin de mieux comprendre les principes de la théorie des jeux, il faut toujours avoir à l’esprit les deux caractéristiques fondamentales de joueurs théoriques déroulant les algorithmes. Ils sont supposés :

Intelligents.

Prudents.

a) Intelligents

Dire qu’un joueur est intelligent, revient à dire qu’il jouera toujours le meilleur coup. Il ne commettra donc jamais d’erreur et jouera toujours le coup l’avantageant le plus.

b) Prudents

Les joueurs ne prennent pas de risques dans le but de gagner plus. Ils cherchent toujours à minimiser leurs pertes potentielles.

3. Les points de vue

Il est nécessaire d’adopter une notation commune et compréhensible afin de décrire les gains des joueurs et les résultats de parties.

ex : Gagné, Perdu, Nul.

1, -1, 0.

30, 55, -10.

On choisit donc arbitrairement un joueur dont les valeurs les plus grandes représenteront les gains, appelé joueur maximisant.

Ainsi, le joueur maximisant est celui dont les gains sont d’autant plus grands que la valeur du résultat est grande, alors que le joueur minimisant est d’autant plus victorieux que la valeur résultat est petite algébriquement.

4. Stratégie

a) Généralités

Une stratégie est un ensemble d’instructions pour jouer une partie du premier au dernier coup, autrement dit un plan qui devrait lui permettre de répondre à n’importe quel choix effectué par l’autre joueur..

Elle peut-être représentée par une série de Si…alors…sinon, prenant en considération toutes les situations possibles.

Un partie se modélise donc en deux coups, c’est à dire les choix de stratégies des deux joueurs.

(15)

Une fois choisie, une stratégie ne peut être changée, elle détermine le déroulement de toute la partie pour le joueur concerné.

On peut alors se demander quel est le nombre maximal de stratégies dont peut disposer un joueur. Certaines peuvent être comptées plusieurs fois mais ce dénombrement porte sur les façons dont le jeu peut se dérouler et non pas sur les stratégies.

Bien entendu, il n’est possible de connaître l’ensemble des stratégies que pour très peu de jeux, la plupart ne présentant qu’un intérêt mineur de par leur faible complexité ou richesse.

ex : Echecs : on ne peut définir toutes les stratégies possibles.

Morpion : on pourrait facilement définir toutes les stratégies possibles. Intérêt limité.

Dans la plupart des cas, il est impossible de représenter une stratégie dans son intégralité sous une forme rapidement compréhensible (une suite de tests de positions est assez peu digeste à représenter!).

b) Stratégies mixtes

Lorsqu'il n'existe pas de point col, il est parfois utile d'appliquer ce que l'on appelle une stratégie mixte.

En effet, le calcul de la stratégie provoquant les pertes minimales peut provoquer des raisonnements circulaires.

ex : Il sait que je sais qu'il sait que je vais appliquer telle stratégie…

Afin d'éviter ce type de raisonnement au nième degré, on a recours aux stratégies mixtes, dont le principe est d'affecter une probabilité d'être jouée à chaque stratégie, en privilégiant la meilleure stratégie déterminée par le minimax.

ex : Examinons le jeu du fameux colonel Blotto.

Il s’agit pour lui et son ennemi d’occuper deux places fortes par une distribution judicieuse des forces dont ils disposent. Toute place forte est enlevée par celui qui y a conduit plus de régiments que son adversaire. Non seulement la place forte lui est alors acquise, mais la reddition des régiments ennemis moins nombreux lui vaut autant de régiments prisonniers. Son butin de guerre s’évalue, au total, en unités régimentaires, chaque place forte ayant valeur d’un régiment. Si une place forte se trouve investie par des forces opposées égales en effectif, elle ne tombe aux mains de personne et se trouve neutralisée. Pour mener sa guerre le colonel Blotto commande 4 régiments, l’ennemi n’en a que 3.

Ennemi

B 3.0 0.3 2.1 1.2

l 4.0 4 0 2 1

o 0.4 0 4 1 2

(16)

t 3.1 1 -1 3 0

t 1.3 -1 1 0 3

o 2.2 -2 -2 2 2

N’ayant aucun élément sur lequel fonder leur propre tactique, c’est à dire ne sachant quelle stratégie pure adopter, ils vont essayer tout naturellement de supputer leur espérance de gain en probabilisant les choix, tant adverse que les leurs, sur l’ensemble des stratégies.

Pour cela ils vont pondérer chacune de leurs stratégies par un facteur non négatif, s’affectant ainsi mutuellement et directement des distributions de probabilités.

De telles stratégies désormais pondérées prennent le nom de stratégies mixtes par opposition aux stratégies pures ou tactiques.

Notons que dans cet exemple, les coups se retrouvent dans la manière dont les différentes compagnies donneront l'assaut… Il ne faut pas confondre la notion de coup avec celle de stratégie!

c) Choix de stratégies

Lorsqu'une stratégie optimale existe, elle est choisie. Lorsqu'elle n'existe pas, ou lorsque plusieurs stratégies équivalentes sont disponibles, on effectue un choix aléatoire.

Lorsque la stratégie optimale correspond à un point col, on la choisit, mais le jeu n'a plus d'intérêt.

5. Représentation

Afin de rechercher le meilleur coup, ou la meilleure stratégie, il est nécessaire de représenter un jeu ou une partie d'une manière exploitable. Les deux méthodes de représentation sont :

• Forme normale ou matricielle.

• Forme extensive ou arborescente.

a) Représentation matricielle

Ce mode de représentation se situe au niveau des stratégies, dont il modélise les effets ou résultats.

Dans ce mode de représentation, les lignes et les colonnes représentent les stratégies ouvertes aux deux joueurs. Par convention, les lignes représentent généralement les stratégies du joueur maximisant. Par extension, les colonnes représentent celles du joueur minimisant.

Les valeurs des différentes cases représentent la valeur d'une partie issue de la confrontation des stratégies de la colonne et de la ligne correspondantes. Comme toujours ces valeurs sont à considérer du point de vue du joueur maximisant.

(17)

Ici, si le joueur maximisant choisit la stratégie correspondant à la première ligne, et le joueur minimisant celle correspondant à la troisième colonne, alors le résultat de la partie sera 1, correspondant à un gain du joueur maximisant…

Les cases correspondent aussi aux feuilles de l'arbre de jeu…

b) Représentation arborescente

Ce mode de représentation se situe au niveau des coups et des positions produites. C'est une représentation explicite de toutes les actions possibles du jeu.

A chaque niveau on a tous les choix possibles pour un joueur, pour un coup donné.

Les nœuds représentent les positions du jeu. Ainsi, la racine est la position initiale du jeu et les feuilles, ou nœuds terminaux correspondent aux positions de fin de partie.

Les arcs représentent les coups d'un joueur.

Les nœuds du premier niveau représentent donc les positions que peut atteindre le premier joueur en un déplacement. Leurs successeurs étant les positions résultant de la réplique du second joueur…

Ainsi, chaque chemin partant de la racine vers un nœud terminal représente une partie différente, complète, du jeu.

On retrouve une structure arborescente de type “ et/ou ” comportant des noeuds représentatifs d’une caractéristique et des noeuds figuratifs d’une décision à prendre. La valeur d’un noeud dépend de ses successeurs, sauf s’il est terminal.

Lorsque le premier joueur joue, c'est un "ou", alors que lorsque c'est le second joueur qui joue, on a un "et".

Ici encore, la représentation d'un arbre de jeu complet se heurte rapidement à une explosion combinatoire, tout du moins pour les jeux "intéressants".

ex : Aux échecs, le niveau 2 contient déjà 400 nœuds…

M I N

M 1 4 1

A 2 3 4

X 0 -2 7

(18)

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

Exemple de représentation arborescente d’un jeu

(19)

c) La fonction d'évaluation

Pour éviter l'explosion combinatoire, on va généralement raisonner sur un sous-arbre extrait de l'arbre de jeu. Sa racine est la position à partir de laquelle on souhaite raisonner, et sa profondeur est choisie arbitrairement et correspond souvent à un nombre de coups prédéterminés.

Conséquemment, les feuilles du sous-arbre choisit représentent rarement des positions de fin de partie. Il est donc nécessaire de leur affecter une valeur représentant l'estimation de la position à ce moment…

ex : Gain de la qualité aux échecs,…

… Cette valeur est calculée par une fonction appelée fonction d'évaluation. Les valeurs fournies par cette fonction mathématique sont aussi précises que l'on veut. Néanmoins, les moyens utilisés pour élaborer cette fonction relèvent de l'heuristique…

Lorsque la position évaluée est une position de fin de partie, la valeur retournée par la fonction d'évaluation est le résultat de la partie, du point de vue du joueur maximisant.

d) Notation

Pour plus de lisibilité, dans la suite nous allons adopter la représentation suivante : Les nœuds représentant des positions où le joueur maximisant doit jouer seront représentés par des carrés, les autres seront représentés par des cercles.

(20)

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

Exemple de représentation d’un arbre de jeu avec des carrés et des cercles représentant respectivement les positions de réflexion du joueur maximisant (MAX) et du joueur minimisant (MIN).

(21)

C. Les algorithmes

1. MINIMAX

L'algorithme minimax peut être utilisé avec la forme normale ou avec la forme extensive. Voyons ces deux applications…

a) Forme normale

Les joueurs étant prudents, ils vont chercher à minimiser leurs pertes. Ils vont donc commencer par chercher ce qui peut leur arriver de pire pour chaque stratégie (ligne/colonne), puis par choisir, parmi ces cas de figure, celui qui leur est le moins défavorable.

(1) Joueur maximisant

Le joueur maximisant prend donc, pour chaque ligne la plus petite valeur algébrique. Il choisit ensuite la stratégie (ligne) correspondant à la plus grande de ces valeurs.

Il va donc choisir le maximum parmi les minimums (max min).

(2) Joueur minimisant

De même, le joueur minimisant prend, pour chaque colonne, la plus grande valeur algébrique (ses pertes correspondent aux gains du joueur maximisant). Il choisit ensuite la stratégie (colonne) correspondant à la plus petite de ces valeurs.

Il va donc choisir le minimum parmi les maximums (min max).

(22)

Théorie des Jeux (19)

Behind Objects : Agents 19 / 64

M I N

M 2 -1 1 -1 A -2 1 -1 -2

X -2 1 -2 -2 2 -2 3 -2

2 1 3

(23)

On a ici une matrice de jeu.

Le joueur maximisant commence par calculer les pires cas pour chaque ligne (ses stratégies). Il choisit ensuite celle qui lui causera le moins de pertes : la stratégie 1, avec son résultat de -1.

Le joueur minimisant fait de même avec les colonnes (ses stratégies), mais de son point de vue, il cherche donc les plus grandes valeurs. Il choisit ensuite celle qui lui causera le moins de pertes : la stratégie 2 avec son résultat de 1.

(3) Point col

Mathématiquement, on a toujours :

max min ≤ min max

Lorsque l'on a

max min = min max

, alors on est en présence d'un point col, et réciproquement.

Le point col est aussi parfois appelé point selle.

Les deux stratégies (celle du joueur maximisant et celle du joueur minimisant) aboutissant au point col sont des stratégies dites "pures optimales".

On peut avoir plusieurs points col. Mais, dès que l'on en a un, on ne devra pas appliquer de stratégies mixtes, puisqu'aucun joueur ne pourra faire mieux.

On appelle ces stratégies "pures optimales" parcequ'on ne pourra qu'obtenir un résultat plus désavantageux en jouant autre-chose (c.f. exemple).

(24)

Théorie des Jeux (21)

On est ici en présence d’un jeu avec point col.

En effet, après avoir appliqué l’algorithme du MINIMAX, comme dans l’exemple précédent, on s’aperçoit que la valeur issue des deux stratégies optimales est la même : 2.

Si le joueur maximisant utilise les stratégies 1 ou 3, il aura un gain inférieur (1 ou 0) à celui apporté par la stratégie optimale. De même, si le joueur minimisant choisit une stratégie autre que la première, il perdra encore plus (3 ou 4 au lieu de 2).

Aucun des deux joueurs ne peut donc faire mieux que son mieux.

M I N

M 1 4 1 1

A 2 3 4 2 X 0 -2 7 -2

2 4 7

(25)

b) Forme extensive

L'algorithme du MINIMAX prend en considération le fait que l'adversaire va toujours jouer son meilleur coup. Il est donc nécessaire, pour le chaque joueur de rechercher le coup qui va lui assurer le minimum de perte (stratégie sécurisante).

Ainsi, à chaque nœud où le joueur maximisant doit prendre une décision, il va considérer la plus grande des valeurs de ses fils. Réciproquement, le joueur minimisant prendra la plus petite des valeurs de ses fils.

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

Exemple de calcul de la valeur d’un nœud en fonction des valeurs de ses fils

(26)

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

Exemple précédent, repris sur une profondeur de deux nœuds

Cette notation se fait donc en remontant l'arbre, c'est à dire des feuilles les plus éloignées jusqu'aux descendants de la racine. A ce stade, le premier joueur doit jouer le coup qui maximise la note affectée aux descendants.

L’algorithme peut ainsi être codé de deux manières différentes…

(27)

(1) MINIMAX : profondeur d’abord

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

Organigramme de MINIMAX en profondeur d’abord.

1¥ Si J est terminal, retourner V(J) = e(J), sinon : 2¥ Générer les successeurs de J : J1,J2,...,Jb.

3¥ Evaluer V(J1),...,V(Jb) de la gauche vers la droite.

4¥ J MAX  V(J) = max[V(J1),V(J2),...,V(Jb)].

5¥ J MIN  V(J) = min[V(J1),V(J2),...,V(Jb)].

(28)

(2) MINIMAX : retour en arrière

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

Organigramme de MINIMAX avec retour en arrière.

(29)

Si J est terminal, retourner V(J) = e(J), sinon:

Pour k = 1,2,...,b faire :

Générer Jk, le k-ième successeur de J.

Evaluer V(Jk).

Si k = 1, poser CV(J) = V(J1).

Autrement, pour k ≥ 2:

J MAX  CV(J) = max[CV(J),V(Jk)]

J MIN  CV(J) = min[CV(J),V(Jk)]

Retourner CV(J) = V(J).

(30)

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

Exemple d’arbre de jeu

Cet exemple sera traité pour chacun des algorithmes.

(31)

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

Exemple résolu avec l’algorithme du MINIMAX

(32)

L’algorithme du MINIMAX, qui relève de la technique du British Museum, est, bien entendu, inutilisable dans la pratique. Son principe est néanmoins repris par tous les autres algorithmes dont les améliorations consisteront principalement à introduire des méthodes d'élagage. C'est à dire que l'on va éviter d'analyser les branches de l'arbre qui ne peuvent plus influencer le résultat à un moment donné du calcul…

c) Solve

(1) Le principe de Solve

Une première amélioration de MINIMAX, lorsque l'ensemble des valeurs possibles est discret ou borné, est l'algorithme Solve. Nous le présentons ici, car une variante de cet algorithme est à la base de SCOUT.

Pour simplifier, nous allons prendre les cas où les valeurs retournées par la fonction d'évaluation sont :

Gagné.

Perdu.

Nul.

Sur cet exemple de nœud MAX, lorsqu’on évalue le deuxième fils, on trouve la valeur Gagné.

Or, c’est la plus grande valeur (la plus avantageuse pour le joueur maximisant) que l’on puisse trouver. Il est donc inutile d’aller plus loin et d’évaluer les autres fils.

Exemple d’application de SOLVE à un nœud MAX

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

(33)

Sur cet exemple de nœud MIN, lorsqu’on évalue le deuxième fils, on trouve la valeur Perdu.

Or, c’est la plus petite valeur (la plus avantageuse pour le joueur minimisant) que l’on puisse trouver. Il est donc inutile d’aller plus loin et d’évaluer les autres fils.

Exemple d’application de SOLVE à un nœud MIN

(2) L’algorithme

J terminal  Retourner sa valeur directement; sinon:

Résoudre les fils de J de gauche à droite (Appel récursif de SOLVE).

J MAX

- Victoire dès que l’on trouve un fils qui est une victoire.

- Nul si un fils est nul et aucune victoire.

- Défaite si tous les fils de J sont des défaites.

J MIN

- Défaite dès que l’on trouve un fils qui est une défaite.

- Nul si un fils est nul et aucune défaite.

- Victoire si tous les fils de J sont des victoires.

2. a-b

L'algorithme a-b peut être considéré comme une généralisation de Solve dans le cas où les valeurs retournées par la fonction d'évaluation n'ont pas de bornes connues.

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

(34)

L'idée de base est de retenir les valeurs de référence des ancêtres du nœud où l'on se trouve. Ces valeurs servent de référence, permettant ainsi de ne pas parcourir les branches inutiles car ne pouvant plus influencer la valeur MINIMAX de la racine.

On utilise pour cela, deux types de rupture:

La valeur 14 remontant vers le nœud B nous indique que, quelle que soit la valeur du nœud C, B étant un nœud MAX, il prendra au moins la valeur 14.

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

(35)

Or, le nœud A étant un nœud MIN, il prendra la plus petite valeur de ses fils. Il est donc inutile de remonter une valeur supérieure à 10.

C’est pourquoi on n’évalue pas le sous-arbre C.

Rupture non profonde

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

(36)

La valeur 5 remontant vers le nœud B nous indique que, quelle que soit la valeur du nœud D, B étant un nœud MIN, il prendra au plus la valeur 5.

Or, le nœud A étant un nœud MAX, il prendra la plus grande valeur de ses fils. Donc au moins 5.

Cette r étant à son tour minimisée par le nœud supérieur.

Puisque l'on cherche, tout en haut, une valeur supérieure à 10, il est inutile de remonter une valeur qui lui soit inférieure.

C’est pourquoi on n’évalue pas le sous-arbre D.

Rupture profonde

Les deux valeurs de référence conservée sont appelées a et b, d'où le nom de l'algorithme.

a) Limite a

La limite a est la limite inférieure de coupure pour un nœud MIN J. Il représente la valeur courante maximale de tous les ancêtres de J.

On arrête l'exploration d'un nœud J dès que la valeur courante cv vérifie :

cv ≤ a

On a donc, initialement :

a = -∞

b) Limite b

La limite b est la limite supérieure de coupure pour un nœud MAX J. Il représente la valeur courante minimale de tous les ancêtres de J.

On arrête l'exploration d'un nœud J dès que la valeur courante cv vérifie :

cv ≥ b

On a donc, initialement :

b = +∞

(37)

c) Algorithme

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

Organigramme de l'algorithme 

1• J terminal  V(J) = e(J), sinon :

Soient J1,...,Jk,...,Jb les successeurs de J, poser k=1 et, - J MAX  étape 2.

- J MIN  étape 2’.

2• Poser a = max[a,V(Jk; a b)]. 2'• Poser b = min[b,V(Jk; a b)].

(38)

3• Si a  b, retourner b, sinon continuer.

4• Si k = b, retourner a,

sinon poser k = k+1 et aller à l’étape 2.

3'• Si a  b, retourner a, sinon continuer.

4'• Si k = b, retourner b,

sinon poser k=k+1 et aller à l’étape 2’.

(39)

d) Exemple

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

Exemple résolu par l’algorithme a-b

Les nœuds sont numérotés dans l’ordre d’intervention dans un calcul

(40)

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

Exemple résolu par l’algorithme a-b . Sens de parcours de droite à gauche.

(41)

e) Conclusion

On a vu la supériorité de a-b sur MINIMAX, du point de vue du nombre de nœuds évalués : a-b ≥ MINIMAX.

De plus, a-b est l'algorithme le plus utilisé dans les applications de jeux, en partie grâce à sa consommation de mémoire linéaire. En effet, cette consommation est proportionnelle à la profondeur de l'arbre analysé, puisque l'on stocke à tout moment un couple (ab) par ancêtre du nœud local.

Bien entendu, par consommation de mémoire, on entend consommation propre à l'algorithme, et non pas la consommations due à l'arbre, celui-ci ne variant pas en fonction de l'algorithme utilisé.

3. SSS*

a) Introduction

L'algorithme SSS* est très proche, dans son principe, de a-b. En effet, le principe est le même, mais, au lieu de choisir aléatoirement les fils à évaluer, on va faire, comme pour A*, un choix en meilleur d'abord.

Afin d'effectuer ce balayage des sous-arbres en meilleur d'abord, on choisit le fils ayant le gain potentiel le plus élevé. Ce résultat est atteint grâce à une fonction qui nous fournira une information heuristique.

Il est à noter que la branche la plus rentable, au sens de l'élagage, n'est pas obligatoirement la branche ayant le moins de ramifications, ni la branche comportant la feuille-résultat (c.f. Exemple à la fin de ce chapitre).

Dans le cadre du présent document, nous allons considérer que la fonction de choix du meilleur fils renvoie toujours le fils le plus à gauche…

Ainsi, à gain équivalent, on choisira le fils de gauche (le meilleur).

Le déroulement de l'algorithme prend fin lorsque le fils de gain maximal est pleinement développé.

On peut démontrer que SSS* n'analyse aucun nœud ignoré par a-b, mais que, par contre, il peut parfois sauter des nœuds considérés par a-b.

Ainsi, au sens du nombre d'évaluations, SSS* est au moins aussi performant que a-b.

On verra, néanmoins qu'il présente tout de même des désavantages par rapport à ce dernier…

(42)

b) Le principe de SSS*

(1) Navigation

L'idée de base de l'algorithme SSS* est de toujours affiner l'évaluation de la branche la plus prometteuse. Donc celle dont la valeur courante (fils par fils) est la plus grande.

C'est pourquoi, les branches non encore évaluées se voient affecter +∞ comme valeur par défaut. En effet, jusqu'à preuve du contraire, ce sont les plus intéressantes.

A valeur équivalente, que ce soit +∞ ou non, on choisit toujours le meilleur fils (ici, le fils de gauche). L'élagage se fait sur le même principe que a-b.

Une fois trouvée une valeur significative, on la remonte aussi haut que possible avant de redescendre vers la branche la plus prometteuse pour clore un nouveau sous-arbre…

(2) Nœuds MAX

Lorsque l'on tombe sur un nœud MAX, on génère toujours tous ses fils (ne pas confondre générer et évaluer).

Par défaut, on considère que tous les fils non encore évalués sont les meilleurs. Ils sont donc initialisés à +∞.

Les fils ayant tous la même valeur, on commence par évaluer le fils de gauche (le meilleur).

Départ de SSS* pour un nœud MAX

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

(43)

Lorsqu'on remonte une valeur vers un nœud MAX, on redescend vers son fils de valeur la plus importante. Donc, le cas échéant, vers son fils non-évalué, le plus à gauche.

SSS* : Nœud MAX ayant des fils non évalués

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

(44)

Lorsqu'on redescend, on suit toujours la branche portant les valeurs maximales trouvées, pour enfin évaluer un nouveau fils du nœud non clos (dont des fils non encore évalués peuvent encore faire changer la valeur) le plus profond.

SSS* : Descente vers un nœud MAX

(3) Nœud MIN

Lorsque l'on commence à évaluer un nœud MIN, on ne génère que son fils gauche (le meilleur), avant de l'évaluer. Les autres fils ne seront générés puis évalués que s'ils peuvent influer sur le résultat.

Comme pour les nœuds MAX, la valeur par défaut d'un fils, en attendant son évaluation, est +∞.

SSS* : Nœud MIN sans fils évalués

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

(45)

Lorsque l'on redescend sur un nœud min dont tous les fils ne sont pas encore évalués, il est nécessaire d'évaluer le suivant afin de déterminer si la valeur du sous-arbre va être modifiée.

On prend donc le meilleur (le plus à gauche) fils non encore évalué.

SSS* : Nœud MIN en cours d'évaluation

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

10 15 8

8 ?

évalué pour vérifier

la valeur du sous-arbre: = 8?

(46)

Comme sur un nœud MAX, lorsque l'on redescend vers un nœud MIN, on suit les branches de plus grande valeur afin de confirmer ou d'infirmer, par l'évaluation de nouveaux fils, la valeur du sous-arbre considéré.

SSS* : Descente vers un nœud MIN

(47)

c) Algorithme

EVAL(J)

OUVERT =((e, NR, + ))  Supprimer p=(J, s, h)

avec h maximal

J = e & s = R V(e) = h

oui

Développer l'état p

non

R = Résolu

NR = Non Résolu e = Racine

s = Etat actuel (variable) h = mérite

SSS* : Organigramme

(48)

Développement de p p = (J, s, h)

s = NR J Terminal

oui

ajouter à OUVERT:

(J,R,min(h,v(J)))

oui

MAX J=J'.j

non

ajouter à OUVERT:

(J', s, h)

Eliminer les fils de J' dans OUVERT

non

J MAX

non

ajouter à OUVERT:

((J.1,s,h)…(J.b,s,h))

oui

ajouter à OUVERT:

(J.1, s, h)

non

j=b

oui

ajouter à OUVERT:

(J', s, h)

oui

ajouter à OUVERT:

(J'.j+1,NR,h)

non

SSS* : Développement d'un état p

(49)

1¥ Placer l’état de départ (J=e, s=Non Résolu, h=+∞) dans OUVERT.

2¥ Supprimer le 1er état p = (J, s, h) de OUVERT.

h maximal

3¥ Si J = e (ex: J racine) et s = Résolu : retourner h.

un arbre solution a été entièrement développé sinon continuer.

4¥ Développer p.

en appliquant l’opérateur d’espace d’état  (c.f: table d’action de ) Aller à l’étape 2.

S J

R N R M

A X

M I N

T E R

Ajouter en tête de OUVERT…

X X (J.j,s,h) où j = 1,2,...,b, par ordre croissant de j.

X X (J.1,s,h).

X X Placer (J,Résolu,min(h,v(J))) en tête des états de moindre mérite h

1

.

X X jb (J’.j+1,Non Résolu,h).

X X j=b (J’,s,h) avec J = J’.j.

X X (J’,s,h) avec J = J’.j. Enlever tous les états correspondant aux fils de J’.

1 v = fonction d’évaluation statique à valeurs réelles.

Les liens seront résolus en faveur des noeuds de valeur lexicographique moindre (les plus à gauche).

(50)

R = Résolu NR = Non Résolu Ter = Nœud Terminal.

(51)

d) Exemple

Afin de démontrer l'importance du sens de parcours de l'arbre (choix du meilleur nœud), l'exemple a été résolu en prenant le meilleur nœud à gauche, puis à droite…

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

SSS* : Exemple résolu avec meilleur à gauche.

(52)

1

4 3 2

18 9 14 50 30 62 19 33 2 1 31 3 17 28 20 25 11

6 95 4

Sens de parcours

SSS* : Exemple résolu avec meilleur à droite.

(53)

e) Conclusion

La technique d'élagage en meilleur d'abord de SSS* le rend supérieur à a-b, au point de vue du nombre de nœuds analysés :

SSS* ≥ a-b ≥ MINIMAX

Néanmoins, la consommation de mémoire de cet algorithme est exponentielle. En effet, il est parfois nécessaire de conserver les valeurs de tous les fils d'un nœud… Ceci rend cet algorithme souvent impraticable.

De plus, la supériorité de cet algorithme sur a-b est entièrement dépendante de la performance du choix du meilleur nœud.

4. SCOUT

Créé par Pearl, en 1980, l'algorithme SCOUT était à l'origine un simple outil théorique destiné à déterminer l'existence d'un stratégie asymptotiquement optimale. Ce n'est que plus tard que l'on s'est aperçu que ses performances en faisaient un algorithme utilisable, voire, dans certains cas, un concurrent sérieux de a-b.

Cet algorithme combine l'évaluation et l'utilisation de tests préliminaires. En effet, on évalue une branche à l'aide de MINIMAX, sa valeur servant de référence à TEST, une variante de SOLVE, pour déterminer si les branches suivantes peuvent être meilleures, auquel cas on les évalue à leur tour avec MINIMAX…

a) TEST

L'algorithme TEST prend une valeur de référence, fournie par l'évaluation d'une branche précédente, et utilise le principe de SOLVE pour rapidement explorer une branche en profondeur afin de savoir si elle aura une valeur MINIMAX supérieure à la valeur de référence. Il retourne donc VRAI ou FAUX.

(54)

(1) Nœud MIN

La valeur de référence est 15, dès que TEST rencontre un fils de nœud MIN inférieur ou égal à 15, il sait que ce nœud sera au plus égal à valeur de ce fils

(ici : 7), il retourne donc FAUX.

TEST : Nœud MIN avec fils inférieur à la valeur de référence.

15

7 101 3

faux

(55)

Ici, la valeur de référence est encore 15.

Néanmoins, TEST n'ayant pas trouvés de fils du nœud MIN inférieur à cette valeur, il retourne VRAI.

Si toute la branche retourne VRAI, MINIMAX reviendra alors déterminer sa valeur avec précision.

TEST : Nœud MIN sans fils inférieur à la valeur de référence.

15

16 25 17

vrai

(56)

(2) Nœud MAX

TEST compare un par un les fils du nœud MAX à la valeur de référence qui est 15.

Dès qu'il en rencontre un dont la valeur est supérieure à cette référence, il sait que le nœud MAX sera au moins égal à cette valeur, donc supérieur à 15.

TEST peut donc immédiatement retourner VRAI.

TEST : Nœud MAX avec un fils supérieur à la valeur de référence.

15

7 101 3

vrai

(57)

TEST compare un par un les fils du nœud MAX à la valeur de référence qui est 15.

Puisqu'il n'a trouvé aucun fils supérieur à cette valeur, TEST sait que le nœud MAX sera au plus égal à 15.

Cette valeur n'étant pas déterminante, TEST retourne FAUX.

TEST : Nœud MAX sans fils supérieur à la valeur de référence.

15

14 15 5

faux

(58)

(3) Procédure TEST(J, v, >)

EVAL (J)

Générer les fils de J: J1, J2,...,Jb v = MINIMAX(J1)

k = 2 J MAX

TEST(Jk,v,>) TEST(Jk,v, ) 

oui non

j=b

retour de v sortie

oui

v = MINIMAX(Jk)

faux: V(Jk)Šv vrai: V(Jk) v

vrai:

V(Jk)>v

faux:

V(Jk)<v

k = k+1

non

TEST : Organigramme

(59)

Pour tester si J satisfait à V(J) > v procéder comme suit:

J terminal, retourner VRAI si e(J) ≤ v, retourner FAUX si e(J) > v, autrement Tester les fils de J de la gauche vers la droite.

J MAX

VRAI dès que l’on trouve un fils plus grand que v.

FAUX si tous les fils de J sont inférieurs ou égaux à v.

J MIN

FAUX dès qu’on trouve un fils inférieur ou égal à v.

VRAI si tous les fils de J sont supérieurs à v.

(60)

b) Exemple

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

SCOUT : Exemple résolu.

Seul le premier passage par un nœud est indiqué.

(61)

Utilisez Word 6.0c (ou ultŽrieur)

pour afficher une image Macintosh.

SCOUT : Exemple résolu.

On a parcouru les branches de droite gauche au niveau 1 seulement.

(62)

c) Conclusion

En profondeur, c'est à dire sur des jeux ayant peu de coups possibles, on a SCOUT ≥ a-b.

En largeur, c'est à dire sur des jeux avec beaucoup de coups possibles, on a SCOUT ≤ a-b.

On peut démontrer que SCOUT est asymptotiquement optimal.

Tel qu'il a été présenté ici, SCOUT peut être énormément amélioré. En effet, on voit bien qu'il serait possible de ne pas repasser entièrement sur les branches ayant été testées si on remontait un peu plus d'information que VRAI ou FAUX…

De plus, on pourrait envisager de ne pas utiliser MINIMAX, mais plutôt a-b ou même SSS*. Un choix judicieux pourrait permettre d'évaluer les branches dans un ordre efficace.

d'autant plus, que si les branches sont classées en ordre croissant, SCOUT devient plus lourd que MINIMAX!!!!

D. Conclusion

La théorie des jeux met à jour, par son analyse, ses propres limitations. Par exemple la détermination d'un point col pour un jeu rend ce jeu injouable de par sa prédétermination : aucun joueur ne peut faire mieux que de son mieux. Dès que ce mieux est connu, jouer le jeu devient inutile. Cependant la limitation fondamentale de la théorie des jeux réside dans la numérisation des résultats. En effet, ce mode de représentation n’est pas applicable et il serait préférable de ne considérer que les contextes.

En résumé, deux questions fondamentales doivent toujours être posées au sujet de n’importe quel jeu :

- comment devrait agir les joueurs?

- quel devrait être le résulta final du jeu?

La réponse à l’une de ces questions (ou aux deux) constitue ce que l’on appelle la solution du jeu. Ces questions en amènent d’autres telles que :

- quel est le pouvoir d’un joueur? C’est à dire dans quel mesure un individu peut il déterminer le résultat d’un jeu.

-quel paiement minimum peut recevoir un joueur en ne comptant que sur ses propres ressources, s’il ne reçoit pas d’aide des autres? Et dans quelle mesure est-il raisonnable de penser que les autres joueurs seront résolument hostiles?

On imagine alors la difficulté de la réponse à la question posée. Il est bien entendu nécessaire de connaître les règles du jeu; entre autres :

- quelles sont les capacités de communication des joueurs?

- ceux-ci peuvent ils ou non conclurent des obligations contraignantes?

- les récompenses obtenues doivent elles être partagées avec les autres joueurs?

(63)

- quelle information est à la disposition des joueurs?

Mais d’autre part des critères beaucoup plus subjectifs entre en ligne de compte tels que :

- la personnalité des joueurs, - leurs préférences subjectives,

- les normes établies de la société (c’est à dire ce que les joueurs croient être un résultat satisfaisant).

Références

Documents relatifs

L’enquête révèle que 55 % des élèves sont favorables à une pause plus longue le midi et parmi ceux qui souhaitent une pause plus longue, 95 % sont pour une répartition des cours

2- Donnez la forme stratégique du jeu correspondant à chacun des types du joueur 2 (dans les deux cas, il vous faut calculer les paiements associés à chacune des stratégies à

Cette première étude réalisée en 2000/2001 définissait le cadre général des besoins en spectre pour le service fixe terrestre en prenant en compte les faisceaux hertziens

[r]

La règle imposée par le club empêche qu'un cadeau envoyé soit déjà passé par les mains du

Associer quantité , constellation de dé et

Montrons que c’est un losange , c'est-à-dire que deux côtés consécutifs sont

Donc les droites (AC) et (BD)