Recherche adversiale (Jeux à 2 joueurs) Chapter 6 Section 1 – 4.

Slides:



Advertisements
Présentations similaires
Bratec Martin ..
Advertisements

NOTIFICATION ÉLECTRONIQUE
Fragilité : une notion fragile ?
SEMINAIRE DU 10 AVRIL 2010 programmation du futur Hôtel de Ville
Phono-sémantique différentielle des monosyllabes italiens
MAGGIO 1967 BOLOGNA - CERVIA ANOMALIES DU SOMMEIL CHEZ L'HOMME
droit + pub = ? vincent gautrais professeur agrégé – avocat
Transcription de la présentation:

Recherche adversiale (Jeux à 2 joueurs) Chapter 6 Section 1 – 4

Plan Décisions optimales Élagage (pruning) α-β Décisions imparfaites en temps réel

Jeux vs. problèmes de recherche Ladversaire "imprévisible" Choisir un mouvement pour chaque réponse de ladversaire Limites de temps, lespace trop grand ne pourra pas trouver un but, doit faire une approximation

Arbre de jeu (2 joueurs, déterministe, chacun son tour)

Minimax Décision « parfaire » dans des jeux déterministes Idée: choisir un pas vers une position avec la valeur minimax la plus élevée –= meilleurs rendement atteignable contre le meilleur jeu (en supposant que ladversaire essaie de faire la même chose) E.g., Jeu à 2 plis

Algorithme Minimax

Propriétés de minimax Complète? Oui (si larbre est fini) Optimal? Oui (contre un joueur optimal qui utilise la même stratégie) Temps? O(b m ) Espace? O(bm) (exploration en profondeur dabord) Pour les échecs, b 35, m 100 pour un jeu « raisonnable » solution exacte infaisable

Limiter la profondeur Nb de plis à développer –Pli (ply) = un couche de jeu, par Max ou par Min Changement à faire dans lalgorithme if TERMINAL-TEST(state) then return UTILITY(state) If DEPTH-LIMIT(state) then return EVAL(state) …

Algorithme α-β – pour ne pas explorer des nœuds inutiles Sur un chemin, on a des limites connues pour la valeur à trouver [α,β] (initialisées à [-,+]) Max a déjà trouvé une solution α, et Min ne va pas permettre à choisir une solution plus grande que β sur cette branche –Pour un nœud Max A, on tente de maximiser. Si un enfant B génère une valeur > β, alors le nœud parent (Min) ne va jamais choisir ce nœud A. On coupe le reste de la branche. –Pour un nœud Min, on tente de minimiser. Si un enfant génère une valeur < α, alors son parent (Max) ne va jamais choisir le nœud. On coupe le reste de la branche A [α,β] MAX B >β MIN MIN

Algorithme α-β

Exemple

Exemple de lélagage α-β

Propriété de α-β Lélagage naffecte pas le résultat final –Élaguer seulement les nœuds qui ne sont pas compétitifs La quantité de nœuds élagués dépend de lordre de nœuds Avec un ordre parfait, complexité en temps = O(b m/2 ) Doubler la profondeur de recherche

Pourquoi appelé α-β? α est la valeur du meilleur choix trouvé jusquici pour tous les points de choix le long le chemin pour max Si v est la plus grande valeur quon peut espérer dune branche, et qui est pire que α, alors max ne va pas choisir la branche Élaguer la branche Définir β similairement pour min

Limites de ressource Supposons quon a100 secs, et on peut explorer 10 4 nœuds/sec 10 6 nœuds par pas Approche standard : Test de cutoff : e.g., limite de profondeur (peut-être ajouter la recherche de quiescence (certains nœuds sont quiet): permettre plus de profondeur pour les nœuds prometteurs) Fonction dévaluation = désirabilité dune position

Fonction dévaluation Pour les échecs, typiquement une somme pondéré sur les caractéristiques (features) Eval(s) = w 1 f 1 (s) + w 2 f 2 (s) + … + w n f n (s) e.g., w 1 = 9 avec f 1 (s) = (# reines blanc) – (# reines noire) e.g. tic-tac-toe: f 1 (s) = 3* (#lignes avec 2 O) + (#lignes avec 1 O) – [3*(#lignes avec 2 X) + (#lignes avec 1 X)] etc.

Couper (Cutting off) la recherche MinimaxCutoff est identique à MinimaxValue excepté 1.Terminal? Est remplacer par Cutoff? 2.Utility est remplacé par Eval Q: Penser comment implanter ça dans le package de Java Est-ce que ça fonctionne en pratique? b m = 10 6, b=35 m=4 Un joueur qui examine 4 plis en avant est un joueur médiocre! –4-ply novice humain –8-ply PC typique, master humain –12-ply Deep Blue, Kasparov

Jeux déterministes en pratique Checkers: Chinook ended 40-year-reign of human world champion Marion Tinsley in Used a precomputed endgame database defining perfect play for all positions involving 8 or fewer pieces on the board, a total of 444 billion positions. Chess: Deep Blue defeated human world champion Garry Kasparov in a six-game match in Deep Blue searches 200 million positions per second, uses very sophisticated evaluation, and undisclosed methods for extending some lines of search up to 40 ply. Othello: human champions refuse to compete against computers, who are too good. Go: human champions refuse to compete against computers, who are too bad. In go, b > 300, so most programs use pattern knowledge bases to suggest plausible moves.

Histoire sur les échecs ( "Machines" that played chess appeared in the 1700 and 1800s, but they were all hoaxes. In the 1950s, the first papers on programs to play chess were published by Claude Shannon and Alan Turing. In the 1956, the alpha-beta search algorithm was invented. Alpha-beta is a very common search technique for adversarial games, including chess. In the 1960s, computer chess programs started playing each other. In the 1970s, computer chess programs began being successful in tournaments with humans. In the 1980s, computers started beating masters and grandmasters in tournament play, and also received master titles of their own. In 1997, Deep Blue beat Gary Kasparov, the world champion, in a six game match. Current chess programs continue to beat the world champions. Chess programs now have their own tournaments.

Sommaire Les jeux sont amusants à travailler Ils illustrent plusieurs aspects dintelligence et motivent des approches en IA La perfection est inatteignable one doit faire lapproximation La décision dépend de ladversaire Minimax suppose que ladversaire utilise la même stratégie et la même fonction dévaluation –Solution optimale dans ce contexte –Et si ladversaire est différent? Fonction dévaluation: selon lexpérience Souvent combiné avec des jeux stockés (ending games) ou des jeux représentatifs