La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

IFT 615 – Intelligence Artificielle Algorithmes pour les jeux à tour de rôle Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza.

Présentations similaires


Présentation au sujet: "IFT 615 – Intelligence Artificielle Algorithmes pour les jeux à tour de rôle Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza."— Transcription de la présentation:

1 IFT 615 – Intelligence Artificielle Algorithmes pour les jeux à tour de rôle Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza

2 Objectifs l Comprendre lapproche générale pour développer une IA pour un jeu avec adversaires l Comprendre et pouvoir appliquer lalgorithme minimax l Comprendre et pouvoir appliquer lalgorithme délagage alpha- bêta l Savoir traiter le cas de décisions imparfaites en temps réel (temps de réflexion limité) l Comprendre et pouvoir appliquer lalgorithme expectimax IFT615© Froduald Kabanza2

3 Arbre du jeu tic-tac-toe (jeu du morpion) © Froduald Kabanza3IFT615

4 Rappel sur A* l Notion détat (configuration) l État initial l Fonction de transition (successeurs) l Fonction de but (configuration finale) ? Nord Est Ouest Sud IFT615© Froduald Kabanza4

5 Vers les jeux avec adversité … l Q : Est-il possible dutiliser A* pour des jeux entre deux adversaires ? u Q : Comment définir un état pour le jeu déchecs ? u Q : Quelle est la fonction de but ? u Q : Quelle est la fonction de transition ? l R : Non. Pas directement. l Q : Quelle hypothèse est violée dans les jeux ? l R : Dans les jeux, lenvironnement est multi-agent. Le joueur adverse peut modifier lenvironnement. l Q : Comment peut-on résoudre ce problème ? l R : Cest le sujet daujourdhui ! IFT615© Froduald Kabanza5

6 l Plusieurs acteurs qui modifient lenvironnement (les configurations/états du jeu). l Les coups des adversaires sont imprévisibles. l Le temps de réaction à un coup de ladversaire est limité. Particularité des jeux avec adversaires © Froduald Kabanza6IFT615

7 Relation entre les joueurs l Dans un jeu, des joueurs peuvent être : u Coopératifs »ils veulent atteindre le même but u 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, Connect 4, etc. u Mixte »il y a tout un spectre entre les jeux purement coopératifs et les jeux avec adversaires (ex. : alliances) IFT615© Froduald Kabanza7

8 l Dépendamment des jeux, certains joueurs peuvent être: u Coopératifs u Rivals l Les joueurs peuvent avoir une connaissance totale ou partielle de létat du jeu. l Ici nous considérons dabord les jeux entre deux adversaires, à somme nulle, à tour de rôle, avec une connaissance parfaite de létat du jeu, avec des actions déterministes. l Nous aborderons brièvement les généralisations à plusieurs joueurs et avec des actions aléatoires. Particularité des jeux à tour de rôle © Froduald Kabanza8IFT615

9 Hypothèses pour ce cours l Dans ce cours, nous aborderons les : u jeux à deux adversaires u jeux à tour de rôle u jeux à somme nulle u jeux avec complètement observés u jeux déterministes (sans hasard ou incertitude) l Brièvement, nous allons explorer une généralisations à plusieurs joueurs et avec des actions aléatoires (par exemple, jeux dans lesquels on jette un dé pour choisir une action). IFT615© Froduald Kabanza9

10 Jeux entre deux adversaires l Noms des joueurs : Max vs. Min u Max est le premier à jouer (notre joueur) u Min est son adversaire l On va interpréter le résultat dune partie comme la distribution dune récompense u peut voir cette récompense comme le résultat dun pari u Min reçoit lopposé de ce que Max reçoit Max Min IFT615© Froduald Kabanza10

11 Arbre de recherche l Comme pour les problèmes que A* peut résoudre, on commence par déterminer la structure de notre espace de recherche l Un problème de jeu peut être vu comme un problème de recherche dans un arbre : u Un noeud (état) initial : configuration initiale du jeu u Une fonction de transition : »retournant un ensemble de paires (action, noeud successeur) action possible (légale) noeud (état) résultant de lexécution de cette action u Un test de terminaison »indique si le jeu est terminé u Une fonction dutilité pour les états finaux (cest la récompense reçue) IFT615© Froduald Kabanza11

12 Arbre de recherche tic-tac-toe IFT615© Froduald Kabanza12 état initial fonction de transition fonction dutilité

13 Algorithme minimax l Idée: À chaque tour, choisir laction menant à la plus grande valeur minimax. u Cela donne la meilleure action optimale (plus grand gain) contre un joueur optimal. l Exemple simple: © Froduald Kabanza13IFT615

14 Algorithme minimax l Hypothèse: MAX et MIN jouent optimalement. l Idée: À chaque tour, choisir laction menant à la plus grande valeur minimax. u Cela donne la meilleure action optimale (plus grand gain) contre un joueur optimal (rationnel). © Froduald Kabanza14IFT615 EXPECTED-MINIMAX-VALUE(n) = UTILITY(n)Si n est un nœud terminal max s successors(n) MINIMAX-VALUE(s) Si n est un nœud Max min s successors(n) MINIMAX-VALUE(s) Si n est un nœud Min Ces équations donne la programmation récursive des valeurs jusquà la racine de larbre.

15 © Froduald Kabanza15IFT615 Algorithme minimax

16 Propriétés de minimax l Complet? u Oui (si larbre est fini) l Optimal? u Oui (contre un adversaire qui joue optimalement) l Complexité en temps? u O(b m ): »b: le nombre maximum dactions/coups légales à chaque étape »m: nombre maximum de coup dans un jeu (profondeur maximale de larbre). l Complexité en espace? u O(bm), parce que lalgorithme effectue une recherche en profondeur. l Pour le jeu déchec: b 35 et m 100 pour un jeu « raisonnable » u Il nest pas réaliste despérer trouver une solution exacte en temps réel. © Froduald Kabanza16IFT615

17 Comment accélérer la recherche l Deux approches u la première maintient lexactitude de la solution u la deuxième introduit une approximation 1. Élagage alpha-bêta (alpha-beta pruning) u idée : identifier des chemins dans larbre qui sont explorés inutilement 2. Couper la recherche et remplacer lutilité par une fonction dévaluation heuristique u idée : faire une recherche la plus profonde possible en fonction du temps à notre disposition et tenter de prédire le résultat de la partie si on narrive pas à la fin IFT615© Froduald Kabanza17

18 Alpha-beta pruning l Lalgorithme alpha-beta tire son nom des paramètres suivant décrivant les bornes des valeurs dutilité enregistrée durant le parcourt. u α est la valeur du meilleur choix pour Max (c.-à-d., plus grande valeur) trouvé jusquici: u β est la valeur du meilleur choix pour Min (c.-à-d., plus petite valeur) trouvée jusquici. © Froduald Kabanza18IFT615

19 Alpha-beta Pruning Condition pour couper dans un nœud Min l Sachant que α est la valeur du meilleur choix pour Max (c.-à-d., plus grande valeur) trouvé jusquici: u Si on est dans un nœud Min est que sa valeur v devient inférieure α (donc « pire que α» du point de vue de Max), il faut arrêter la recherche (couper la branche). © Froduald Kabanza19IFT615 α v

20 Alpha-beta Pruning Condition pour couper dans un nœud Max l Sachant que β est la valeur du meilleur choix pour Min (c.-à-d., plus petite valeur) trouvé jusquici: u Si on est dans un nœud Max est que sa valeur devient supérieur à β (donc « pire que β » du point de vue de Max), il faut arrêter la recherche (couper la branche). © Froduald Kabanza20IFT615

21 Exemple dAlpha-beta pruning Valeur initial de, = =+ = =+,, transmis aux successeurs [,+ ] Entre croches [, ]: Intervalle des valeurs possibles pour le nœud visité. Faire une recherche en profondeur jusquà la première feuille IFT615© Froduald Kabanza21

22 = =+ = =3 [,3] [,+ ] MIN met à jour, basé sur les successeurs IFT615© Froduald Kabanza22 Exemple dAlpha-beta pruning

23 = =3 MIN met à jour, basé sur les successeurs. Aucun changement. = =+ [,+ ] [3,+ ] IFT615© Froduald Kabanza23 Exemple dAlpha-beta pruning

24 MAX met à jour, basé sur les successeurs. =3 =+ 3 est retourné comme valuer du noeud. [3, + ] [3, 3] IFT615© Froduald Kabanza24 Exemple ddAlpha-beta pruning

25 =3 =+ =3 =+,, passés aux successeurs [3,+ ] [3, 3] [,+ ] IFT615© Froduald Kabanza25 Exemple ddAlpha-beta pruning

26 =3 =+ =3 =2 MIN met à jour, Basé sur les successeurs. [3,+ ] [3,3] [,2] IFT615© Froduald Kabanza26 Exemple ddAlpha-beta pruning

27 =3 =+ v =2 v, alors couper. =3 =+ [,2] [3, 3] IFT615© Froduald Kabanza27 Exemple ddAlpha-beta pruning

28 2 retourné comme valeur du noeud. MAX met à jour, basé sur les enfants. Pas de changement. =3 =+ [,2] [3, 3] IFT615© Froduald Kabanza28 Exemple ddAlpha-beta pruning

29 , =3 =+ =3 =+,, passés aux enfants [,2] [3,+ ] [-,+ ] [3, 3] IFT615© Froduald Kabanza29 Exemple ddAlpha-beta pruning

30 , =3 =14 =3 =+ [,2] [3, 3] [3,+ ] [,14] MIN met à jour, Basé sur les enfants. IFT615© Froduald Kabanza30 Exemple ddAlpha-beta pruning

31 , =3 =5 =3 =+ [,2] [3, 3] [,5] [3,+ ] MIN met à jour, Basé sur les enfants. IFT615© Froduald Kabanza31 Exemple ddAlpha-beta pruning

32 =3 =+ 2 retourné comme valeur du nœud. 2 [,2] [3, 3] =3 =5 [2,2] [3, 3] IFT615© Froduald Kabanza32 Exemple ddAlpha-beta pruning

33 Max calcule la valeur du nœud, et se déplace vers le nœud ayant cette valeur! [,2] IFT615© Froduald Kabanza33 Exemple ddAlpha-beta pruning

34 Algorithme alpha-beta pruning © Froduald Kabanza34IFT615

35 Algorithme alpha-beta pruning (suite) © Froduald Kabanza35IFT615

36 Negamax – Version élégante de α-β pruning 1. fonction negamax(state, depth, α, β, player) 2. if TerminalState(state) or depth = 0 then 3. return color * Utility(state) 4. else 5. foreach child in Sucessors(state) 6. bestVal - negamax(state, depth-1, -β, - α, -player) // les instructions 7 à 10 implémentent α-β pruning 7 if bestVal >= β 8 return bestVal 9 if bestVal >= α 10 α bestVal 11 return bestVal Appel initial : negamax(initialState, depth, -inf, +inf, 1) Signification de la variable player : 1 (max), -1 (min). IFT615© Froduald Kabanza36

37 Autre exemple : Question #2 – 2009H Max Min Max Min Max -,+ 6, + 7,+ -,+ -, 6 -,+ 6, + -,+ -, 6 -,+ 6 6, , , 6 6, + 7, + 6, + 6, , Légende de lanimation α, β Valeur si feuille Nœud de larbre pas encore visité Nœud en cours de visite (sur pile de récursivité) Nœud visité Arc élagué (pruning) Valeur retournée Décision : prendre laction ayant mené à une valeur 7, cest-à- dire la deuxième action. IFT615© Froduald Kabanza37

38 Propriétés de alpha-beta pruning l Lélagage naffecte pas le résultat final de minimax. l Dans le pire des cas, alpha-beta prunning ne fait aucun élagage; il examine b m nœuds terminaux comme lalgorithme minimax: »b: le nombre maximum dactions/coups légales à chaque étape »m: nombre maximum de coup dans un jeu (profondeur maximale de larbre). l Un bon ordonnancement des actions à chaque nœud améliore lefficacité. u Dans le meilleur des cas (ordonnancement parfait), la complexité en temps est de O(b m/2 ) »On peut faire une recherche deux fois plus profondément comparé à minimax! © Froduald Kabanza38IFT615

39 Décisions en temps réel l En général, des décisions imparfaites doivent être prises en temps réel : u Pas le temps dexplorer tout larbre de jeu l Approche standard : u couper la recherche : »par exemple, limiter la profondeur de larbre »voir le livre pour dautres idées u fonction dévaluation heuristique »estimation de lutilité qui aurait été obtenue en faisait une recherche complète »on peut voir ça comme une estimation de la « chance » quune configuration mènera à une victoire u La solution optimale nest plus garantie IFT615© Froduald Kabanza39 ???? min max -24

40 Exemple de fonction dévaluation l Pour le jeu déchec, une fonction dévaluation typique est une somme (linéaire) pondérée de métriques estimant la qualité de la configuration: Eval(s) = w 1 f 1 (s) + w 2 f 2 (s) + … + w n f n (s) l Par exemple: u w i = poids du pion, f i (s) = (nombre doccurrence dun type de pion dun joueur) – (nombre doccurrence du même type de pion de lopposant), u etc © Froduald Kabanza40IFT615

41 Eval(s) = (nombre de ligne, colonnes et diagonales disponibles pour Max) - (nombre de ligne, colonnes et diagonales disponibles pour Min) Eval(s) = = 2 Eval(s) = = 1 © Froduald Kabanza41IFT615 Exemple de fonction dévaluation l Pour le tic-tac-toe, supposons que Max joue avec les X. XO X O X O

42 Généralisation aux actions aléatoires l Exemples : u Jeux où on lance un dé pour déterminer la prochaine action u Actions des fantômes dans Pacman l Solution : On ajoute des nœuds chance, en plus des nœuds Max et Min u Lutilité dun nœud chance est lutilité espérée, c.à`d., la moyenne pondérée de lutilité de ses enfants IFT615© Froduald Kabanza42

43 Algorithme Expectimax l Un model probabiliste des comportement des lopposant: u Le modèle peut être une simple distribution de probabilités u Le modèle peut être plus sophistiqué, demandant des inférences/calculs élaborés u Le modèle peut représenter des actions stochastiques/incontrôlables (à cause de de lopposant, lenvironnement) u Le modèle pourrait signifier que des actions de ladversaire sont probables l Pour cette leçon, supposer que (de façon magique) nous avons une distribution de probabilités à associer aux actions de ladversaire/environnement IFT615© Froduald Kabanza43 Avoir une croyance probabiliste sur les actions dun agent ne signifie pas que lagent lance effectivement un dé!

44 Algorithme Expectimax © Froduald Kabanza44IFT615 EXPECTIMAX (n) = UTILITY(n)Si n est un nœud terminal max s successors(n) MINIMAX-VALUE(s) Si n est un nœud Max min s 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 larbre. IFT615

45 Quelques succès et défis l Jeu de dames: En 1994, Chinook a mis fin aux 40 ans de règne du champion du monde Marion Tinsley. l Jeu déchecs: En 1997, Deep Blue a battu le champion du monde Garry Kasparov dans un match de six jeux. l Othello: les champions humains refusent la compétition contre des ordinateurs, parce que ces derniers sont trop bons! l Go: les champions humains refusent la compétition contre des ordinateurs, parce que ces derniers sont trop mauvais! © Froduald Kabanza45IFT615

46 Objectifs du cours IFT615© Froduald Kabanza46 agents intelligents agents intelligents recherche heuristique recherche heuristique recherche locale Algorithmes et concepts recherche à deux adversaires recherche à deux adversaires

47 Algorithmes pour jeux à tour de rôle : pour quel type dagent? IFT615© Froduald Kabanza47 Simple reflex Model-based reflex Goal-based Utiliy-based

48 Algorithmes pour jeux à tour de rôle : pour quel type dagent? IFT615© Froduald Kabanza48 Simple reflex Model-based reflex Goal-based Utiliy-based

49 Conclusion l La recherche sur les jeux révèlent des aspects fondamentaux applicables à dautres domaines l La perfection est inatteignable dans les jeux : il faut approximer l Alpha-bêta a la même valeur pour la racine de larbre de jeu que minimax l Dans le pire des cas, il se comporte comme minimax (explore tous les nœuds) l Dans le meilleur cas, il peut résoudre un problème de profondeur 2 fois plus grande dans le même temps que minimax IFT615© Froduald Kabanza49

50 Vous devriez être capable de... l Décrire formellement le problème de recherche associée au développement dune IA pour un jeu à deux adversaires l Décrire les algorithmes: u minimax u élagage alpha-bêta u expectimax l Connaître leurs propriétés théoriques l Simuler lexécution de ces algorithmes l Décrire comment traiter le cas en temps réel IFT615© Froduald Kabanza50

51 © Froduald Kabanza51IFT615 TP1 l TP1 TP1 l Prochain cours Prochain cours


Télécharger ppt "IFT 615 – Intelligence Artificielle Algorithmes pour les jeux à tour de rôle Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza."

Présentations similaires


Annonces Google