Recherche adversiale (Jeux à 2 joueurs) Chapter 6 Section 1 – 4.
-
Upload
philibert-duchesne -
Category
Documents
-
view
108 -
download
0
Transcript of Recherche adversiale (Jeux à 2 joueurs) Chapter 6 Section 1 – 4.
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
• L’adversaire "imprévisible" Choisir un mouvement pour chaque réponse de l’adversaire
• Limites de temps, l’espace 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 l’adversaire essaie de faire la même chose)
• E.g., Jeu à 2 plis
•
Algorithme Minimax
Propriétés de minimax• Complète? Oui (si l’arbre est fini)• Optimal? Oui (contre un joueur optimal qui utilise la même
stratégie)• Temps? O(bm)• Espace? O(bm) (exploration en profondeur d’abord)• 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 l’algorithme
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 α-β
Algorithme α-β
Exemple
Exemple de l’élagage α-β
Exemple de l’élagage α-β
Exemple de l’élagage α-β
Exemple de l’élagage α-β
Exemple de l’élagage α-β
Propriété de α-β
• L’élagage n’affecte 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 l’ordre de nœuds
• Avec un ordre parfait, complexité en temps = O(bm/2) Doubler la profondeur de recherche
Pourquoi appelé α-β?
• α est la valeur du meilleur choix trouvé jusqu’ici pour tous les points de choix le long le chemin pour max
• Si v est la plus grande valeur qu’on peut espérer d’une 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 qu’on a100 secs, et on peut explorer 104 nœuds/sec 106 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é d’une position
–
Fonction d’évaluation
• Pour les échecs, typiquement une somme pondéré sur les caractéristiques (features)
Eval(s) = w1 f1(s) + w2 f2(s) + … + wn fn(s)
• e.g., w1 = 9 avec
f1(s) = (# reines blanc) – (# reines noire)
• e.g. tic-tac-toe:
f1(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?bm = 106, b=35 m=4
Un joueur qui examine 4 plis en avant est un joueur médiocre!
1. 4-ply ≈ novice humain2. 8-ply ≈ PC typique, master humain3. 12-ply ≈ Deep Blue, Kasparov
4.
Jeux déterministes en pratique• Checkers: Chinook ended 40-year-reign of human world champion
Marion Tinsley in 1994. 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 1997. 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(http://aitopics.org/topic/chess)
• "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 d’intelligence et motivent des
approches en IA• La perfection est inatteignable one doit faire
l’approximation• La décision dépend de l’adversaire• Minimax suppose que l’adversaire utilise la même stratégie et
la même fonction d’évaluation– Solution optimale dans ce contexte– Et si l’adversaire est différent?
• Fonction d’évaluation: selon l’expérience• Souvent combiné avec des jeux stockés (ending
games) ou des jeux représentatifs