Éric Beaudry Département d’informatique Université de Sherbrooke

Slides:



Advertisements
Présentations similaires
Les carrés et les racines carrées
Advertisements

La Méthode de Simplexe Standardisation
Chapitre annexe. Récursivité
Fabrice Lauri, François Charpillet, Daniel Szer
Modèle des jeux et des mécanismes
1 Modèles Economiques en Informatique Michel de Rougemont Université Paris II.
A. Cornuéjols IAA (basé sur Rob Schapires IJCAI99 talk) Combiner des apprenants: le boosting.
Portée des variables VBA & Excel
Classification et prédiction
Fonctions & procédures
Calculs de complexité d'algorithmes
Critère d’ordonnancement en temps réel Partie II
GEF 435 Principes des systèmes d’exploitation
Cours d’Algorithmique
Exercices Algorithmiques
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
ASSERVISSEMENTS ET REGULATION
1 Intégration numérique garantie de systèmes décrits par des équations différentielles non-linéaires Application à l'estimation garantie d'état et de paramètres.
Plus rapide chemin bicritère : un problème d’aménagement du territoire
IFT 702 – Planification en Intelligence Artificielle Planification avec des processus de décision de Markov Froduald Kabanza Département d’informatique.
MasterMind en spécialité i.s.n.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
To Tune or not to Tune? To Tune or not to Tune? A Lightweight Physical Design Alerter Costa Jean-Denis Le Yaouanc Aurélie Mécanismes de SGBD 2007.
ALGORITHMES RECURSIFS
Probabilités.
IFT 702 – Planification en intelligence artificielle Planification par recherche heuristique dans un espace d’états Froduald Kabanza Département d’informatique.
Les jeux (méthodes min-max et -)
Les structures de données arborescentes
Algorithmes Branch & Bound
MinMax et Alpha-Beta.
IFT313 Introduction aux langages formels
1.2 COMPOSANTES DES VECTEURS
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Recherche adversiale (Jeux à 2 joueurs) Chapter 6 Section 1 – 4.
Gestion de Fichiers Arbres B.
Arbres Rouge noir Démo : INF3105 Structures de données et algorithmes
Structures de données IFT-2000
IFT 615 – Intelligence Artificielle Satisfaction de contraintes
Département d’informatique
Froduald Kabanza Département d’informatique Université de Sherbrooke
IFT 615 – Intelligence artificielle Recherche locale
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Courbes de Bézier.
1 CSI 4506: Introduction à lintelligence artificielle La recherche adversairiale.
3.2 PRODUIT VECTORIEL Cours 7.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
LE CHOIX EN CONTEXTE D’INCERTITUDE
ELE6306 : Test de systèmes électroniques Projet de cours Chaîne de scan unique: Reconfiguration = Optimisation Louis-Martin Côté Professeur : A. Khouas.
Ordonnancement de tâches
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Structures de données IFT-2000
Programmation linéaire en nombres entiers : les méthodes de troncature
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
LES PILES ET FILES.
1 Une méthode itérative pour l'unfolding des données expérimentales, stabilisée dynamiquement(*) Bogdan MALAESCU LAL LLR 28/09/2009 (*arxiv: )
Rappels de statistiques descriptives
Algorithmique et programmation (1)‏
Algorithmes Branch & Bound
I.A. Session 2009/2010 E.P.S.I. Bordeaux – C.S.I.I – 2 ème Année – Cours n°6.
Intelligence Artificielle
CSI 4506: Introduction à l’Intelligence Artificielle
Exploration systématique de graphes
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
TIPE Les dames chinoises
IFT 615 – Intelligence artificielle Consignes pour l’examen final
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
Le Jeu et l’intelligence artificielle
1 CSI 4506: Introduction à l’Intelligence Artificielle La Recherche Adversariale.
Transcription de la présentation:

Éric Beaudry Département d’informatique Université de Sherbrooke IFT 615 – Intelligence Artificielle Algorithmes de recherche pour des jeux avec des adversaires (adversarial search) Éric Beaudry Département d’informatique Université de Sherbrooke

Objectifs Se familiariser avec les sujets suivants : Jeux entre deux adversaires Algorithme minimax Élagage alpha-beta Décisions imparfaites en temps réelle Généralisation à plusieurs joueurs Généralisation à des jeux avec incertitude Se préparer au travail pratique Implémentation d’un joueur artificiel pour le jeu Connect5

. . . . . . Rappel sur A* ? Notion d’état (configuration) État initial Fonction de transition (successeurs) Fonction de but (configuration finale) 1 2 3 4 5 7 6 8 ? 8 1 3 4 5 7 6 2 . . . 1 2 3 4 5 7 6 8 1 2 3 4 5 7 6 8 Nord Est Sud . . . 2 8 3 Ouest 1 4 7 6 5

Vers les jeux avec adversité … Q : Est-il possible d’utiliser A* pour des jeux entre deux adversaires ? Q : Comment définir un état pour le jeu d’échecs ? Q : Quelle est la fonction de but ? Q : Quelle est la fonction de transition ? R : Non. Pas directement. Q : Quelle hypothèse est violée dans les jeux ? R : Dans les jeux, le monde n’est pas statique, mais est dynamique. Le joueur adverse peut modifier l’environnement. Q : Comment peut-on résoudre ce problème ? R : C’est le sujet d’aujourd’hui !

Relation entre les joueurs Dans un jeu, des joueurs peuvent être : Coopératifs Ils veulent atteindre le même but. Des adversaires en compétition Un gain pour les uns, est une perte pour les autres. Cas particulier : les jeux à somme nulle (zero-sum games). Jeux d’échecs, de dame, tic-tac-toe, Connect5, etc. Mixte Il y a tout un spectre entre les jeux purement coopératifs et les jeux avec adversaires. Ex: alliances.

Hypothèses Pour l’instant, nous aborderons les : Jeux à deux adversaires Jeux à tour de rôle Jeux à somme nulle Jeux avec observation totale Jeux déterministes (sans hasard ou incertitude) Il sera possible de généraliser plus tard

Jeux entre deux adversaires Noms des joueurs : Max vs Min Max est le premier à jouer (notre joueur) Min est son adversaire Min Max

Arbre de recherche Un problème de jeu peut être vu comme un problème de recherche dans un arbre : Un état (configuration) initial Un ensemble d’opérateurs (coups légaux ou actions légales) Ces opérateurs génèrent des transitions dans l’arbre Un test de terminaison Indique si le jeu est terminé Une fonction d’utilité pour les états finaux

Arbre de recherche tic-tac-toe

Algorithme minimax Idée : à chaque tour, choisir l’action qui correspond à la plus grande valeur minimax EXPECTED-MINIMAX-VALUE(n) = UTILITY(n) Si n est un nœud terminal maxs  successors(n) EXPECTED-MINIMAX-VALUE(s) Si n est un nœud Max mins  successors(n) EXPECTED-MINIMAX-VALUE(s) Si n est un nœud Min Ces équations donnent la programmation récursive des valeurs jusqu’à la racine de l’arbre

Algorithme minimax

Algorithme minimax Idée: À chaque tour, choisir l’action menant à la plus grande valeur minimax. Cela donne la meilleure action optimale (plus grand gain) contre un joueur optimal. Exemple simple: On suppose donc que MIN joue optimalement – il maximise le cas pire contre MAX. Mais que se passe-t-il si MIN ne joue pas optimalement? On peut montrer dans ce cas que MAX fera même mieux. Par contre, il peut y avoir des stratégies meilleures que celle de minimax lorsque MAX joue contre un joueur suboptimal; par contre ces stratégies vont forcément être pire que minimax contre un joueur optimal. © Éric Beaudry & Froduald Kabanza IFT615

Propriétés de minimax Complet ? Oui (si l’arbre est fini) Optimal ? Oui (contre un adversaire qui joue de façon optimale) Complexité en temps ? O(bm): b: le nombre maximum coups (actions) légaux à chaque étape m: nombre maximum de coups dans un jeu (profondeur maximale de l’arbre). Complexité en espace mémoire ? O(bm), vue que recherche en profondeur. Pour le jeu d’échec: b ≈ 35 et m ≈100 pour un jeu « raisonnable » Il n’est pas réaliste d’espérer trouver une solution exacte en un temps raisonnable.

MINIMAX AVEC ÉLAGAGE ALPHA-BETA (alpha-beta pruning) MINIMAX AVEC ÉLAGAGE ALPHA-BETA IFT615 - Été 2011 © Éric Beaudry et Froduald Kabanza

Élagage alpha-beta [-∞,+∞] [-∞, +∞] Bornes pour les valeurs possibles Le problème avec minimax est que le nombre d’états qu’il doit examiner est exponentiel en fonction de coups qu’il doit jouer pour gagner. Malheureusement on ne pas éliminer cette exponentielle. Par contre on peut la couper en deux. Toujours, comme avec minimax, faire une recherche en profondeur jusqu’à la première feuille. Initialement, le meilleur coup de Max est -∞ (on ne connait pas mieux), et le meilleur coup de Min est supposé +∞. © Éric Beaudry & Froduald Kabanza IFT615

Élagage alpha-beta [-∞,+∞] [-∞,3] © Éric Beaudry & Froduald Kabanza IFT615

Élagage alpha-beta [-∞,+∞] [-∞,3] © Éric Beaudry & Froduald Kabanza IFT615

Élagage alpha-beta [-∞,+∞] [-∞,3] © Éric Beaudry & Froduald Kabanza IFT615

Élagage alpha-beta [3,+∞] [-∞,3] © Éric Beaudry & Froduald Kabanza IFT615

Élagage alpha-beta [3,+∞] [-∞,3] [3,2] Ce noeud est pire pour MAX © Éric Beaudry & Froduald Kabanza IFT615

Élagage alpha-beta [3, +∞] [-∞,3] [3, 2] [3,14] © Éric Beaudry & Froduald Kabanza IFT615

Élagage alpha-beta [3, +∞] [-∞,3] [3,2] [3,5] © Éric Beaudry & Froduald Kabanza IFT615

Élagage alpha-beta [3, +∞] [-∞,3] [3,2] [3,2] © Éric Beaudry & Froduald Kabanza IFT615

Élagage alpha-beta [3, +∞] [-∞,3] [3,2] [3,2] © Éric Beaudry & Froduald Kabanza IFT615

D’ou vient le nom alpha-beta ? L’algorithme alpha-beta tire son nom des paramètre suivant décrivant les bornes des valeurs d’utilité enregistrée durant le parcourt. α est la valeur du meilleur choix pour Max (c.-à-d., plus grande valeur) trouvé jusqu’ici: Si le nœud v a une valeur pire que α, Max n’ira jamais à v: couper la branche β est défini de manière analogue pour Min. β est la valeur du meilleur choix pour Min (c.-à-d., plus petite valeur) trouvée jusqu’ici: © Éric Beaudry & Froduald Kabanza IFT615

Algorithme avec élagage alpha-beta © Éric Beaudry & Froduald Kabanza IFT615

Algorithme avec élagage alpha-beta (2) © Éric Beaudry & Froduald Kabanza IFT615

Propriétés de l’algorihme alpha-beta L’élagage n’affecte pas le résultat final de minimax. Dans le pire des cas, l’élagage alpha-beta (alpha-beta pruning) ne fait aucun élagage; il examine bm nœuds terminaux comme l’algorithme minimax: b: le nombre maximum d’actions/coups légales à chaque étape m: nombre maximum de coup dans un jeu (profondeur maximale de l’arbre). Un bon ordonnancement des actions à chaque nœud améliore l’efficacité. Dans le meilleur des cas (ordonnancement parfait), la complexité en temps est de O(bm/2) Si le temps de réflexion est limité, la recherche peut être jusqu’à deux fois plus profonde comparé à minimax ! Le meilleur cas arrive lorsque la meilleure action à chaque étape correspond au nœud successeur le plus à a gauche (c.-à-d.., le premier successeur généré). Autrement dit, aux nœuds MAX le successeur avec la plus grande valeur est généré en premier, et aux nouds MIN, le successeur avec la plus petite valeur est généré d’abord. © Éric Beaudry & Froduald Kabanza IFT615

Version unifiée de l’algorithme minimax avec élagage alpha-beta fonction SearchAlphaBeta(state, α, β) /* α < β */ if TerminalTest(state) then return Utility(state) else best ← -∞ for (a,s) in Sucessors(state) v ← -SearchAlphaBeta(s,-β,-α) if v > best then best ← v if best > α then α ← best if α >= β then return best IFT615 © Éric Beaudry & Froduald Kabanza

DÉCISIONS EN TEMPS RÉEL Avec l’algorithme alpha-beta DÉCISIONS EN TEMPS RÉEL IFT615 - Été 2011 © Éric Beaudry et Froduald Kabanza

Décisions en temps réel En général, des décisions imparfaites doivent être prises en temps réel: Supposons qu’on a 60 secs pour réagir et que l’algorithme explore 104 nœuds/sec Cela donne 6*105 nœuds à explorer par coup. Approche standard: Couper la recherche: Par exemple, limiter la profondeur de l’arbre. Voir le livre pour d’autres idées. Fonction d’évaluation Estimer des configurations par rapport à leur “chance” d’être gagnantes. IFT615 © Éric Beaudry & Froduald Kabanza

Exemple de fonction d’évaluation Pour le jeu d’échec, une fonction d’évaluation typique est une somme (linéaire) pondérée de “features” estimant la qualité de la configuration: Eval(s) = w1 f1(s) + w2 f2(s) + … + wn fn(s) Par exemple: w1 = 9, f1(s) = (number of white queens) – (number of black queens), etc IFT615 © Éric Beaudry & Froduald Kabanza

Exemple de fonction d’évaluation Pour le tic-tac-toe, supposons que Max joue avec les X. X O Eval(s) = if s is win for Max, +  if s is win for Min, -  else (nombre de ligne, colonnes et diagonales disponibles pour Max) - (nombre de ligne, colonnes et diagonales disponibles pour Min) Eval(s) = 6 - 4 = 2 X O Eval(s) = 4 - 3 = 1 IFT615 © Éric Beaudry & Froduald Kabanza

Généralisation aux actions aléatoires Par exemple, des jeux où on lance un dé pour déterminer la prochaine action. EXPECTED-MINIMAX-VALUE(n) = UTILITY(n) Si n est un nœud terminal maxs  successors(n) MINIMAX-VALUE(s) Si n est un nœud Max mins  successors(n) MINIMAX-VALUE(s) Si n est un nœud Min s  successors(n) P(s) * EXPECTEDMINIMAX(s) Si n est un nœud chance Ces équations donne la programmation récursive des valeurs jusqu’à la racine de l’arbre. IFT615 IFT615 © Éric Beaudry & Froduald Kabanza

Quelques succès et défis Jeu de dames: En 1994, Chinook a mis fin aux 40 ans de règne du champion du monde Marion Tinsley. Chinook utilisait une base de données de coups parfaits pré-calculés pour toutes les configurations impliquant 8 pions ou moins: 444 milliards de configurations! Jeu d’échecs: En 1997, Deep Blue a battu le champion du monde Garry Kasparov dans un match de six parties. Deep Blue explorait 200 million de configurations par seconde.. Othello: les champions humains refusent la compétition contre des ordinateurs, parce que ces derniers sont trop bons! Go: les champions humains refusent la compétition contre des ordinateurs, parce que ces derniers sont trop mauvais! Dans le jeu GO, le facteur de branchement (b) dépasse 300! La plupart des programs utilisent des bases de règles empiriques pour calculer le prochain coup. IFT615 © Éric Beaudry & Froduald Kabanza

Autre exemple: Question #2 – 2009H Décision: prendre l’action ayant mené à une valeur 7, c’est-à-dire la deuxième action. -∞,+∞ 6, +∞ 7,+ ∞ 7 Max -∞,+ ∞ -∞, 6 Min 6 6, + ∞ 6, 7 7 -∞,+ ∞ 6, + ∞ 6, + ∞ 7, + ∞ Max 6 -∞,6 14,6 14 7 6, 7 9,7 9 -∞,+ ∞ -∞, 6 6, + ∞ 6, 4 -∞, 6 -∞,14 6, 7 Min 6 4 14 9 3 7 -∞,+ ∞ Max 6 11 4 2 14 9 4 9 12 20 Légende de l’animation Nœud de l’arbre pas encore visité α, β Valeur retournée Nœud en cours de visite (sur pile de récursivité) Valeur si feuille Nœud visité Arc élagué (pruning)

© Éric Beaudry & Froduald Kabanza Résumé Il est amusant de pratiquer l’IA avec les jeux Les recherches sur les jeux révèlent des aspects fondamentaux intéressants applicables à d’autres domaines. La perfection est inatteignable dans les jeux: il faut approximer. Alpha-beta a la même valeur pour la racine de l’arbre de jeu que minimax. Dans le pire des cas, il se comporte comme minimax (explore tous les nœuds). En général il peut être deux fois plus rapide que minimax. IFT615 © Éric Beaudry & Froduald Kabanza