Les jeux (méthodes min-max et -) L3 MI
Introduction (1) Algorithme du minimax (ou min-max) Recherche du meilleur coup Jeux à somme nulle Jeu confrontant deux joueurs, S'achève à la victoire d'un des joueurs ou après un match nul. Exemples : dames, échecs, puissance 4, …
Introduction (2) Principe de fonctionnement : comparaison entre les différents choix proposés à l'ordinateur Aboutir à une situation paraissant avantageuse, Il est essentiel de pouvoir apprécier une situation donnée c’est-à-dire de pouvoir la noter de façon numérique.
Fonction d’évaluation Estime la force d’une position. Exemple de valeurs : f(n) > 0 : position favorable au programme et défavorable à l’adversaire f(n) < 0 : position défavorable au programme et favorable à l’adversaire f(n) = 0 : position équilibrée f(n) = + ∞ : le programme gagne f(n) = - ∞ : l’adversaire gagne Généralement, fonction linéaire : ce que l’un des joueurs gagne l’autre le perd.
Une méthode naïve Nœud terminal le plus favorable = nœud I (valeur 9). -5 C D 2 E 3 F -7 G H I J -6 K L M 1 N O Actions possibles du programme Actions possibles de l’adversaire États terminaux Nœud terminal le plus favorable = nœud I (valeur 9). Le programme joue C qui permet d'atteindre l'état I. L'adversaire doit choisir entre les états H, I et J. Il joue logiquement J qui l'amène dans un état favorable Le programme perd. Les états D et E auraient été préférables.
Principe du min-max (1) Exemple précédent : en jouant le coup étant susceptible de l'amener dans la meilleure situation possible, le programme a perdu. Raison : on ignore les mouvements de l'adversaire. Solution : toujours se préparer au pire (c’est-à-dire que l'adversaire jouera le meilleur coup possible pour lui).
Le principe de la méthode min-max (2) Choisir les actions qui maximisent la fonction d'évaluation en supposant que l'adversaire choisira les actions qui la minimiseront. Etendre l'arbre de jeu jusqu'au nœuds terminaux (ou à une profondeur déterminée), Calculer la valeur de la fonction de gain pour chaque nœud terminal, Propager ces valeurs aux nœuds parents (non-terminaux) en affectant à un nœud : La valeur minimum de ses fils lorsqu'ils résultent d'action de l'adversaire, La valeur maximum de ses fils lorsqu'ils résultent d'action du programme. Dans le premier cas, le parent est dit MIN, MAX dans le second.
MIN-MAX A 3 B -5 C 3 D E -7 F 4 G -5 H 3 I 8 J 9 K 5 L 2 M -7 N 4 O -5 E -7 F 4 G -5 H 3 I 8 J 9 K 5 L 2 M -7 N 4 O -5 S 3 T 5 U -7 V -9 P 9 Q -6 R W -3 X -5 Programme - max Z # Etats terminaux Adversaire - min
Le principe de l’élagage - (1) Certaines actions ne seront pas choisies par un adversaire intelligent. Il faut élaguer ces parties de l’arbre, c’est-à-dire ne pas la développer. Etendre l’arbre de jeu jusqu’à une profondeur N par recherche en profondeur, Ne plus développer les successeurs d’un nœud dès qu’il est évident que ce nœud ne sera pas choisi (compte tenu des nœuds déjà examinés), Chaque nœud MAX garde la trace d’une α-valeur égale à la valeur de son meilleur successeur trouvé jusqu’ici, Chaque nœud MIN garde la trace d’une ß-valeur égale à la valeur de son plus mauvais successeur trouvé jusqu’ici.
Règles d’élagage Interrompre la recherche d’un nœud MAX si sa α-valeur ≥ β-valeur de son parent Interrompre la recherche d’un nœud MIN si sa β-valeur ≤ α-valeur de son parent
- A B C D E F G -5 H 3 I 8 J K L 2 M N 4 O S 3 T 5 U -7 V -9 P 9 Q =3 B =-5 C =3 D E =2 F =4 G -5 H 3 I 8 J =9 K =5 L 2 M N 4 O =-3 S 3 T 5 U -7 V -9 P 9 Q -6 R W -3 X -5 Programme - max Z # Etats terminaux Adversaire - min
Statistiques Voici un exemple de comparaison de coût sur un algo min-max avec et sans coupures α-β. Ces mesures ont été prises sur un programme jouant au jeu Othello et analysant 5 coups à l'avance (profondeur de l'arbre = 5)
En résumé Les algorithmes de jeux utilisent des arbres de recherche représentant alternativement les actions du programme et celles de l’adversaire. La fonction d’évaluation estime la qualité d’une situation pour chaque joueur : une valeur positive correspond à une situation favorable au programme une valeur négative correspond à une situation défavorable au programme une valeur nulle correspond à un équilibre Min-max est une procédure qui choisit les actions en supposant que l’adversaire choisira toujours sa meilleure action. L’élagage α-β est une procédure qui peut éliminer une grande partie de l’arbre de recherche permettant ainsi d’augmenter la profondeur de recherche. A l'origine les stratégies de jeux ont été étudiées pour aider la recherche en intelligence artificielle mais leur force réside principalement dans la puissance de calcul des machines.