les algorithmes de jeux

138
LES ALGORITHMES DE JEUX MOHAMED HENY SELMI E COLE S UPÉRIEURE PR IVÉE D' I NGÉNIERIE ET DE T ECHNOLOGIES [email protected] Mohamed Heny Selmi © ESPRIT

Upload: mohamed-heny-selmi

Post on 18-Jun-2015

820 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Les algorithmes de jeux

LES

ALGORITHMES DE

JEUX

MOHAMED HENY SELMI

ECOLE SUPÉRIEURE PR IVÉE D 'INGÉNIERIE ET DE TECHNOLOGIES

[email protected] Mohamed Heny Selmi © ESPRIT

Page 2: Les algorithmes de jeux

HISTORIQUE

Le domaine de jeux est très spécifiable(au sens génie logiciel)

Les règles sont généralement simples

Les interactions avec le monde extérieur sont nulles

aisément accessibles en apparence à un programme

Les informaticiens pensaient(décennie60-70) que la puissance des calculs dans un environnement clos devrait donner un avantage à la machine, or les choses ne passaient pas aussi facilement!

Mohamed Heny Selmi © ESPRIT

Page 3: Les algorithmes de jeux

TYPE DE JEUX EN IA

Les jeux simples où une analyse exhaustive est possible

Des jeux plus complexes (dames ou échecs)

des algorithmes spécifiques

des méthodes heuristiques de recherche

Des jeux à information partielle (bridge, poker)

Des raisonnements de type probabiliste

Mohamed Heny Selmi © ESPRIT

Page 4: Les algorithmes de jeux

JEUX ET MÉTHODES

DE RECHERCHE

Les jeux à deux joueurs et à informations complètes utilisent des techniques semblables à la représentation par graphe d’états

• On utilise des systèmes de production pour générer les états

• Les nœuds d’un arbre de jeux : les configurations du damier

• Les branches : le passage d’une situation de jeu à un autre

Un arbre du jeu représente le déplacement de deux adversaires

Un arbre d’espace de recherche représente le déplacement d’un agent de résolution de problème (ou planificateur)

Mohamed Heny Selmi © ESPRIT

Page 5: Les algorithmes de jeux

BESOIN D’ALGORITHME

DE RECHERCHE

Du fait de la présence de deux joueurs ayant des objectifs antagonistes, la recherche dans ces arbres ne peut se faire en utilisant des algorithmes de recherche de type A*

Contrairement aux systèmes de résolution de problèmes (GPS), le planificateur ne dispose pas de la maitrise complète de l’enchainement des opérateurs, puisque des décisions extérieures à lui sont prises (par l’adversaire)

Il est impossible, dans la plupart des jeux de générer l’ensemble de l’espace d’état

Un arbre de jeu pour les dames (plus difficiles que le Morpion, moins difficile que l’échec) est estimé à10 expo 40 nœuds

Si ces nœuds étaient produits à une cadence de 3milliards/s alors la construction entière prendrait près de 1021 siècles

Mohamed Heny Selmi © ESPRIT

Page 6: Les algorithmes de jeux

STRATÉGIE SPÉCIFIQUE

AUX JEUX

Il n’existe aucun moyen infaillible d’ordonner les éléments d’un ensemble de situations possibles sur un damier

aucune formule permettant d’ordonner ne peut être calculée

Si ce moyen existait on pourrait choisir le coup conduisant à la meilleur situation possible à l’issue d’un coup unique

On peut utiliser un algorithme de recherche

La décompte des pièces peut être un facteur de choix pour le jeu de dames, mais cette mesure donne en général de mauvais résultats

Une autre stratégie est nécessaire

Mohamed Heny Selmi © ESPRIT

Page 7: Les algorithmes de jeux

PRINCIPE D’UNE

STRATÉGIE SPÉCIFIQUE

A partir d’une position (état) donnée, on génère l’ensemble des positions qu’on peut atteindre en jouant un coup (niv. de profondeur1)

A partir de chacune des positions de niveau1, on génère l’ensemble des positions que l’adversaire peut atteindre (niv. de profondeur2)

On peut recommencer l’opération aussi longtemps que le permet la puissance de calcul (générer niveaux 3,4,5…n)

L’arbre complet représente toutes les possibilités du jeu. On construit ainsi l’arbre de l’EE du Pb

l’arbre du graphe d’états du Pb représente une partie possible du jeu

Mohamed Heny Selmi © ESPRIT

Page 8: Les algorithmes de jeux

PRINCIPE D’UNE

STRATÉGIE SPÉCIFIQUE

L’analyse d’une situation ne soit entreprise qu’après développement du jeu sur plusieurs niveaux de coups et de réponses

Si le développement se termine à une profondeur raisonnable, on peut comparer les situations terminales et déduire une option pour le coup suivant

On doit limiter l’exploration à une profondeur maximale de résolution

À cette profondeur on attribue aux (pseudo) feuilles une valeur correspondante à l’estimation de la position à travers une fonction d’évaluation

Mohamed Heny Selmi © ESPRIT

Page 9: Les algorithmes de jeux

MINIMAX

Mohamed Heny Selmi © ESPRIT

Page 10: Les algorithmes de jeux

PRINCIPE

Cette estimation peut se faire du point de vue d’un joueur fixe

• il doit à partir du niveau0 (racine)

• jouer le coup de niveau1 qui lui garantit le gain maximal contre toute

défense de son adversaire

• il suppose que son adversaire utilise aussi une stratégie optimale; jouer le

coup de niveau2 qui minimise son gain (le mettre dans la + grande difficulté)

• jouer le coup de niveau3 qui lui garantit le gain maximal, etc.

Mohamed Heny Selmi © ESPRIT

Page 11: Les algorithmes de jeux

PROPRIÉTÉS

Chaque joueur à une information explicite sur la position de son adversaire (jeu de dames, jeu d’échec, allumettes, etc.) y comprisses choix et mouvements possibles

2 joueurs effectuent alternativement un déplacement ou une opération, aucun élément n’est laissé au hasard

A chaque tour, les règles de jeu définissent:

• Quels mouvements sont acceptés

• Effets de chaque mouvement possible

Choisir parmi les fils, le « meilleur » coup à jouer, c.-à-d. anticiper sur des situations (pas de calcul à court terme, calcul des coups en avant)

Mohamed Heny Selmi © ESPRIT

Page 12: Les algorithmes de jeux

PROPRIÉTÉS

Le joueur commence par une configuration initiale de pions

Finir par une victoire, une défaite ou un abandon (états finaux)

Le nœud racine est l’état initial au quel c’est au tour du premier joueur d’effectuer un déplacement, ses successeurs sont les états atteints par ce joueur, leurs successeurs sont les états résultants des réponses possibles de l’adversaire, etc.

Chaque chemin de la racine au nœud terminal représente une partie complète et possible du jeu

Mohamed Heny Selmi © ESPRIT

Page 13: Les algorithmes de jeux

LA STRATÉGIE

la stratégie MinMax : exploration en profondeur limitée

2 joueurs O(ordinateur) et H(adversaire) : illustration de la def. de l’IA

Une fonction h évalue la qualité d’une pos. terminale du pt de vue O

A chaque niveau où O a la main, il choisira le coup de valeur maximale pour

lui (on parle de joueur ou nœud Max)

A chaque niveau où H a la main, O suppose que son adversaire H essaie de

le mettre dans la plus grande difficulté et choisit donc le coup de valeur

minimale pour O; minimiser son gain, (joueur ou nœud Min)

Mohamed Heny Selmi © ESPRIT

Page 14: Les algorithmes de jeux

OBJECTIFS

Évaluations numériques des appréciations sur les situations du jeu aux pseudo-feuilles d’un arbre de jeu partiellement développée

Un de deux joueurs (la machine) cherche à conserver les plus grands nombres qui correspondent à son avantage, tandis que son adversaire cherche à avoir les plus petits

Mohamed Heny Selmi © ESPRIT

Page 15: Les algorithmes de jeux

EXEMPLE

Les feuilles indiquent au processus MIN qu’il peut envisager des scores de 2 à 1

Connaissant ces scores, le processus MAX se déplace vers le branchement à partir du quelle le processus MIN ne pourra pas faire mieux que d’abaisser le score à 2

Le processus MAX espère arriver à la situation donnant le score8, mais il sait que le processus MIN ne le permettra pas. Ce dernier peut choisir un coup conduisant à 1

Mohamed Heny Selmi © ESPRIT

Page 16: Les algorithmes de jeux

PRINCIPE ALGORITHMIQUE

DE MINIMAX

Function MINMAX-DECISION(state) returns an action

v MAX-VALUE(state)

return the action in SUCCESSORS(state) with value v

Function MAX-VALUE (state) returns a utility value

if TERMINAL-TEST (state) then return UTILITY (state)

v - ∞

for s in SUCCESSORS (state) do

v MAX(v, MIN-VALUE (s) )

return v

Function MIN-VALUE (state) returns a utility value

if TERMINAL-TEST (state) then return UTILITY (state)

v + ∞

for s in SUCCESSORS (state) do

v MIN(v, MAX-VALUE (s) )

return v

Mohamed Heny Selmi © ESPRIT

Page 17: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

APPLICATION

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = - ∞

v = - ∞

v = + ∞

Mohamed Heny Selmi © ESPRIT

Page 18: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = - 3

v = - ∞

v = + ∞

Mohamed Heny Selmi © ESPRIT

Page 19: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = - ∞

v = + ∞

Mohamed Heny Selmi © ESPRIT

Page 20: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = - ∞

v = + ∞

Mohamed Heny Selmi © ESPRIT

Page 21: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = - ∞

v = 15

v = - ∞

Mohamed Heny Selmi © ESPRIT

Page 22: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = - ∞

v = 15

v = - 10

Mohamed Heny Selmi © ESPRIT

Page 23: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = - ∞

v = 15

v = 3

Mohamed Heny Selmi © ESPRIT

Page 24: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = - ∞

v = 3

v = 3

Mohamed Heny Selmi © ESPRIT

Page 25: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 3

v = 3

v = 3

Mohamed Heny Selmi © ESPRIT

Page 26: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 3

v = 3

v = 3

v = + ∞

v = - ∞

Mohamed Heny Selmi © ESPRIT

Page 27: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 3

v = 3

v = 3

v = + ∞

v = 4

Mohamed Heny Selmi © ESPRIT

Page 28: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 3

v = 3

v = 3

v = + ∞

v = 6

Mohamed Heny Selmi © ESPRIT

Page 29: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 3

v = 3

v = 3

v = 6

v = 6

Mohamed Heny Selmi © ESPRIT

Page 30: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 3

v = 3

v = 3

v = 6

v = 6

v = - ∞

Mohamed Heny Selmi © ESPRIT

Page 31: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 3

v = 3

v = 3

v = 6

v = 6

v = -7

Mohamed Heny Selmi © ESPRIT

Page 32: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 3

v = 3

v = 3

v = 6

v = 6

v = 12

Mohamed Heny Selmi © ESPRIT

Page 33: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 3

v = 3

v = 3

v = 6

v = 6

v = 12

Mohamed Heny Selmi © ESPRIT

Page 34: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 6

v = 3

v = 3

v = 6

v = 6

v = 12

Mohamed Heny Selmi © ESPRIT

Page 35: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 6

v = 3

v = 3

v = 6

v = 6

v = 12

v = + ∞

v = - ∞

Mohamed Heny Selmi © ESPRIT

Page 36: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 6

v = 3

v = 3

v = 6

v = 6

v = 12

v = + ∞

v = 4

Mohamed Heny Selmi © ESPRIT

Page 37: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 6

v = 3

v = 3

v = 6

v = 6

v = 12

v = + ∞

v = 8

Mohamed Heny Selmi © ESPRIT

Page 38: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 6

v = 3

v = 3

v = 6

v = 6

v = 12

v = 8

v = 8 v = - ∞

Mohamed Heny Selmi © ESPRIT

Page 39: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 6

v = 3

v = 3

v = 6

v = 6

v = 12

v = 8

v = 8 v = 20

Mohamed Heny Selmi © ESPRIT

Page 40: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 6

v = 3

v = 3

v = 6

v = 6

v = 12

v = 8

v = 8 v = 20

Mohamed Heny Selmi © ESPRIT

Page 41: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 6

v = 3

v = 3

v = 6

v = 6

v = 12

v = 8

v = 8 v = 30

Mohamed Heny Selmi © ESPRIT

Page 42: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 6

v = 3

v = 3

v = 6

v = 6

v = 12

v = 8

v = 8 v = 30

v = - ∞

Mohamed Heny Selmi © ESPRIT

Page 43: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 6

v = 3

v = 3

v = 6

v = 6

v = 12

v = 8

v = 8 v = 30

v = 20

Mohamed Heny Selmi © ESPRIT

Page 44: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 6

v = 3

v = 3

v = 6

v = 6

v = 12

v = 8

v = 8 v = 30

v = 20

Mohamed Heny Selmi © ESPRIT

Page 45: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 6

v = 3

v = 3

v = 6

v = 6

v = 12

v = 8

v = 8 v = 30

v = 20

Mohamed Heny Selmi © ESPRIT

Page 46: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 8

v = 3

v = 3

v = 6

v = 6

v = 12

v = 8

v = 8 v = 30

v = 20

Mohamed Heny Selmi © ESPRIT

Page 47: Les algorithmes de jeux

15 -3 -5 -10 3 4 6 -7 12 4 8 12 30 20 10 20

L M N S R Q O P X V U T Z A’ Y W

J K I

E H G F

B C

D

A Max

Max

Min

v = 15

v = 8

v = 3

v = 3

v = 6

v = 6

v = 12

v = 8

v = 8 v = 30

v = 20

Mohamed Heny Selmi © ESPRIT

Page 48: Les algorithmes de jeux

APPLICATION

TIC-TAC-TOE

On dispose de deux processus adversaires

Un processus MIN

Un processus MAX

Mohamed Heny Selmi © ESPRIT

Page 49: Les algorithmes de jeux

ARBRE DU JEUX

MAX

MIN

Etat final (victoire de MAX)

Ici, on néglige les états “sysmétriques” afin de réduire la taille de l’arbre

Nœuds MIN

Nœuds MAX

Mohamed Heny Selmi © ESPRIT

Page 50: Les algorithmes de jeux

INDICATIONS

PRATIQUES

On prend la convention suivante :

• une situation gagnante pour le joueur MAX vaut + valeur

• une situation perdante pour le joueur MIN vaut - valeur

• une situation nulle vaut 0

Le MinMax assigne une valeur à chaque feuille, puis fait remonter ces valeurs avec l'hypothèse que chaque joueur choisit le meilleur coup pour lui. Cela signifie en pratique que:

• MAX choisit le coup amenant à l'état de plus grande valeur

• MIN choisit le coup amenant à l'état de plus petite valeur

Mohamed Heny Selmi © ESPRIT

Page 51: Les algorithmes de jeux

INDICATIONS

PRATIQUES

Le MinMax parcourt un arbre de configurations (graphe d’états)

Lorsqu‘il arrive à une feuille de l'arbre, il utilise la fonction d'évaluation pour donner une valeur à la configuration

Pour les nœuds qui ne sont pas des feuilles, il utilise

• soit le minimum des valeurs des fils si le nœud représente le choix de l'adversaire (c'est donc un nœud Min)

• soit le maximum des valeurs des fils si le nœud représente le choix du joueur MAX (c'est donc un nœud Max)

Mohamed Heny Selmi © ESPRIT

Page 52: Les algorithmes de jeux

INDICATIONS

PRATIQUES

Dans un programme de jeu, une classe Joueur possède un membre : joueurCourant

La classe joueur Courant représente le type du Joueur pour pouvoir calibrer correctement la fonction d'évaluation

Si dans le jeu de Morpion, la classe joueurcourant joue X et que les X gagnent, alors la fonction devrait rendre +1

Si le type de la classe joueurCourant est O mais c'est toujours les X qui gagnent alors on devrait obtenir -1

On utilise le MinMax avec une profondeur bornée

• On interrompt l'exploration avant d'avoir atteint la fin de partie

• On évalue l'état du jeu à un instant quelconque

• On utilise une heuristique h(e,J) qui évalue la configuration (l’état) e pour le joueur J

• Il existe plusieurs heuristiques pour un même jeu (influencent la stratégie de jeu)

Mohamed Heny Selmi © ESPRIT

Page 53: Les algorithmes de jeux

IDEE DE BASE :

CHOISIR UNE ACTION

i. En considérant chaque état actuel comme étant état initial,

on construit pour chaque processus actif (MAX ou MIN) l’arbre

du jeu avec une profondeur maximale h (horizon) afin de limiter

le temps d’exécution

ii. Evaluer les états « nœud fils »

iii. Appliquer le principe du MINMAX

Mohamed Heny Selmi © ESPRIT

Page 54: Les algorithmes de jeux

FONCTION

D’ÉVALUATION

On associe à chaque nœud S un nombre e(S)

e(S) est une heuristique qui estime à quel point S est favorable pour le processus MAX

e(S) > 0 : S est favorable pour MAX

e(S) < 0 : S est favorable pour MIN

e(S) = 0 : S est neutre

Mohamed Heny Selmi © ESPRIT

Page 55: Les algorithmes de jeux

EXEMPLE DE FONCTION

D’ÉVALUATION

e(S) = nombre des colonnes, lignes ou diagonales ouverts

pour le processus MAX - nombre des colonnes, lignes ou

diagonales ouverts pour le processus MIN

8X 8O= 0 (3+3+2)

6X 4O = 2 3X 3O = 0

Mohamed Heny Selmi © ESPRIT

Page 56: Les algorithmes de jeux

UTILITÉ DE LA SAUVEGARDE

DES VALEURS

Minmax permet d’obtenir la meilleure évaluation d’une cellule qu’on peut obtenir en supposant que MIN va jouer son meilleur coup

La valeur de minmax obtenue au niveau d’une cellule non-feuille sera meilleure à la valeur obtenue en appliquant directement la fonction d’évaluation e

Mohamed Heny Selmi © ESPRIT

Page 57: Les algorithmes de jeux

EXERCICE

Jeu d’allumettes : Il y a 9 allumettes, deux joueurs retirent à tour de rôle trois ou deux ou une allumette au choix, celui qui retire les dernières allumettes perd

1. Proposer une fonction d’évaluation heuristique e(s)

2. Sachant que la profondeur maximale d’évaluation est limitée à deux, donner l’arbre de jeux reflétant lepoint de vue du 1er joueur

3. Donner l’arbre de jeu représentant le point de vue du 2ème joueur après que le premier joueur ait joué son meilleur coup

4. Représenter une partie complète du jeu, du point de vue A puis B

Mohamed Heny Selmi © ESPRIT

Page 58: Les algorithmes de jeux

EXERCICE :

INDICATION

x c’est le nombre d’allumettes restantes

Si e(x)= -1, le joueur est perdant. Avec 9 allumettes, le premier joueur va perdre quelque soit son mouvement.

Mohamed Heny Selmi © ESPRIT

Page 59: Les algorithmes de jeux

PEUT-ON FAIRE MIEUX ?

3

-1

inutile

-1

3

Cette branche de l'arbre ne peut pas avoir d'effet sur la valeur qui sera sauvegardée(soutenue) à la racine Mohamed Heny Selmi © ESPRIT

Page 60: Les algorithmes de jeux

APERÇU GÉNÉRAL DE

L’AMÉLIOARATION

Mohamed Heny Selmi © ESPRIT

Page 61: Les algorithmes de jeux

= 2

2

La valeur beta de MIN est supérieur à la valeur finale sauvegardée : elle ne peut jamais augmenter

APERÇU GÉNÉRAL DE

L’AMÉLIOARATION

Mohamed Heny Selmi © ESPRIT

Page 62: Les algorithmes de jeux

1

= 1

2

APERÇU GÉNÉRAL DE

L’AMÉLIOARATION

La valeur beta de MIN est supérieur à la valeur finale sauvegardée : elle ne peut jamais augmenter

Mohamed Heny Selmi © ESPRIT

Page 63: Les algorithmes de jeux

= 1

La valeur alpha de MAX est inférieur à la valeur finale sauvegardée Elle ne peut jamais diminuer

1

= 1

2

APERÇU GÉNÉRAL DE

L’AMÉLIOARATION

Mohamed Heny Selmi © ESPRIT

Page 64: Les algorithmes de jeux

= 1

1

= 1

2 -1

= -1

APERÇU GÉNÉRAL DE

L’AMÉLIOARATION

Mohamed Heny Selmi © ESPRIT

Page 65: Les algorithmes de jeux

= 1

1

= 1

2 -1

= -1

La recherche peut être cessée au-dessous de n'importe quel noeud de MIN dont la valeur bêta est moins qu'ou égale à la valeur alpha d'un de ses ancêtres de MAX

APERÇU GÉNÉRAL DE

L’AMÉLIOARATION

Mohamed Heny Selmi © ESPRIT

Page 66: Les algorithmes de jeux

ALPHA-BÊTA

Mohamed Heny Selmi © ESPRIT

Page 67: Les algorithmes de jeux

PRINCIPE DE L’ALGORITHME

ALPHA-BÊTA

L’algorithmeα-β élague une partie de l’arbre du jeu. Il s’agit d’une

procédure qui se charge de réduire le nombre de branches de l’arbre à

développer à celui d’évaluation nécessaires

L’idée ressemble plus au moins à celle de la recherche heuristique dans

le sens où l’on déterminera que certains chemins sont mauvais, sans

qu’on ait à les suivre jusqu’à la limite de prévision

Mohamed Heny Selmi © ESPRIT

Page 68: Les algorithmes de jeux

L’algorithme MinMax a déjà parcouru les 2 premières branches et va s’engager dans la 3ème branche

Durant l’exploration de la 3ème branche, on évalue la 1ère feuille, qui retourne une valeur de 1, son père Min, ne va pas pouvoir dépasser la valeur 1, ceci les valeurs des deux fils inexplorés

Le joueur Max à la racine a garantit une valeur égale à 3 (un de ses fils a déjà été évalué à 3)

Comme le maximiseur sait qu‘il est assuré d’un score de 3 en passant par la branche du milieu, tout ce qu’il a besoin de savoir sur la branche droite est qu’il ne peut pas espérer obtenir un score supérieur à 1 en la prenant

Pour modifier la valeur de la racine (le coup à jouer) il faudrait que ce nœud dépasse la valeur 3

Les deux feuilles restantes sont inintéressantes et ne seront pas explorées par α-β

PRINCIPE DE L’ALGORITHME

ALPHA-BÊTA

Mohamed Heny Selmi © ESPRIT

Page 69: Les algorithmes de jeux

L’α-β détermine la valeur MinMax de la racine de l’arbre de jeu en traversant l’arbre dans un ordre prédéterminé (de gche à dte) sautant tous les nœuds qui ne peuvent plus influencer la valeur MinMax de la racine

La stratégie α-β nécessite l’entretien de 2 valeurs :

Une borne inf. sur la valeur qu’un nœud maximisant peut se voir attribuer (α)

Une borne sup. sur la valeur qu’un nœud minimisant peut se voir attribuer(β)

PRINCIPE DE L’ALGORITHME

ALPHA-BÊTA

Mohamed Heny Selmi © ESPRIT

Page 70: Les algorithmes de jeux

Le seuil α pour un nœud MIN « n » est égal à la +grande valeur (connue) de tous les nœuds MAX ancêtres de « n ». Si « n » atteint une valeur < à α, l’exploration de sa descendance devient inutile

Le seuil β pour un nœud MAX « n » est égale à la +petite valeur (connue) de tous les nœuds MIN ancêtres de « n ». Si « n » atteint une valeur > à β, l’exploration de sa descendance devient inutile

PRINCIPE DE L’ALGORITHME

ALPHA-BÊTA

Les nœuds sautés se trouvant à un niveau MAX (resp.MIN), sont appelés des nœuds élagués par une coupure α(resp. β).

Mohamed Heny Selmi © ESPRIT

Page 71: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

Mohamed Heny Selmi © ESPRIT

Page 72: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

Mohamed Heny Selmi © ESPRIT

Page 73: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

Mohamed Heny Selmi © ESPRIT

Page 74: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0 -3

Mohamed Heny Selmi © ESPRIT

Page 75: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0 -3

Mohamed Heny Selmi © ESPRIT

Page 76: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0 -3

Mohamed Heny Selmi © ESPRIT

Page 77: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0 -3 3

3

Mohamed Heny Selmi © ESPRIT

Page 78: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0 -3 3

3

Mohamed Heny Selmi © ESPRIT

Page 79: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

Mohamed Heny Selmi © ESPRIT

Page 80: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

5

Mohamed Heny Selmi © ESPRIT

Page 81: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

Mohamed Heny Selmi © ESPRIT

Page 82: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

Mohamed Heny Selmi © ESPRIT

Page 83: Les algorithmes de jeux

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

EXEMPLE

Mohamed Heny Selmi © ESPRIT

Page 84: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

Mohamed Heny Selmi © ESPRIT

Page 85: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

0

Mohamed Heny Selmi © ESPRIT

Page 86: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

5

0

Mohamed Heny Selmi © ESPRIT

Page 87: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

1

1

0

Mohamed Heny Selmi © ESPRIT

Page 88: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

1

1

-3

0

Mohamed Heny Selmi © ESPRIT

Page 89: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

1

1

-3

0

Mohamed Heny Selmi © ESPRIT

Page 90: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

1

1

-3

1

1

0

Mohamed Heny Selmi © ESPRIT

Page 91: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

1

1

-3

1

1

-5

0

Mohamed Heny Selmi © ESPRIT

Page 92: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

1

1

-3

1

1

-5

0

Mohamed Heny Selmi © ESPRIT

Page 93: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

1

1

-3

1

1

-5

-5

-5

0

Mohamed Heny Selmi © ESPRIT

Page 94: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

1

1

-3

1

1

-5

-5

-5

0

Mohamed Heny Selmi © ESPRIT

Page 95: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

1

1

-3

1

1

-5

-5

-5

1

1

Mohamed Heny Selmi © ESPRIT

Page 96: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

1

1

-3

1

1

-5

-5

-5

2

2

2

2

1

1

Mohamed Heny Selmi © ESPRIT

Page 97: Les algorithmes de jeux

EXEMPLE

0 5 -3 2 5 -2 3 2 -3 0 3 3 -5 0 1 -3 5 0 1 -5 5 3 2 -3 5

0

0

0

0 -3 3

3

0

2

2

2

2

1

1

-3

1

1

-5

-5

-5

1

2

2

2

2

1

Mohamed Heny Selmi © ESPRIT

Page 98: Les algorithmes de jeux

L’ALGORITHME

ALPHA-BÊTA

Function ALPHA-BETA-SEARCH(state) returns an action

v MAX-VALUE(state, -∞, +∞)

return the action in SUCCESSORS(state) with value v

Function MAX-VALUE (state, α, β) returns a utility value

if TERMINAL-TEST (state) then return UTILITY (state)

v - ∞

for s in SUCCESSORS (state) do

v MAX(v, MIN-VALUE (s, α, β) )

if (v ≥ β) then return v

α MAX(v, α)

return v

Function MIN-VALUE (state, α, β) returns a utility value

if TERMINAL-TEST (state) then return UTILITY (state)

v + ∞

for s in SUCCESSORS (state) do

v MIN(v, MAX-VALUE (s, α, β) )

if (v ≤ α) then return v

β MIN(v, β)

return v

Mohamed Heny Selmi © ESPRIT

Page 99: Les algorithmes de jeux

APPLICATION

Mohamed Heny Selmi © ESPRIT

Page 100: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(- ∞, + ∞)

v = - ∞

Mohamed Heny Selmi © ESPRIT

Page 101: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(- ∞, + ∞)

v = - ∞

(- ∞, + ∞)

v = + ∞

Mohamed Heny Selmi © ESPRIT

Page 102: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(- ∞, + ∞)

v = - ∞

(- ∞, 3)

v = 3

Mohamed Heny Selmi © ESPRIT

Page 103: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(- ∞, + ∞)

v = - ∞

(- ∞, 3)

v = 3

Mohamed Heny Selmi © ESPRIT

Page 104: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

Mohamed Heny Selmi © ESPRIT

Page 105: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, + ∞)

v = + ∞

Mohamed Heny Selmi © ESPRIT

Page 106: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, + ∞)

v = + ∞

(3, + ∞)

v = - ∞

Mohamed Heny Selmi © ESPRIT

Page 107: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, + ∞)

v = + ∞

(3, + ∞)

v = - ∞

(3, + ∞)

v = + ∞

Mohamed Heny Selmi © ESPRIT

Page 108: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, + ∞)

v = + ∞

(3, + ∞)

v = - ∞

(3, + ∞)

v = 0

Mohamed Heny Selmi © ESPRIT

Page 109: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, + ∞)

v = + ∞

(3, + ∞)

v = - ∞

(3, 0)

v = 0

Mohamed Heny Selmi © ESPRIT

Page 110: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, + ∞)

v = + ∞

(3, + ∞)

v = 0

(3, + ∞)

v = 0

Mohamed Heny Selmi © ESPRIT

Page 111: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, + ∞)

v = + ∞

(3, + ∞)

v = 0

(3, + ∞)

v = 0

(3, + ∞)

v = + ∞

Mohamed Heny Selmi © ESPRIT

Page 112: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, + ∞)

v = + ∞

(3, + ∞)

v = 0

(3, + ∞)

v = 0

(3, 5)

v = 5

Mohamed Heny Selmi © ESPRIT

Page 113: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, + ∞)

v = + ∞

(3, + ∞)

v = 0

(3, + ∞)

v = 0

(3, 5)

v = 5

Mohamed Heny Selmi © ESPRIT

Page 114: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, + ∞)

v = + ∞

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

Mohamed Heny Selmi © ESPRIT

Page 115: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

Mohamed Heny Selmi © ESPRIT

Page 116: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = - ∞

Mohamed Heny Selmi © ESPRIT

Page 117: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = - ∞

(3,5)

v = ∞

Mohamed Heny Selmi © ESPRIT

Page 118: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = - ∞

(3,5)

v = 7

Mohamed Heny Selmi © ESPRIT

Page 119: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = - ∞

(3,5)

v = 7

Mohamed Heny Selmi © ESPRIT

Page 120: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

Mohamed Heny Selmi © ESPRIT

Page 121: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

Mohamed Heny Selmi © ESPRIT

Page 122: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

(3,5)

v = - ∞

Mohamed Heny Selmi © ESPRIT

Page 123: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

(3,5)

v = - ∞

(3,5)

v = ∞

Mohamed Heny Selmi © ESPRIT

Page 124: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

(3,5)

v = - ∞

(3,4)

v = 4

Mohamed Heny Selmi © ESPRIT

Page 125: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

(3,5)

v = - ∞

(3,4)

v = 4

Mohamed Heny Selmi © ESPRIT

Page 126: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

(4,5)

v = 4

(3,4)

v = 4

Mohamed Heny Selmi © ESPRIT

Page 127: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

(4,5)

v = 4

(3,4)

v = 4

(4,5)

v = ∞

Mohamed Heny Selmi © ESPRIT

Page 128: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

(4,5)

v = 4

(3,4)

v = 4

(4,5)

v = 2

Mohamed Heny Selmi © ESPRIT

Page 129: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

(4,5)

v = 4

(3,4)

v = 4

(4,5)

v = 2

Mohamed Heny Selmi © ESPRIT

Page 130: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 5)

v = 5

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

(4,5)

v = 4

(3,4)

v = 4

(4,5)

v = 2

Mohamed Heny Selmi © ESPRIT

Page 131: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(3, + ∞)

v = 3

(- ∞, 3)

v = 3

(3, 4)

v = 4

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

(4,5)

v = 4

(3,4)

v = 4

(4,5)

v = 2

Mohamed Heny Selmi © ESPRIT

Page 132: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(4, + ∞)

v = 4

(- ∞, 3)

v = 3

(3, 4)

v = 4

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

(4,5)

v = 4

(3,4)

v = 4

(4,5)

v = 2

Mohamed Heny Selmi © ESPRIT

Page 133: Les algorithmes de jeux

7

3 5

0 3 10 5 6 7 8 8 10 -3 -12 4 2 6 4 5 2 8

Q R S T Y X W U V A6 A5 A4 A3 A2 A1 Z A8 A9 A7

O P N I L M K J

T2 T3

T1

D E F H G

Max

Max

Min

Min

(4, + ∞)

v = 4

(- ∞, 3)

v = 3

(3, 4)

v = 4

(5, + ∞)

v = 5

(3, + ∞)

v = 0

(3, 5)

v = 5

(3,5)

v = 7

(3,5)

v = 7

(4,5)

v = 4

(3,4)

v = 4

(4,5)

v = 2

Mohamed Heny Selmi © ESPRIT

Page 134: Les algorithmes de jeux

Max

Max

Min

EXERCICE

1. Quel est le meilleur coup pour le joueur Max avec le MinMax?

2. Dans cette arbre de jeu, quels noeuds n’auraient pas besoin d’être examinés en utilisant la procédure α-β ?

7 6 8 5 2 3 0 -2 6 2 5 8 9 2

Mohamed Heny Selmi © ESPRIT

Page 135: Les algorithmes de jeux

Max

Max

Min

INDICATION

7 6 8 5 2 3 0 -2 6 2 5 8 9 2

7 3 8 0 6 8 9

8

3 8 0

Mohamed Heny Selmi © ESPRIT

Page 136: Les algorithmes de jeux

Max

Max

Min

7 6 8 5 2 3 0 -2 6 2 5 8 9 2

7 3 8 0 6 8 9

8

3 8 0

INDICATION

Mohamed Heny Selmi © ESPRIT

Page 137: Les algorithmes de jeux

COMBIEN

GAGNONS-NOUS ?

Mohamed Heny Selmi © ESPRIT

3

= 3

-1

=-1

(4)

3

= 3

4

=4

-1

Page 138: Les algorithmes de jeux

CONCLUSION

L’algorithmeα-β détermine la valeur MinMax de la racine de l’arbre de jeu en traversant l’arbre en profondeur d’abord, sautant tous les nœuds qui ne peuvent plus influencer la valeur MinMax de la racine

La valeur exacte des nœuds n’est pas importante

L’ordre dans le quel on visite les fils est important

Au mieux, on visite √n nœuds au lieu de n=b expo d

pour MinMax

Mohamed Heny Selmi © ESPRIT