É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