Illustration élagage

publicité
Étude des jeux
Christophe Demko, Pierre Loonis, Thierry Bouwmans
Licence de Génie Informatique
Université de La Rochelle
Étude des jeux – p.1/30
Introduction
Défi intellectuel
Étude des jeux – p.2/30
Introduction
Défi intellectuel
S’approcher de la machine de Turing
Étude des jeux – p.2/30
Historique
Shannon, 1950. Algorithme minimax
Étude des jeux – p.3/30
Historique
Shannon, 1950. Algorithme minimax
McCarthy, Newell et Simon. Élagage
.
Étude des jeux – p.3/30
Historique
Shannon, 1950. Algorithme minimax
McCarthy, Newell et Simon. Élagage .
Tesauro, 1992. Programme de Backgammon.
Étude des jeux – p.3/30
Historique
Shannon, 1950. Algorithme minimax
McCarthy, Newell et Simon. Élagage .
Tesauro, 1992. Programme de Backgammon.
Deep Blue (IBM) vs. Kasparov, 1997.
Étude des jeux – p.3/30
Caractéristique d’un programme de
jeu
présence d’un adversaire (humain ou informatique);
Étude des jeux – p.4/30
Caractéristique d’un programme de
jeu
présence d’un adversaire (humain ou informatique);
faire face à l’imprévu;
Étude des jeux – p.4/30
Caractéristique d’un programme de
jeu
présence d’un adversaire (humain ou informatique);
faire face à l’imprévu;
complexité importante;
Étude des jeux – p.4/30
Caractéristique d’un programme de
jeu
présence d’un adversaire (humain ou informatique);
faire face à l’imprévu;
complexité importante;
choisir le meilleur coup à jouer.
Étude des jeux – p.4/30
Déterminisme
deterministe
À chaque coup l’ordinateur a une connaissance
complète de ce qui peut arriver. Rien ne lui est
caché.
Étude des jeux – p.5/30
Déterminisme
deterministe
À chaque coup l’ordinateur a une connaissance
complète de ce qui peut arriver. Rien ne lui est
caché.
aléatoire
L’ordinateur n’a pas la maîtrise des événements.
Étude des jeux – p.5/30
Perfection
information parfaite
À chaque coup l’ordinateur a une connaissance
complète de l’état du jeu. Rien ne lui est caché.
Étude des jeux – p.6/30
Perfection
information parfaite
À chaque coup l’ordinateur a une connaissance
complète de l’état du jeu. Rien ne lui est caché.
information imparfaite
L’ordinateur a une vision partielle de l’état du jeu
Étude des jeux – p.6/30
Nombre de joueurs
jeux à 2 joueurs
Il suffit pour l’ordinateur de battre l’adversaire pour
gagner
Étude des jeux – p.7/30
Nombre de joueurs
jeux à 2 joueurs
Il suffit pour l’ordinateur de battre l’adversaire pour
gagner
jeux à plus de 2 joueurs
L’ordinateur doit s’efforcer de passer des alliances
pour gagner.
Étude des jeux – p.7/30
Classification de quelques jeux
jeu déterministe parfait 2 joueurs
morpions
oui
oui
oui
échecs
oui
oui
oui
dames
oui
oui
oui
othello
oui
oui
oui
go
oui
oui
oui
backgammon
non
oui
oui
jeux de cartes
non
non
diplomacy
oui
oui
non
Étude des jeux – p.8/30
Jeu et recherche
notions d’état initial et état final
Étude des jeux – p.9/30
Jeu et recherche
notions d’état initial et état final
notions de changements d’états
Étude des jeux – p.9/30
Jeu et recherche
notions d’état initial et état final
notions de changements d’états
rechercher le coup gagnant
Étude des jeux – p.9/30
Jeux à exploration complète
6
5
4
3
4
3
2
1
3
2
1
0
2
1
0
1
0
0
Ordinateur
Adversaire
0
Étude des jeux – p.10/30
Jeux à exploration complète
6
Coup gagnant ?
5
4
3
4
3
2
1
3
2
1
0
2
1
0
1
0
0
Ordinateur
Adversaire
0
Étude des jeux – p.10/30
Jeux à exploration complète
6
Coup gagnant ?
5
4
3
4
3
2
1
3
2
1
0
2
1
0
1
0
0
Ordinateur
Adversaire
0
Étude des jeux – p.10/30
Jeux à exploration complète
6
Coup gagnant ?
5
4
3
4
3
2
1
3
2
1
0
2
1
0
1
0
0
Ordinateur
Adversaire
0
Étude des jeux – p.10/30
Remontée de l’information
6
5
4
3
4
3
2
1
3
2
1
0
2
1
0
1
0
0
Ordinateur
Adversaire
0
Étude des jeux – p.11/30
Remontée de l’information
6
5
4
3
4
3
2
1
3
2
1
0
2
1
0
1
0
0
Ordinateur
Adversaire
0
Étude des jeux – p.11/30
Remontée de l’information
6
5
4
3
4
3
2
1
3
2
1
0
2
1
0
1
0
0
Ordinateur
Adversaire
0
Étude des jeux – p.11/30
Remontée de l’information
6
5
4
3
4
3
2
1
3
2
1
0
2
1
0
1
0
0
Ordinateur
Adversaire
0
Étude des jeux – p.11/30
Remontée de l’information
6
5
4
3
4
3
2
1
3
2
1
0
2
1
0
1
0
0
Ordinateur
Adversaire
0
Étude des jeux – p.11/30
Remontée de l’information
6
5
4
3
4
3
2
1
3
2
1
0
2
1
0
1
0
0
Ordinateur
Adversaire
0
Étude des jeux – p.11/30
Algorithme minimax
données:
Étude des jeux – p.12/30
Algorithme minimax
données:
état du jeu
Étude des jeux – p.12/30
Algorithme minimax
données:
état du jeu
à qui le tour ? (adversaire ou non)
Étude des jeux – p.12/30
Algorithme minimax
données:
état du jeu
à qui le tour ? (adversaire ou non)
produit:
Étude des jeux – p.12/30
Algorithme minimax
données:
état du jeu
à qui le tour ? (adversaire ou non)
produit:
évaluation de l’état (booléen: gagnant, perdant)
Étude des jeux – p.12/30
Algorithme minimax
minimax(état,adversaire):évaluation
si feuille(état) alors
retourner évaluation(état,adversaire)
sinon
éval
adversaire
pour tout succ successeurs(état) faire
si adversaire alors
éval éval minimax(succ, adversaire)
sinon
éval éval minimax(succ, adversaire)
fin si
fin pour
fin si
Étude des jeux – p.13/30
Propriétés de l’algorithme minimax
Complétude: non
Étude des jeux – p.14/30
Complétude: non
Complexité en temps:
Propriétés de l’algorithme minimax
Étude des jeux – p.14/30
Complexité en espace:
Complétude: non
Complexité en temps:
Propriétés de l’algorithme minimax
Étude des jeux – p.14/30
Complétude: non
Complexité en temps:
Propriétés de l’algorithme minimax
Complexité en espace:
Optimalité: oui si l’adversaire est optimal
Étude des jeux – p.14/30
Jeux à exploration partielle
les jeux intéressants ont un facteur de branchement
important
Étude des jeux – p.15/30
Jeux à exploration partielle
les jeux intéressants ont un facteur de branchement
important
les jeux intéressants ont une profondeur importante
Étude des jeux – p.15/30
Jeux à exploration partielle
les jeux intéressants ont un facteur de branchement
important
les jeux intéressants ont une profondeur importante
introduction d’une fonction heuristique permettant
d’évaluer un état non final
Étude des jeux – p.15/30
Algorithme minimax
fondeur limitée
avec
pro-
données:
Étude des jeux – p.16/30
Algorithme minimax
fondeur limitée
avec
pro-
données:
état du jeu
Étude des jeux – p.16/30
Algorithme minimax
fondeur limitée
avec
pro-
données:
état du jeu
à qui le tour ? (adversaire ou non)
Étude des jeux – p.16/30
Algorithme minimax
fondeur limitée
avec
pro-
données:
état du jeu
à qui le tour ? (adversaire ou non)
profondeur courante
Étude des jeux – p.16/30
Algorithme minimax
fondeur limitée
avec
pro-
données:
état du jeu
à qui le tour ? (adversaire ou non)
profondeur courante
profondeur maximum
Étude des jeux – p.16/30
Algorithme minimax
fondeur limitée
avec
pro-
données:
état du jeu
à qui le tour ? (adversaire ou non)
profondeur courante
profondeur maximum
produit:
Étude des jeux – p.16/30
Algorithme minimax
fondeur limitée
avec
pro-
données:
état du jeu
à qui le tour ? (adversaire ou non)
profondeur courante
profondeur maximum
produit:
évaluation de l’état (réel:
)
Fonction (généralement linéaire) pondérant la
valeur de chaque pièce du jeu)
Étude des jeux – p.16/30
Algorithme minimax
fondeur limitée
avec
pro-
minimax_limité(état,adversaire,p,pmax):évaluation
si p=pmax alors
retourner évaluation(état,adversaire)
sinon
si adversaire alors
éval
pour tout succ successeurs(état) faire
min(éval,minimax(succ, adversaire,p+1,pmax))
éval
fin pour
sinon
éval
pour tout succ successeurs(état) faire
max(éval,minimax(succ, adversaire,p+1,pmax))
éval
fin pour
fin si
fin si
Étude des jeux – p.17/30
Illustration de minimax avec profondeur limitée
2
4
-1
1
1
2
-2
4
Étude des jeux – p.18/30
Illustration de minimax avec profondeur limitée
-1
2
4
1
-1
1
1
-2
2
-2
4
Étude des jeux – p.18/30
Illustration de minimax avec profondeur limitée
1
-1
2
4
1
-1
1
1
-2
2
-2
4
Étude des jeux – p.18/30
Propriétés de l’algorithme minimax
avec profondeur limitée
Complétude: oui
Étude des jeux – p.19/30
Propriétés de l’algorithme minimax
avec profondeur limitée
Complexité en temps:
Complétude: oui
Étude des jeux – p.19/30
Propriétés de l’algorithme minimax
avec profondeur limitée
$
Complexité en espace:
#"!
Complexité en temps:
Complétude: oui
Étude des jeux – p.19/30
Propriétés de l’algorithme minimax
avec profondeur limitée
$
Complexité en espace:
Optimalité: non
#"!
Complexité en temps:
Complétude: oui
Étude des jeux – p.19/30
Élagage
Pouvait-on éviter certaines explorations ?
Étude des jeux – p.20/30
Élagage
Pouvait-on éviter certaines explorations ? Oui.
Étude des jeux – p.20/30
Illustration élagage
2
Étude des jeux – p.21/30
Illustration élagage
2
2
Étude des jeux – p.21/30
Illustration élagage
2
2
-1
Étude des jeux – p.21/30
Illustration élagage
-1
2
-1
Étude des jeux – p.21/30
Illustration élagage
-1
-1
2
-1
Étude des jeux – p.21/30
Illustration élagage
-1
-1
2
-1
-2
Étude des jeux – p.21/30
Illustration élagage
-1
-1
2
-2
-1
-2
Étude des jeux – p.21/30
Illustration élagage
-1
-1
2
-2
-1
-2
Étude des jeux – p.21/30
Illustration élagage
-1
-1
2
-2
-1
-2
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
2
-2
-1
-2
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
2
-2
-1
-2
4
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
2
-2
-1
-2
4
4
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
2
-2
-1
-2
4
4
6
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
2
-2
-1
-2
4
4
6
Étude des jeux – p.21/30
Illustration élagage
-1
-1
4
-1
2
-2
-1
-2
4
4
Étude des jeux – p.21/30
Illustration élagage
-1
-1
4
-1
2
-2
-1
-2
4
4
Étude des jeux – p.21/30
Illustration élagage
-1
-1
4
-1
2
-2
-1
-2
4
4
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
4
-1
2
-2
-1
-2
4
4
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
4
-1
2
-2
-1
-2
4
4
-5
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
4
-1
2
-2
-1
-2
4
4
-5
-5
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
4
-1
2
-2
-1
-2
4
4
-5
-5
-4
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
4
-1
2
-2
-1
-2
4
4
-5
-5
-4
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
4
-1
2
-2
-1
-2
-5
4
4
-5
-5
-4
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
4
-1
2
-2
-1
-2
-5
4
4
-5
-5
-4
-6
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
4
-1
2
-2
-1
-2
-5
4
4
-5
-5
-6
-4
-6
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
4
-1
2
-2
-1
-2
-5
4
4
-5
-5
-6
-4
-6
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-1
4
-1
2
-2
-1
-2
-5
4
4
-5
-5
-6
-4
-6
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-5
-1
4
-1
2
-2
-1
-2
-5
4
4
-5
-5
-6
-4
-6
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-5
-1
4
-1
2
-2
-1
-2
-5
4
4
-5
-5
-6
-4
-6
Étude des jeux – p.21/30
Illustration élagage
-1
-1
-5
-1
4
-1
2
-2
-1
-2
-5
4
4
-5
-5
-6
-4
-6
Étude des jeux – p.21/30
Principe de l’élagage
Étendre l’arbre en profondeur jusqu’à la profondeur
maximum;
Étude des jeux – p.22/30
Principe de l’élagage
Étendre l’arbre en profondeur jusqu’à la profondeur
maximum;
Ne plus explorer les successeurs d’un noeud dès
qu’il est évident que ce noeud ne sera pas choisi;
Étude des jeux – p.22/30
Principe de l’élagage
Étendre l’arbre en profondeur jusqu’à la profondeur
maximum;
Ne plus explorer les successeurs d’un noeud dès
qu’il est évident que ce noeud ne sera pas choisi;
Chaque noeud connaît la valeur courante de son
parent.
Étude des jeux – p.22/30
Principe de l’élagage
Étendre l’arbre en profondeur jusqu’à la profondeur
maximum;
Ne plus explorer les successeurs d’un noeud dès
qu’il est évident que ce noeud ne sera pas choisi;
Chaque noeud connaît la valeur courante de son
parent.
Interrompre la recherche pour un noeud max si son
évaluation courante ( ) est supérieure à celle de son
parent (noeud min).
Étude des jeux – p.22/30
Principe de l’élagage
Étendre l’arbre en profondeur jusqu’à la profondeur
maximum;
Ne plus explorer les successeurs d’un noeud dès
qu’il est évident que ce noeud ne sera pas choisi;
Chaque noeud connaît la valeur courante de son
parent.
Interrompre la recherche pour un noeud max si son
évaluation courante ( ) est supérieure à celle de son
parent (noeud min).
Interrompre la recherche pour un noeud min si son
évaluation ( ) courante est inférieure à celle de son
parent (noeud max).
Étude des jeux – p.22/30
Algorithme
maxmin
1/2
(état,p,pmax, ):
si p=pmax alors
retourner évaluation(état,FAUX)
sinon
pour tout succ successeurs(état) faire
max( ,minmax (succ,p+1,pmax, ))
sortir si
fin pour
retourner
fin si
Étude des jeux – p.23/30
Algorithme
minmax
2/2
(état,p,pmax, ):
si p=pmax alors
retourner évaluation(état,VRAI)
sinon
pour tout succ successeurs(état) faire
min( ,maxmin (succ,p+1,pmax, ))
sortir si
fin pour
retourner
fin si
Étude des jeux – p.24/30
Propriétés de l’algorithme
l’élagage n’affecte pas le résultat final
Étude des jeux – p.25/30
Propriétés de l’algorithme
l’élagage n’affecte pas le résultat final
Complétude: oui
Étude des jeux – p.25/30
Propriétés de l’algorithme
l’élagage n’affecte pas le résultat final
Complétude: oui
Complexité en temps:
Étude des jeux – p.25/30
Propriétés de l’algorithme
l’élagage n’affecte pas le résultat final
Complétude: oui
Complexité en temps:
dans le pire des cas
Étude des jeux – p.25/30
Propriétés de l’algorithme
%('&
+,*)
/ -.
l’élagage n’affecte pas le résultat final
Complétude: oui
Complexité en temps:
dans le pire des cas
dans le meilleur des cas
Étude des jeux – p.25/30
Propriétés de l’algorithme
%('&
+,*)
/ -.
l’élagage n’affecte pas le résultat final
Complétude: oui
Complexité en temps:
dans le pire des cas
dans le meilleur des cas
ordonner préalablement les noeuds à explorer
Étude des jeux – p.25/30
Propriétés de l’algorithme
%('&
+,*)
/ -.
l’élagage n’affecte pas le résultat final
Complétude: oui
Complexité en temps:
dans le pire des cas
$
#"!
dans le meilleur des cas
ordonner préalablement les noeuds à explorer
Complexité en espace:
Étude des jeux – p.25/30
Propriétés de l’algorithme
%('&
+,*)
/ -.
l’élagage n’affecte pas le résultat final
Complétude: oui
Complexité en temps:
dans le pire des cas
$
#"!
dans le meilleur des cas
ordonner préalablement les noeuds à explorer
Complexité en espace:
Optimalité: non
Étude des jeux – p.25/30
Ordonner préalablement les noeuds
à explorer
Recherche en profondeur itérative
Étude des jeux – p.26/30
Ordonner préalablement les noeuds
à explorer
Recherche en profondeur itérative
Faire une
à profondeur 1: utiliser le résultat
pour ordonner les noeuds
Étude des jeux – p.26/30
Ordonner préalablement les noeuds
à explorer
Recherche en profondeur itérative
Faire une
à profondeur 1: utiliser le résultat
pour ordonner les noeuds
Faire une
à profondeur 2 sur l’arbre
réordonné à l’étape précédente: utiliser le
résultat pour ordonner les noeuds
Étude des jeux – p.26/30
Ordonner préalablement les noeuds
à explorer
Recherche en profondeur itérative
Faire une
à profondeur 1: utiliser le résultat
pour ordonner les noeuds
Faire une
à profondeur 2 sur l’arbre
réordonné à l’étape précédente: utiliser le
résultat pour ordonner les noeuds
...
Étude des jeux – p.26/30
Ordonner préalablement les noeuds
à explorer
Recherche en profondeur itérative
Faire une
à profondeur 1: utiliser le résultat
pour ordonner les noeuds
Faire une
à profondeur 2 sur l’arbre
réordonné à l’étape précédente: utiliser le
résultat pour ordonner les noeuds
...
Faire une
à profondeur n jusqu’à épuisement
des ressources de calculs (temps, mémoire)
Étude des jeux – p.26/30
Les limites de
Effets d’horizon (retarder un désastre inévitable)
Étude des jeux – p.27/30
Les limites de
Effets d’horizon (retarder un désastre inévitable)
Pas de plan stratégique
Étude des jeux – p.27/30
Les limites de
Effets d’horizon (retarder un désastre inévitable)
Pas de plan stratégique
Pas de tentative de piège
Étude des jeux – p.27/30
Les limites de
Effets d’horizon (retarder un désastre inévitable)
Pas de plan stratégique
Pas de tentative de piège
Hypothèse: l’adversaire a la même fonction
d’évaluation.
Étude des jeux – p.27/30
Amélioration
Augmentation des moyens de calculs
Étude des jeux – p.28/30
Amélioration
Augmentation des moyens de calculs
Bibliothèque d’ouverture
Étude des jeux – p.28/30
Amélioration
Augmentation des moyens de calculs
Bibliothèque d’ouverture
Bibliothèque de fermeture
Étude des jeux – p.28/30
Amélioration
Augmentation des moyens de calculs
Bibliothèque d’ouverture
Bibliothèque de fermeture
Exploration complète en fin de partie
Étude des jeux – p.28/30
Amélioration
Augmentation des moyens de calculs
Bibliothèque d’ouverture
Bibliothèque de fermeture
Exploration complète en fin de partie
Apprentissage de la fonction d’évaluation de
l’adversaire
Étude des jeux – p.28/30
Amélioration
Augmentation des moyens de calculs
Bibliothèque d’ouverture
Bibliothèque de fermeture
Exploration complète en fin de partie
Apprentissage de la fonction d’évaluation de
l’adversaire
Utilisation du temps de réflexion de l’adversaire
Étude des jeux – p.28/30
Amélioration
Augmentation des moyens de calculs
Bibliothèque d’ouverture
Bibliothèque de fermeture
Exploration complète en fin de partie
Apprentissage de la fonction d’évaluation de
l’adversaire
Utilisation du temps de réflexion de l’adversaire
...
Étude des jeux – p.28/30
Élargissement aux jeux aléatoires
(expectimax)
Notion d’espérance;
Étude des jeux – p.29/30
Élargissement aux jeux aléatoires
(expectimax)
Notion d’espérance;
Ajoût d’un noeud artificiel aléatoire entre chaque
noeud min et chaque max.
Étude des jeux – p.29/30
Illustration de l’algorithme expectimax
1/3
3/5
2/3
2/5
5
Étude des jeux – p.30/30
Illustration de l’algorithme expectimax
1/3
2/3
3
3/5
2/5
5
Étude des jeux – p.30/30
Illustration de l’algorithme expectimax
1/3
2/3
3
3/5
2/5
5
2
Étude des jeux – p.30/30
Illustration de l’algorithme expectimax
1/3
2/3
19/5
3/5
2/5
5
2
Étude des jeux – p.30/30
Téléchargement