Plan Cinquième partie V Programmation des jeux de réflexion 1. ntroduction à l intelligence artificielle 2. Agents intelligents. Algorithmes classiques de recherche en A 4. Algorithmes et recherches heuristiques 5. Programmation des jeux de réflexion 6. Problèmes de satisfaction de contraintes 7. Agents logiques 8. Logique du premier ordre 9. nférence en logique du première ordre 10. ntroduction à la programmation logique avec Prolog 11. Planification 12. Apprentissage UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 114 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 115 / 415 En bref... Programmation des jeux vs. résolution de problèmes L élagage - L adversaire est imprévisible ) la solution doit être contingente Un temps limite est imposé ) quand il n est pas possible d atteindre le but il faut être capable de l approximer Pistes étudiées : 1. algorithme pour joueur parfait (Von Neumann, 1944) 2. horizon fini, évaluation approaximative (Zuse, 1945 ; Shannon 1950). élagage pour réduire le coût de recherche (McCarthy, 1956) Jeux non-déterminsites UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 116 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 117 / 415
Programmation des jeux de réflexion Les jeux de stratégies L arbre de recherche MiniMax Arbre de jeux du morpion () Les di érents types de jeux MN(O) imformation déterministe hasard parfaite é c h e c, r e v e r s i, g backgammon, o, monopoly morpion imparfaite bridge, pocker, scrabble () MN(O) O O O O O O Terminal O O O O O O O O O O Utilité -1 0 +1 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 118 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 119 / 415 L algorithme recherche MiniMax Donne le coup parfait pour un jeu déterministe à information parfaite dée : 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 à deux coups : MN A1 A2 A 2 2 A11 A12 A1 A21 A22 A2 A1 A2 A 12 8 2 4 6 14 5 2 Algorithme funtion Minimax-Decision(game) returns an operator foreach op in Operators[game] do Value[op] Minimax-Value(Apply(op, game), game) return the op with the highest Value[op] 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) UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 120 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 121 / 415
L e lagage - Jeux non-de terminsites Proprie te de MiniMax Ressources limite es Minimax s arre te 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 complexite en temps de O(b m ) en espace O(bm) L e lagage - Jeux non-de terminsites 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 : Test d arre t (cuto ) : par exemple limiter la profondeur Fonction d e valuation = valeur estime e d une position Pour les e checs par exemple : b 5, m 100 ) solution exacte impossible UPMF Dept. nformatique ntroduction a l intelligence artificielle et a la robotique 122 / 415 L e lagage - Jeux non-de terminsites Fonction d e valuation L e et horizon Noir joue Blanc joue (blanc en meilleur position) (noir gagne) UPMF Dept. nformatique ntroduction a l intelligence artificielle et a la robotique 12 / 415 L e lagage - Jeux non-de terminsites Aux e checs on choisit par exemple une somme line aire ponde re e de caracte ristiques. Eval(s) = w1 f1 (s) + w2 f2 (s) +... + wn fn (s) Dans cette position Noir peut mettre le roi blanc en e chec un certain nombre de fois mais le pion blanc va se transformer ine vitablement en reine. On en s aperc oit tre s tard. e.g., w1 = 9 et f1 = (le nombre de reines blanches) - (le nombre de reines noires), etc. ntroduction a l intelligence artificielle et a la robotique UPMF Dept. nformatique 124 / 415 ntroduction a l intelligence artificielle et a la robotique UPMF Dept. nformatique 125 / 415
Arrêter la recherche On peut facilement modifier l algorithme minimax en ajoutant un test d arrêt (remplacer Terminal-Test par Cutoff-Test et en remplaçant Utility par Eval. En pratique : problèmes de performances, e.g., b m =10 6 et b =5. Donc m =4. Aux échecs on ne pourrait que regarder 4 demi-coups en avance 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 dée : Élaguer des branches inutiles ) algorithme - MN 12 8 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 126 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 127 / 415 MN 2 MN 2 14 12 8 2 12 8 2 14 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 127 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 127 / 415
MN 2 14 5 MN 2 14 5 2 12 8 2 14 5 2 12 8 2 14 5 2 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 127 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 127 / 415 Propriétés Pourquoi ce nom? L élagage n a ecte pas le résultat final Un bon choix améliore l e cacité de l élagage Avec un choix parfait la complexité en temps est O(b m/2 ) ) double la profondeur de recherche par rapport à Minimax ) peut facilement atteindre des profondeurs de l ordre de 8 coups d avance aux échecs MN V est la meilleure valeur (la plus grande) pour trouvée jusqu à présent en dehors du chemin actuel Si V est pire que va l éviter ) élaguer la branche Définir d une manière similaire pour MN : est la meilleur valeur (la plus petite) pour MN jusqu à présent UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 128 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 129 / 415
L algorithme Max-Value L algorithme Min-Value Algorithme funtion Max-Value(state, game,, ) returns the minimax value of state state, currentstateingame input: game, gamedescription, 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 return Algorithme funtion Min-Value(state, game,, ) returns the minimax value of state state, currentstateingame input: game, gamedescription, 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 return UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 10 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 11 / 415 Valeur exacte des nœuds n est pas importante Remarques MN 1 1 2 2 1 2 4 Seulement l ordre est important 20 1 20 20 40 Le comportement est préservé pour chaque transformation monotone de la fonction Eval L ordre dans lequel on visite les fils est important Si on trouve rapidement une bonne valeur, on élague plus de nœuds On peut trier les fils par leur utilité l y a d autres améliorations Au mieux, on visite p n nœuds au lieu de n = b m pour minimax Aux échecs on utilise au début du jeu des bases de données d ouverture, au milieu - et à la fin des algorithmes spéciaux UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 12 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 1 / 415
Définition : Une stratégie (complète) pour le joueur max, étant donné un arbre de jeux A, estunsous-arbre,qui 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égie partielle pour le joueur max, étant donné un arbre de jeux A, est un sous-arbre de A, qui contient sa racine dont chaque nœud Max a au plus un fils Une stratégie partielle S représente implicitement toutes les stratégies complètes C S auxquelles on aboutie en développant S La valeur d une stratégie est le minimum des valeurs des feuilles La valeur d une stratégie partielle S donne une borne supérieur pour toutes ses stratégies complètes C S dée : On recherche a compléter les stratégies partielles suivant leur valeur jusqu à présent Une fois quand a trouvé la stratégie optimale complète à partir d un nœud x on ne considère plus les autres de x UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 14 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 15 / 415 Exemple Exemple a a MN b c d MN b c d e f g h i j k e f g h i j k l m n o p q r s t u v w x y 9 7 2 9 2 9 2 8 10 2 l m n o p q r s t u v w x y 9 7 2 9 2 9 2 8 10 2 Trois stratégies partielles UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 16 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 16 / 415
Exemple Exemple a a MN b c d MN b c d e f g h i j k e f g h i j k l m n o p q r s t u v w x y l m n o p q r s t u v w x y 9 7 2 9 2 9 2 8 10 2 9 7 2 9 2 9 2 8 10 2 On a trouvé une startégie complète (par construction la meilleur) On développe la meilleure stratégie, puis on voit que la troisième pourrait être meilleure UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 16 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 16 / 415 Détails de l algorithme L algorithme Successors(x) donne pour tout nœud x la liste des successeurs Eval(x) donne l évaluation 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 à traités Ordonnate(P, hx, f, hi) met hx, f, hi dans la pile, ordonnée en ordre descendant par les valeurs h. SidansP il y a déjà un élément avec la même valeur h on range hx, f, hi avant. l y a deux types de nœuds : f :fermé(lastratégieoptimalepourluiestconnu) v :vivant Algorithme funtion Valeur(x 0 :node)returns un réel P (hx 0, v, 1i) repeat hx, s, hi First(P) ; P Rest(P) ; x 1, x 2,...,x m S(x) if s = v then if m =0then Ordonnate(P, hx, f,min(h,eval(x))i) else if Max(x) then Stack(P, hx 1, v, hi,...,hx m, v, hi) else Stack(P, hx 1, 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 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 17 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 18 / 415
Traces Jeux non-déterministes ha, v, 1i hb, v, 1ihc, v, 1ihd, v, 1i he, v, 1ihc, v, 1ihd, v, 1i hl, v, 1ihm, v, 1ihc, v, 1ihd, v, 1i hm, v, 1ihc, v, 1ihc, v, 1ihl, f, 9i hc, v, 1ihd, v, 1ihl, f, 1ihm, f, i hh, v, 1ihd, v, 1ihl, f, 1ihm, f, i hr, v, 1ihs, v, 1ihd, v, 1ihl, f, 9ihm, f, i hs, v, 1ihd, v, 1ihl, f, 9ihr, f, ihm, f, i hd, v, 1ihl, f, 9ihr, f, ihm, f, ihs, f, 2i hj, v, 1ihl, f, 9ihr, f, ihm, f, ihs, f, 2i hv, v, 1ihw, v, 1ihl, f, 9ihr, f, ihm, f, ihs, f, 2i hw, v, 1ihl, f, 9ihv, f, ihr, f, ihm, f, ihs, f, 2i hl, f, 9ihw, f, 8ihv, f, ihr, f, ihm, f, ihs, f, 2i etc. Dans le Backgammon par exemple, le lancer des dés détermine les coups corrects. Exemple simplifié avec lancer d une pièce de monnaie : CHANCE MN 2-1 0.5 0.5 0.5 0.5 2 4 7 4 4 0-2 6 0 5-2 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 19 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 140 / 415 Algorithmes pour les jeux non-déterministes Valeur exacte des nœuds est importante Expectimax donne coup parfait comme Minimax On doit considérer 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) CHANCE MN A1 A2 2.1 1. 0.9 0.1 0.9 0.1 2 1 4 A1 A2 21 40.9 0.9 0.1 0.9 0.1 20 0 1 40 peut être adapté, si Eval est bornée. 2 2 1 1 4 4 20 20 0 0 1 1 40 40 Le comportement est préservé seulement pour chaque transformation positive et linéaire de EVAL Eval doit être proportionnelle au gain attendu UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 141 / 415 UPMF Dept. nformatique ntroduction à l intelligence artificielle et à la robotique 142 / 415