Jeux entre deux adversaires

publicité
Jeux entre deux adversaires
● 
Noms des joueurs : Max vs. Min u  Max est le premier à jouer (notre joueur) Min u  Min est son adversaire ● 
On va interpréter le résultat d’une par<e comme la distribu(on d’une récompense au joueur Max u  peut voir ce>e récompense comme le résultat d’un pari u  Max souhaite maximiser sa récompense u  Min souhaite minimiser la récompense de Max (Min va recevoir l’opposé de ce>e récompense) 1 Hugo Larochelle et Froduald Kabanza Max Arbre de recherche
● 
Comme pour les problèmes que A* peut résoudre, on commence par déterminer la structure de notre espace de recherche ● 
Un problème de jeu peut être vu comme un problème de recherche dans un arbre : u  Un nœud (état) ini(al : configura<on ini<ale du jeu u  Une fonc(on de transi(on : »  retournant un ensemble de paires (ac(on, nœud successeur) –  ac<on possible (légale) –  nœud (état) résultant de l’exécu<on de ce>e ac<on u  Un test de terminaison »  indique si le jeu est terminé u  Une fonc(on d’u(lité pour les états finaux (c’est la récompense reçue par le joueur Max) 2 Hugo Larochelle et Froduald Kabanza Arbre de recherche tic-tac-toe
état ini<al fonc<on de transi<on fonc<on d’u<lité 3 Hugo Larochelle Algorithme minimax
● 
Idée: à chaque tour, on suppose que l’ac<on la plus profitable pour le joueur Max ou le joueur Min est prise, c.-­‐à-­‐d. la plus grande valeur minimax utilité(n) Si n est un nœud terminal valeur-­‐minimax(n) = max n’ successeur de n valeur-­‐minimax(n’) Si n est un nœud Max min n’ successeur de n valeur-minimax(n’) Si n est un nœud Min ● 
4 Ces équa<ons donnent un programme récursif pour calculer les valeurs pour tous les nœuds dans l’arbre de recherche Hugo Larochelle et Froduald Kabanza Algorithme minimax
Algorithme minimax(noeudIni*al) 1. 
retourne l’ac<on choisie par tourMax(noeudIni*al) Algorithme tour-max(n) 1. 
2. 
3. 
5. 
si n correspond à une fin de par<e, alors retourner utilité(n) u = -­‐∞, a = void pour chaque paire (a’,n’) donnée par transition(n) 4. 
si l’u<lité de tour-min(n’) > u alors affecter a = a’, u = u<lité de tour-­‐min(n’) retourne l’u<lité u et l’ac<on a // l’ac*on ne sert qu’à la fin (la racine) Algorithme tour-min(n) 1. 
2. 
3. 
5 
5 si n correspond à une fin de par<e, alors retourner utilité(n) u = ∞, a = void pour chaque paire (a’,n’) donnée par transition(n) 4. 
si l’u<lité de tour-max(n’) < u alors affecter a = a’, u = u<lité de tour-max(n’) retourne l’u<lité u et l’ac<on a Hugo Larochelle et Froduald Kabanza Propriétés de minimax
● 
Complet (retourne une solu<on) ? ● 
Op<mal (retourne la meilleure solu<on) ? ● 
Complexité en temps ? u  Oui (si l’arbre est fini) u  Oui (contre un adversaire qui joue de façon op(male) u  O(bm) : »  b : le nombre maximum de coups (ac<ons) légaux à chaque étape »  m : nombre maximum de coups dans un jeu (profondeur maximale de l’arbre) ● 
Complexité en espace mémoire ? ● 
Pour le jeu d’échec : b ≈ 35 et m ≈100 pour une par<e « raisonnable » ● 
Existe-­‐t-­‐il des chemins dans l’arbre qui sont explorés inu<lement ? 6 u  O(bm), puisque recherche en profondeur u  il n’est pas réaliste d’espérer trouver une solu<on exacte en un temps raisonnable Hugo Larochelle et Froduald Kabanza 
Téléchargement