Intelligence Artificielle et Robotique Programmation des jeux de reflexion Damien Pellier [email protected] http://www.math-info.univ-paris5.fr/~pellier/ PRES Paris Sorbonne Cit´ e ´ Ecole D’Ing´ enieur de l’Universit´ e Paris Diderot Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 1 / 28 Sommaire 1 L’algorithme Minimax 2 Limiter les ressources 3 L’´elagage α-β 4 Jeux non-d´eterminsites Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 2 / 28 Programmation des jeux vs. r´esolution de probl`emes L’adversaire est impr´evisible ⇒ la solution doit ˆetre contingente Un temps limite est impos´e ⇒ quand il n’est pas possible d’atteindre le but il faut ˆetre capable de l’approximer Pistes ´etudi´ees : 1 2 3 algorithme pour joueur parfait (Von Neumann, 1944) horizon fini, ´evaluation approaximative (Zuse, 1945 ; Shannon 1950) ´elagage pour r´eduire le coˆ ut de recherche (McCarthy, 1956) Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 3 / 28 Programmation des jeux de r´eflexion Les jeux de strat´ egies Les diff´erents types de jeux imformation parfaite d´ eterministe ´echec, reversi, go, morpion imparfaite Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique hasard backgammon, monopoly bridge, pocker, scrabble 4 / 28 L’arbre de recherche MiniMax Arbre de jeux du morpion MAX(X) X X X X MIN(O) X X X X O X O X O X X O X X O X X O X O X O -1 X O X OO X X X O 0 X O X X X OO +1 MAX(X) MIN(O) Terminal Utilité Damien Pellier (PRES Paris Sorbonne Cit´ e) X X X O Intelligence Artificielle et Robotique 5 / 28 L’algorithme recherche MiniMax Donne le coup parfait pour un jeu d´eterministe `a information parfaite Id´ee : choisir le meilleur coup vers la position avec la meilleure valeur minimax = meilleur valeur possible contre le meilleur jeu de l’adversaire Exemple d’un jeu `a deux coups : MAX 3 MIN 3 A3 A2 A1 3 2 2 A11 A12 A13 A21 A22 A23 A31 A32 A33 12 Damien Pellier (PRES Paris Sorbonne Cit´ e) 8 2 4 Intelligence Artificielle et Robotique 6 14 5 2 6 / 28 L’algorithme MiniMax Algorithme funtion Minimax-Decision(game) returns an operator foreach op in Operators[game] do Value[op] ← Minimax-Value(Apply(op, game), game) end return the op with the highest Value[op] end funtion Minimax-Value(state, game) returns an utility value if Terminal-Test[game](state) then return Utility[game](state) else if Max is to move in state then return the highest Minimax-Value of Successors(state) else return the lowest Minimax-Value of Successors(state) end end Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 7 / 28 L’algorithme MiniMax Propri´ et´ e de MiniMax Minimax s’arrˆete toujours si l’arbre est fini Optimal, si l’adversaire est optimal Si b est le nombre de coups possibles par situation et m la profondeur maximale de l’arbre, minimax a une complexit´e en I I temps de O(b m ) en espace O(bm) Pour les ´echecs par exemple : b ≈ 35, m ≈ 100 ⇒ solution exacte impossible Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 8 / 28 L’algorithme MiniMax Ressources limit´ ees Par exemple, on a 100 secondes et on peut explorer 104 nœuds par secondes. Donc, on peut regarder 106 nœuds par coup. Approches standard : I I Test d’arrˆet (cutoff) : par exemple limiter la profondeur Fonction d’´evaluation = valeur estim´ee d’une position Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 9 / 28 L’algorithme MiniMax Fonction d’´ evaluation Noir joue Blanc joue (blanc en meilleur position) (noir gagne) Aux ´echecs on choisit par exemple une somme lin´eaire pond´er´ee de caract´eristiques. Eval(s) = w1 f1 (s) + w2 f2 (s) + . . . + wn fn (s) e.g., w1 = 9 et f1 = (le nombre de reines blanches) - (le nombre de reines noires), etc. Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 10 / 28 L’algorithme MiniMax L’effet horizon Dans cette position Noir peut mettre le roi blanc en ´echec un certain nombre de fois mais le pion blanc va se transformer in´evitablement en reine. On en s’aper¸coit tr`es tard. Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 11 / 28 L’algorithme MiniMax Arrˆ eter la recherche On peut facilement modifier l’algorithme minimax en ajoutant un test d’arrˆet (remplacer Terminal-Test par Cutoff-Test et en rempla¸cant Utility par Eval. En pratique : probl`emes de performances, e.g., b m = 106 et b = 35. Donc m = 4. I Aux ´echecs on ne pourrait que regarder 4 demi-coups en avance F F F Un humain normal ≈ 4 coups d’avance Un ordinateur classique et un expert humain ≈ 8 coups d’avance Deep Blue, Kasparov ≈ 12 coups d’avance ´ Id´ee : Elaguer des branches inutiles ⇒ algorithme α-β Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 12 / 28 L’algorithme α-β Exemple ´ elagage 3 MAX 3 MIN 3 12 Damien Pellier (PRES Paris Sorbonne Cit´ e) 8 Intelligence Artificielle et Robotique 13 / 28 L’algorithme α-β Exemple ´ elagage 3 MAX 3 MIN 2 X 3 12 Damien Pellier (PRES Paris Sorbonne Cit´ e) 8 X 2 Intelligence Artificielle et Robotique 13 / 28 L’algorithme α-β Exemple ´ elagage 3 MAX 3 MIN 2 X 3 12 Damien Pellier (PRES Paris Sorbonne Cit´ e) 8 14 X 2 Intelligence Artificielle et Robotique 14 13 / 28 L’algorithme α-β Exemple ´ elagage 3 MAX 3 MIN 2 X 3 12 Damien Pellier (PRES Paris Sorbonne Cit´ e) 8 14 5 X 2 Intelligence Artificielle et Robotique 14 5 2 13 / 28 L’algorithme α-β Exemple ´ elagage 3 MAX 3 MIN 2 X 3 12 Damien Pellier (PRES Paris Sorbonne Cit´ e) 8 14 52 X 2 Intelligence Artificielle et Robotique 14 5 2 13 / 28 L’algorithme α-β Propri´ et´ es L’´elagage n’affecte pas le r´esultat final Un bon choix am´eliore l’efficacit´e de l’´elagage Avec un choix parfait la complexit´e en temps est O(b m/2 ) ⇒ double la profondeur de recherche par rapport ` a Minimax ⇒ peut facilement atteindre des profondeurs de l’ordre de 8 coups d’avance aux ´echecs Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 14 / 28 L’algorithme α-β Pourquoi ce nom ? α est la meilleure valeur (la plus grande) pour MAX trouv´ee jusqu’`a pr´esent en dehors du chemin actuel MAX MIN MAX Damien Pellier (PRES Paris Sorbonne Cit´ e) Si V est pire que α MAX va l’´eviter ⇒ ´elaguer la branche V D´efinir β d’une mani`ere similaire pour MIN : β est la meilleur valeur (la plus petite) pour MIN jusqu’`a pr´esent Intelligence Artificielle et Robotique 15 / 28 L’algorithme α-β L’algorithme Max-Value Algorithme funtion Max-Value(state, game, α, β) returns the minimax value of state input: state, current state in game game, game description α, the best score for Max along the path to state β, the best score for Min along the path to state if Cutoff-Test(state) then return Eval(state) foreach s in Successors(state) do α ← Max(α,Min-Value(s, game, α, β)) if α ≥ β then return β end return α end Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 16 / 28 L’algorithme α-β L’algorithme Min-Value Algorithme funtion Min-Value(state, game, α, β) returns the minimax value of state input: state, current state in game game, game description α, the best score for Max along the path to state β, the best score for Min along the path to state if Cutoff-Test(state) then return Eval(state) foreach s in Successors(state) do β ← Min(β,Min-Value(s, game, α, β)) if β ≥ α then return α end return β end Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 17 / 28 L’algorithme α-β Valeur exacte des nœuds n’est pas importante MAX 1 MIN 1 2 2 2 1 4 1 20 20 20 40 Seulement l’ordre est important Le comportement est pr´eserv´e pour chaque transformation monotone de la fonction Eval Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 18 / 28 L’algorithme α-β Remarques L’ordre dans lequel on visite les fils est important Si on trouve rapidement une bonne valeur, on ´elague plus de nœuds On peut trier les fils par leur utilit´e Il y a d’autres am´eliorations √ Au mieux, on visite n nœuds au lieu de n = b m pour minimax Aux ´echecs on utilise au d´ebut du jeu des bases de donn´ees d’ouverture, au milieu α-β et `a la fin des algorithmes sp´eciaux Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 19 / 28 L’algorithme SSS* D´efinition : Une strat´egie (compl`ete) pour le joueur max, ´etant donn´e un arbre de jeux A, est un sous-arbre, qui I I I contient la racine de A dont chaque nœud Max a exactement un fils dont chaque nœud Min a tous ses fils Une strat´egie partielle pour le joueur max, ´etant donn´e un arbre de jeux A, est un sous-arbre de A, qui I I contient sa racine dont chaque nœud Max a au plus un fils Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 20 / 28 L’algorithme SSS* Une strat´egie partielle S repr´esente implicitement toutes les strat´egies compl`etes CS auxquelles on aboutie en d´eveloppant S La valeur d’une strat´egie est le minimum des valeurs des feuilles La valeur d’une strat´egie partielle S donne une borne sup´erieur pour toutes ses strat´egies compl`etes CS Id´ee : On recherche a compl´eter les strat´egies partielles suivant leur valeur jusqu’`a pr´esent Une fois quand a trouv´e la strat´egie optimale compl`ete `a partir d’un nœud x on ne consid`ere plus les autres de x Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 21 / 28 L’algorithme SSS* Exemple MAX a b MIN MAX MAX c f e g d h i j k l m n o p q r s t u v w x y 9 3 7 2 9 3 3 2 9 2 3 8 10 2 Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 22 / 28 L’algorithme SSS* Exemple MAX a b MIN MAX MAX c f e g d h i j k l m n o p q r s t u v w x y 9 3 7 2 9 3 3 2 9 2 3 8 10 2 Trois strat´egies partielles Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 22 / 28 L’algorithme SSS* Exemple MAX a b MIN MAX MAX c f e g d h i j k l m n o p q r s t u v w x y 9 3 7 2 9 3 3 2 9 2 3 8 10 2 On a trouv´e une start´egie compl`ete (par construction la meilleur) Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 22 / 28 L’algorithme SSS* Exemple MAX a b MIN MAX MAX c f e g d h i j k l m n o p q r s t u v w x y 9 3 7 2 9 3 3 2 9 2 3 8 10 2 On d´eveloppe la meilleure strat´egie, puis on voit que la troisi`eme pourrait ˆetre meilleure Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 22 / 28 L’algorithme SSS* D´ etails de l’algorithme Successors(x) donne pour tout nœud x la liste des successeurs Eval(x) donne l’´evaluation d’un noeud x Max(x) est vrai si et seulement si x est un nœud max On utilise une pile P pour mettre les nœuds encore `a trait´es Ordonnate(P, hx, f , hi) met hx, f , hi dans la pile, ordonn´ee en ordre descendant par les valeurs h. Si dans P il y a d´ej`a un ´el´ement avec la mˆeme valeur h on range hx, f , hi avant. Il y a deux types de nœuds : I I f : ferm´e (la strat´egie optimale pour lui est connu) v : vivant Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 23 / 28 L’algorithme SSS* L’algorithme Algorithme funtion Valeur(x0 : node) returns un r´ eel P ← (hx0 , v , ∞i) repeat hx, s, hi ← First(P) ; P ← Rest(P) ; x1 , x2 , . . . , xm ← S(x) if s = v then if m = 0 then Ordonnate(P, hx, f ,Min(h,Eval(x))i) else if Max(x) then Stack(P, hx1 , v , hi, . . . , hxm , v , hi) else Stack(P, hx1 , v , hi) else if Max(x) then if x has a child y then Stack(P, hy , v , hi) else z ← Parent(x) ; Stack(P, hz, f , hi) else z ← Parent(x) ; Stack(P, hz, f , hi) ; Remove-All-Child(z) until P = hx, f , hi return h Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 24 / 28 L’algorithme SSS* Traces ha, v , ∞i hb, v , ∞ihc, v , ∞ihd, v , ∞i he, v , ∞ihc, v , ∞ihd, v , ∞i hl, v , ∞ihm, v , ∞ihc, v , ∞ihd, v , ∞i hm, v , ∞ihc, v , ∞ihc, v , ∞ihl, f , 9i hc, v , ∞ihd, v , ∞ihl, f , ∞ihm, f , 3i hh, v , ∞ihd, v , ∞ihl, f , ∞ihm, f , 3i hr , v , ∞ihs, v , ∞ihd, v , ∞ihl, f , 9ihm, f , 3i hs, v , ∞ihd, v , ∞ihl, f , 9ihr , f , 3ihm, f , 3i hd, v , ∞ihl, f , 9ihr , f , 3ihm, f , 3ihs, f , 2i hj, v , ∞ihl, f , 9ihr , f , 3ihm, f , 3ihs, f , 2i hv , v , ∞ihw , v , ∞ihl, f , 9ihr , f , 3ihm, f , 3ihs, f , 2i hw , v , ∞ihl, f , 9ihv , f , 3ihr , f , 3ihm, f , 3ihs, f , 2i hl, f , 9ihw , f , 8ihv , f , 3ihr , f , 3ihm, f , 3ihs, f , 2i etc. Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 25 / 28 Jeux non-d´eterministes Dans le Backgammon par exemple, le lancer des d´es d´etermine les coups corrects. Exemple simplifi´e avec lancer d’une pi`ece de monnaie : MAX CHANCE 3 0.5 2 0.5 0.5 2 MIN Damien Pellier (PRES Paris Sorbonne Cit´ e) -1 4 4 7 0.5 0 4 6 Intelligence Artificielle et Robotique -2 0 5 -2 26 / 28 Algorithmes pour les jeux non-d´eterministes Expectimax donne coup parfait comme Minimax On doit consid´erer les nœuds CHANCE On doit ajouter dans l’algorithme : if state is a chance node then return average of Expectimax-Value of Successors(state) L’algorithme α-β peut ˆetre adapt´e, si Eval est born´ee. Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 27 / 28 Valeur exacte des nœuds est importante MAX A1 CHANCE A1 A2 2.1 0.9 1.3 2 MIN 2 0.9 0.1 3 2 3 0.1 1 3 1 0.9 4 1 A2 21 4 40.9 20 4 20 0.9 0.1 30 20 30 0.1 1 30 1 40 1 40 40 Le comportement est pr´eserv´e seulement pour chaque transformation positive et lin´eaire de EVAL Eval doit ˆetre proportionnelle au gain attendu Damien Pellier (PRES Paris Sorbonne Cit´ e) Intelligence Artificielle et Robotique 28 / 28
© Copyright 2024 ExpyDoc