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

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

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

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

Recherche adversiale(Jeux à 2 joueurs)

Chapter 6

Section 1 – 4

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

Plan

• Décisions optimales

• Élagage (pruning) α-β

• Décisions imparfaites en temps réel

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

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

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

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

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

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

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

Algorithme Minimax

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

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

••••

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

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)

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

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

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

Algorithme α-β

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

Algorithme α-β

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

Exemple

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

Exemple de l’élagage α-β

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

Exemple de l’élagage α-β

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

Exemple de l’élagage α-β

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

Exemple de l’élagage α-β

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

Exemple de l’élagage α-β

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

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

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

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

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

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

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

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.

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

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.

Page 23: Recherche adversiale (Jeux à 2 joueurs) Chapter 6 Section 1 – 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.

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

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.

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

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