CINQUIÈME PARTIE

publicité
1/26
CINQUIÈME PARTIE
Programmation des jeux de réflexion
2/26
Plan
1.  Introduction à l’intelligence artificielle
2.  Agents intelligents
3.  Algorithmes classiques de recherche en IA
4.  Algorithmes et recherches heuristiques
5.  Programmation des jeux de réflexion
6.  Problèmes de satisfaction de contraintes
7.  Agents logiques
8.  Logique du premier ordre
9.  Inférence en logique du première ordre
10.  Introduction à la programmation logique avec Prolog
11.  Planification
12.  Apprentissage
3/26
En Bref …
•  L’algorithme Minimiax
•  Limiter la consommation de ressources
•  L’élagage α-β
•  L’algorithme SSS*
•  Jeux non-déterministes
4/26
Programmation des jeux vs résolution de problèmes
•  L’adversaire est imprévisible
la solution est incertaine
•  Un temps limite est imposé
quand il n’est pas possible
d’atteindre le but il faut être capable de l’approximer
•  Pistes étudiées :
1. 
algorithme pour joueur parfait (Von Neumann, 1944)
2. 
horizon fini, évaluation approximative (Zuse, 1945 ; Shannon
1950)
3. 
Élagage pour réduire le coût de recherche (McCarthy, 1956)
5/26
Programmation des jeux de réflexion
•  Les différents types de jeux
Information
Déterministe
Hasard
Parfaite
Échecs, reversi ,
go, morpion
Backgammon,
Monopoly
Imparfaite
Bridge, poker,
scrabble
6/26
Programmation des jeux de réflexion
Vocabulaire
•  État initial (initial state): L’état du plateau avant le début du jeu et le
• 
• 
• 
• 
• 
• 
joueur qui commence.
Fonction de succession (Successor function): Une fonction qui retourne
une liste de pairs (action, état) qui indiquent un mouvement permis à
partir d’un état et l’état résultant.
Test de terminaison (terminal test): Un test qui permet de dire si le jeu est
fini.
État terminal (terminal state): L’état ou le jeu est fini avec un gagnant ou
une égalité.
Fonction d’utilité (Utility function): Une fonction qui donne une évaluation
numérique de l’état terminal.
Fonction d’évaluation (Evaluation function): Est la valeur estimée d’une
position.
Arbre de jeu (Game tree): Un arbre représentant tous les états
atteignables à partir de l’état initial à travers les actions des deux joueurs
7/26
L’arbre de recherche Minimax
Arbre de jeu du morpion
8/26
L’algorithme de recherche Minimax
•  Donne le coup parfait pour un jeu déterministe à information parfaite.
•  Idée:
•  Labéliser deux joueurs avec MIN et MAX où MAX est le joueur qui doit gagner
et MIN pour son adversaire.
•  Minimiser la perte maximale: MAX doit choisir le coup qui maximise le
minimum de ses gains ou qui minimise le maximum des pertes quand MIN
joue.
MAX
A1
A2
A3
MIN
A11
3
A12
12
A13
A21
8
2
A22
4
A23
A31
6
14
A32
5
A33
2
9/26
L’algorithme de recherche Minimax
Exemple
MAX
A1
A2
MIN
A12
A11
A22
A23
MAX
MIN
20
16
5
8
7
13
1
3
4
11
6
2
15
16
18
10
10/26
L’algorithme de recherche Minimax
Algorithme
11/26
L’algorithme de recherche Minimax
Propriétés
•  Minimax s’arrête toujours si l’arbre est fini
•  Optimal, si l’adversaire est optimal
•  Si b est le nombre de coups possibles par situation et m
la profondeur maximale de l’arbre, minimax a une
complexité en
•  temps de O(bm)
•  en espace O(bm)
•  Pour les échecs par exemple : b ≈ 35, m ≈ 100 donc
solution exacte impossible
•  35000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000
•  1000000 nœuds/ms: 3591s ≈ 3583 années
12/26
L’algorithme de recherche Minimax
Ressources limitées
•  Par exemple, on a 102 secondes et on peut explorer 104
nœuds par secondes. Donc, on peut regarder 106 nœuds
par coup.
•  Approches standard:
•  Test d’arrêt (cutoff): Par exemple limiter la profondeur
•  Fonction d’évaluation = valeur estimée d’une position
13/26
L’algorithme de recherche Minimax
Fonction d’évaluation
•  Aux échecs on choisit par exemple une somme linéaire pondérée de
caractéristiques.
•  Eval(s) = w1f1(s)+w2f2(s) + … + wnfn(s)
•  Ex: w1 = 9 et f1 = (le nombre de reines blanches) - (le nombre de reines noires),
etc.
14/26
L’algorithme de recherche Minimax
L’effet horizon
•  Dans cette position Noir peut mettre le roi blanc en échec un
certain nombre de fois mais le pion blanc va se transformer
inévitablement en reine. On ne s’en aperçoit que très tard.
15/26
L’algorithme de recherche Minimax
Arrêter la recherche
•  On peut facilement modifier l’algorithme MINIMAX en ajoutant
un test d’arrêt (remplacer Terminal-Test par Cutoff-Test et en
remplaçant Utility par Eval.
•  En pratique : problèmes de performances, ex., bm = 106 et b =
35. Donc m = 4.
•  Aux échecs on ne pourrait que regarder 4 demi-coups en avance
•  Un humain normal ≈ 4 coups d’avance
•  Un ordinateur classique et un expert humain ≈ 8 coups d’avance
•  Deep Blue, Kasparov ≈ 12 coups d’avance
•  Idée : Élaguer des branches inutiles
algorithme α-β
16/26
L’algorithme α-β
Exemple d’élagage α-β
≥3
3
MAX
A1
A2
3
MIN
A11
3
A12
12
A3
≤2
A13
A21
8
2
A31
X
X
14
2
≤14
≤14
X ≤15
X
A32
A33
5
2
17/26
L’algorithme α-β
Exemple 2 d’élagage α-β
MAX
A1
A2
MIN
A12
A11
MAX
A22
A23
≥16
16
MIN
20
16
5
8
7
13
1
3
4
11
6
2
15
16
18
10
18/26
L’algorithme α-β
Propriétés
•  L’élagage n’affecte pas le résultat final
•  Un bon choix améliore l’efficacité de l’élagage
•  Avec un choix parfait la complexité en temps est O(bm/2)
•  double la profondeur de recherche par rapport à Minimax
•  peut facilement atteindre des profondeurs de l’ordre de 8 coups
d’avance aux échecs
19/26
L’algorithme α-β
Pourquoi ce nom?
•  α est la meilleure valeur
(la plus grande) pour MAX
trouvée jusqu’à présent en
dehors du chemin actuel
•  Si V est pire que α, MAX
va l’éviter et élaguer la
branche
•  Définir β d’une manière
similaire pour MIN : β est
la meilleur valeur (la plus
petite) pour MIN jusqu’à
présent
20/26
L’algorithme α-β
Max-Value
21/26
L’algorithme α-β
Min-Value
22/26
L’algorithme α-β
La valeur exacte des nœuds n’est pas importante
•  Seulement l’ordre est important
•  Le comportement est préservé pour chaque transformation
monotone de la fonction Eval.
MAX
16
MIN
160
16
20
5
16
5
160
8
200
50
160
50
80
23/26
L’algorithme α-β
Remarques
•  L’ordre dans lequel on visite les fils est important
•  Si on trouve rapidement une bonne valeur, on élague plus de
nœuds
•  On peut trier les fils par leur utilité
•  Il y a d’autres améliorations
•  Au mieux, on visite √n nœuds au lieu de n = bm pour minimax
•  Aux échecs on utilise au début du jeu des bases de données
d’ouvertures, au milieu α-β et à la fin des algorithmes spéciaux
24/26
Jeux non-déterministes
•  Dans le Backgammon par exemple, le lancer des dés
détermine les coups corrects. Exemple simplifié avec lancer
d’une pièce de monnaie :
25/26
Algorithmes pour les jeux non-déterministes
•  Expectimax donne le coup parfait comme Minimax
•  On doit considérer les nœuds CHANCE
•  On doit ajouter dans l’algorithme :
•  if state is a chance node then return average of Expectimax-Value of
Successors(state)
•  L’algorithme α-β peut être adapté, si Eval est bornée.
26/26
La valeur exacte des nœuds est importante
•  Le comportement est préservé seulement pour chaque
transformation positive et linéaire de EVAL
•  Eval doit être proportionnelle au gain attendu
Téléchargement