1 CSI 4506: Introduction à lintelligence artificielle La recherche adversairiale
2 Plan du Cours Description Terminologie Stratégie naïve de jeux Désavantagés de la Stratégie Naïve Recherche minimax Désavantages de la recherche minimax Recherche
3 Recherche Adversairiale: Description (1) La recherche adversairiale correspond aux techniques de recherche pour les jeux a deux personnes tels que les échecs, les dames, Tic-Tac-Toe, etc… Dans ces jeux: – Les deux joueurs alternent leur tour – Les deux joueurs ont toutes les informations possibles sur la partie. (différent du Bridge, par exemple, ou les joueurs cachent leurs cartes) – Chaque joueur doit réfléchir de manière stratégique à la façon dont son adversaire répondra à son coup, dont lui répondra au coup de ladversaire, etc…
4 Recherche adversairiale: Description (2) La recherche adversairiale doit considérer différentes séquences de coups alternatifs potentiels des deux joueurs afin destimer les conséquences de leurs diverses options immédiates. Les joueurs peuvent alors décider, à partir de cette recherche dans lespace des séquences potentielles, quelle option à la plus grande chance de mener a une victoire.
5 Terminologie (1) Arbre de Jeu: arbre qui consiste en des noeuds qui représentent les options des joueurs dans un jeux à deux joueurs. Les noeuds de cet arbre alternent entre les options des deux joueurs. Tours/Couches: Les différents niveaux dans un arbre de jeux sappellent les tours ou les couches (ply/plies). Noeuds Finaux dans un Arbre de Jeu: Les noeuds terminaux indiquent la fin du jeux, cest a dire une configuration gagnante ou perdante (+1 ou –1) pour le joueur dont on a pris le point de vue. Sil y a match nul, la valeur est de 0.
6 Terminologie (2) Maximiser: Cest le joueur dont le but est datteindre un noeud final de valeur +1. Minimiser: Cest le joueur dont le but est datteindre un noeud final de valeur –1. Match nul: Un joueur doit préférer une victoire plutôt quun match nul, et un match nul plutôt quune défaite.
7 Exemples 1. Illustration des définitions 2. Arbre de Jeu pour Tic-Tac-Toe Ces illustration et exemples seront présentés en classe.
8 Stratégie de jeux Afin de choisir le coup suivant, un joueur doit évaluer les conséquences de chaque option dont celles correspondant à des noeuds internes de larbre de jeu – On assigne +1 à un noeud n, si n est sur une couche de maximiser et lun des enfants de n à la valeur 1 ou si n est sur une couche de minimisés et tous les enfants de n ont la valeur +1. – On assigne –1 a un noeud n, si n est sur une couche de minimiser et lun des enfants de n a la valeur –1 ou si n est sur une couche de maximiser et tous les enfants de n ont la valeur –1. (Voir Illustration et exemple en classe)
9 Problèmes associés à cette stratégie naïve Elle utilise un montant de mémoire exponentiel en terme de la profondeur de larbre!!!! Il vaut mieux utiliser lalgorithme de recherche Minimax qui réduit le montant de mémoire requis pour determiner la valeur dun noeud m particulier en performant une recherche Depth-First de larbre de jeu dont la racine est m.
10 Recherche Minimax (Voir larbre au tableau) N= a n=aN=a N= b,c,d,a n=bN=b,c,d,a N=e,b,c,d,a n=eN=e,b,c,d,a N=h,i,e,b,c,d,a n=hN=h,i,e,b,c,d,a N=h=-1,i,e,b,c,d,a n=hN=h,i,e,b,c,d,a N=i,e,b,c,d,a n=i N=i,e,b,c,d,a N=l,m,n,i,e,b,c,d,a n=l N=l,m,n,i,e,b,c,d,a N=l=-1,m,n,i,e,b,c,d,a n=lN=l,m,n,i,e,b,c,d,a N=m,n,i,e,b,c,d,a n=mN=m,n,i,e,b,c,d,a N=m=1,n,i,e,b,c,d,a n=mN=m,n,i,e,b,c,d,a N=n,i,e,b,c,d,a n=nN=n,i,e,b,c,d,a N=n=1,i,e,b,c,d,a etc...
11 Désavantage de la recherche Minimax La recherche Minimax nest pas très utile en pratique car larbre de jeu de la plupart des jeux intéressants est extrêmement grand!!! Plutôt que danalyser un jeu jusquau bout (jusqua une victoire ou un match nul), on peut vouloir chercher assez loin pour calculer une bonne estimation de la chance à une victoire à partir de différents noeuds internes.
12 La recherche dans un arbre de Jeu avec une fonction dévaluation: La recherche (1) 1. On définie une fonction dévaluation e() telle que e(n) [-1, 1] pour tous les noeuds n. e(n)= -1 victoire pour le minimiser avec 100% de certitude. e(n)=1 victoire pour le maximiser avec 100% de certitude. e(n)=0 pas davantage dun cote ou de lautre -1 < e(n) <0 victoire pour le minimiser avec différent degrés de certitude (< 100%) 0< e(n) < 1 victoire pour le maximiser avec différents degrés de certitudes (< 100%)
13 La recherche dans un arbre de jeu avec une fonction dévaluation: La recherche (2) Exemple aux échecs: e(n) = ( w(n) - b(n) ) / ( w(n) + b(n) ) avec – w(n) = somme des valeurs de toutes les pièces blanches de léchiquier – b(n) = somme des valeurs de toutes les pièces noires de léchiquier
14 La recherche dans un arbre de jeu avec une fonction dévaluation: La recherche (3) 2. Étant donné une fonction dévaluation e(), certains noeuds nont pas besoin dêtre étendus (Les deux cas seront donnés en classe)
15 La recherche La recherche Visitez larbre dans un ordre Depth-First Lorsque vous rencontrerez un nouveau noeud, n, – Si n est un noeud final, alors appliquer la fonction dévaluation e(n) – Si n nest pas un noeud terminal et na pas reçu de valeur, alors donnez lui la valeur de - si cest un noeud de couche maximiser ou de + si cest un noeud de couche minimiser. Lorsque vous donnez une valeur à un noeud en utilisant la fonction dévaluation, vous devez distribuer (back-up) cette valeur a ses ancêtres Lorsque vous visitez un noeud n, vous pouvez décider de le tailler (prune) sil ny a pas de raison de létendre.
16 Règles de distribution et de taillage (1) Règle de distribution (Back-up): Soit v la valeur courante de n Soit m, le parent de n et u la valeur courante de m. Si m est un noeud de couche maximiser, alors la valeur de m doit devenir max(u,v). Si m est un noeud de couche minimiser, alors la valeur de m doit devenir min(u,v). Si m est la racine ou si la valeur de m ne change pas, alors, il faut sarrêter. Sinon, on distribue la valeur de m a son parent (appel récursif).
17 Règles de distribution et de taillage (2) Règle de Taillage: Si n est un noeud de couche maximiser, alors, soit v, le min des valeurs des frères de n et soit u, le max des valeurs des frères des ancêtres de n qui sont des noeuds de couche minimiser (!) Si v >= u, alors vous pouvez retirer n et ses frères ainsi que nimporte lesquels des successeurs de n et de ses frères de la queue. Si m est un noeud de couche minimiser, alors vous pouvez faire la même chose en remplacent max par min, min par max et =.
18 Exemples (Deux exemples seront présentés en classe)