Jeux à deux joueurs : une introduction
par Julien Velcin Licence MIASHS
2020-2021
Stefan GustafssonQuelques éléments de contexte
• Plusieurs points de vue sur le jeu
– théorie des jeux (cf. économie)
– multi-agents en environnement compétitif
• En IA, souvent :
– déterministe
– totalement observable
– deux agents qui jouent chacun leur tour
– deux valeurs « d’utilité » connues à la fin, symétriques et opposées (on parle de « situations adverses »)
Pourquoi les jeux ?
• Un ensemble bien défini et souvent petit de règles
• Une connaissance approfondie des jeux étudiés (ex.
les échecs ou le go)
• Espaces de recherche très vastes
• Remporter une victoire contre un être humain dans un domaine de l’intelligence
Les jeux comme des problèmes de recherche
• Chaque position est un état
• Chaque mouvement est une opération qui permet de passer d’un état à un autre
• L’espace d’état est vraiment très grand
– facteur de branchement des échecs ~35
– arbre de recherche profond (~50 pour les échecs)
Besoin d’heuristiques !
• L’opposant n’est pas facilement prédictible
• La solution est un stratégie
– quel mouvement en fonction de la réponse de l’adversaire ? – prévoir jusqu’à un certain horizon
• Limites de temps
– il faut des heuristiques pour réduire le temps et augmenter l’horizon
– les agents doivent approximer
Exemples de jeux
• Backgammon – TD-Gammon (1992)
• Dames – Chinook (1994)
• Chess – Deep Blue (1997)
• Othello – Logistello (1997)
– beginning, middle, and ending strategy
– generally accepted that humans are no match for computers at Othello
• Bridge (Bridge Barron 1997, Jack 2006)
– imperfect information
– multiplayer with two teams of two
• Go – AlphaGo (2016)
Mais aussi…
Arbre de jeu (2 joueurs,
déterministe, chacun son tour) Minimax
• Décision « parfaite » dans des jeux déterministes
• Idée: choisir un pas vers une position avec la valeur minimax la plus élevée
= meilleurs rendements atteignablescontre le meilleur jeu (en supposant que l’adversaire essaie de faire la même chose)
• Par ex., 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 ≈50 pour un jeu « raisonnable » àsolution exacte infaisable
Limiter la profondeur
• Nombre de plis à développer
– pli (ply) = une 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)
…
Fonction d’utilité
• En limitant la profondeur, il faut réussir à évaluer une situation
• Par exemple aux échecs :
– une fonction est typiquement une combinaison linéaire de variables (features)
eval(s) = w1f1(s) + w2f2(s) + … + wnfn(s) – exemple de variables :
w1= 9
f1(s) = nb de reines du cas 1 – nb de reines du camps 2
Elagage Alpha-Beta
• Alpha = valeur du meilleur choix trouvé jusqu’à présent pour un noeud MAX (plus grande valeur)
• Beta = valeur du meilleur choix trouvé jusqu’à présent pour un noeud MIN (plus petite valeur)
• Quand on parcourt l’arbre :
– si on doit maximiser, on coupe les valeurs < alpha – si on doit minimiser, on coupe les valeur > beta
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 de 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
(a) (b)
(c) (d)
(e) (f)
3 3 12
3 12 8 3 12 8 2
3 12 8 2 14 3 12 8 2 14 5 2
A
B
A
B
A
B C D
A
B C D
A
B
A
B C
[−∞, +∞] [−∞, +∞]
[3, +∞] [3, +∞]
[3, 3]
[3, 14]
[−∞, 2]
[−∞, 2] [2, 2]
[3, 3]
[3, 3]
[3, 3]
[3, 3]
[−∞, 3] [−∞, 3]
[−∞, 2] [−∞, 14]
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)
àon peut donc doublerla profondeur de recherche
Références
• Stuart Russell and Peter Norvig. Artificial Intelligence: A Modern Approach (Third Edition). Prentice-Hall, Englewood Cliffs, NJ, 2010.
• Nombreux transparents repris dans des cours d’Intelligence Artificielle (par ex. M. Scherger, Kent State University, 2006, ou J. Hoffmann, Saarland University, 2014)