L`IA et les jeux

publicité
L’IA et les jeux
Cyril Terrioux
[email protected]
L’IA et les jeux
1 / 34
Plan
1
Introduction
2
Principe Minimax
3
Les algorithmes Minimax et α-β
4
L’algorithme SSS*
5
Pratique et théorie
L’IA et les jeux
2 / 34
Introduction
Plan
1
Introduction
2
Principe Minimax
3
Les algorithmes Minimax et α-β
4
L’algorithme SSS*
5
Pratique et théorie
L’IA et les jeux
3 / 34
Introduction
Intérêts des jeux pour l’IA
les jeux intellectuels sont le propre de l’Homme
L’IA et les jeux
4 / 34
Introduction
Intérêts des jeux pour l’IA
les jeux intellectuels sont le propre de l’Homme
leur résolution met en œuvre des procédés intelligents
L’IA et les jeux
4 / 34
Introduction
Intérêts des jeux pour l’IA
les jeux intellectuels sont le propre de l’Homme
leur résolution met en œuvre des procédés intelligents
un domaine d’application pour les techniques de l’IA
L’IA et les jeux
4 / 34
Introduction
Intérêts des jeux pour l’IA
les jeux intellectuels sont le propre de l’Homme
leur résolution met en œuvre des procédés intelligents
un domaine d’application pour les techniques de l’IA
les règles des jeux sont généralement strictes
L’IA et les jeux
4 / 34
Introduction
Intérêts des jeux pour l’IA
les jeux intellectuels sont le propre de l’Homme
leur résolution met en œuvre des procédés intelligents
un domaine d’application pour les techniques de l’IA
les règles des jeux sont généralement strictes
⇒ facilité à les spécifier et à les coder
L’IA et les jeux
4 / 34
Introduction
Les jeux
On différencie les jeux selon deux critères :
nombre de joueurs :
L’IA et les jeux
5 / 34
Introduction
Les jeux
On différencie les jeux selon deux critères :
nombre de joueurs :
jeux à un joueur,
L’IA et les jeux
5 / 34
Introduction
Les jeux
On différencie les jeux selon deux critères :
nombre de joueurs :
jeux à un joueur,
jeux à deux joueurs,
L’IA et les jeux
5 / 34
Introduction
Les jeux
On différencie les jeux selon deux critères :
nombre de joueurs :
jeux à un joueur,
jeux à deux joueurs,
...
L’IA et les jeux
5 / 34
Introduction
Les jeux
On différencie les jeux selon deux critères :
nombre de joueurs :
jeux à un joueur,
jeux à deux joueurs,
...
nature des informations
L’IA et les jeux
5 / 34
Introduction
Les jeux
On différencie les jeux selon deux critères :
nombre de joueurs :
jeux à un joueur,
jeux à deux joueurs,
...
nature des informations
jeux à information complète
L’IA et les jeux
5 / 34
Introduction
Les jeux
On différencie les jeux selon deux critères :
nombre de joueurs :
jeux à un joueur,
jeux à deux joueurs,
...
nature des informations
jeux à information complète
jeux à information partielle
L’IA et les jeux
5 / 34
Introduction
Jeux à un joueur
un joueur = un humain ou un ordinateur
L’IA et les jeux
6 / 34
Introduction
Jeux à un joueur
un joueur = un humain ou un ordinateur
un joueur ⇔ pas d’adversaire
L’IA et les jeux
6 / 34
Introduction
Jeux à un joueur
un joueur = un humain ou un ordinateur
un joueur ⇔ pas d’adversaire
Jeux à information complète :
Modélisation : graphes d’états, CSP, SAT, . . .
Résolution : algorithmes classiques
L’IA et les jeux
6 / 34
Introduction
Jeux à un joueur
un joueur = un humain ou un ordinateur
un joueur ⇔ pas d’adversaire
Jeux à information complète :
Modélisation : graphes d’états, CSP, SAT, . . .
Résolution : algorithmes classiques
Jeux à information partielle :
Modélisation : variantes avec probabilités
Résolution : algorithmes adaptés pour le raisonnement probabiliste
L’IA et les jeux
6 / 34
Introduction
Exemples de jeux à un joueur
Jeux à information complète :
Puzzle classique ou logique
Sokoban
L’IA et les jeux
7 / 34
Introduction
Exemples de jeux à un joueur
Jeux à information complète :
Puzzle classique ou logique
Sokoban
Jeux à information partielle :
Démineur
Mahjong
Réussite
Tetris
L’IA et les jeux
7 / 34
Introduction
Jeux à deux joueurs
joueur = un humain ou un ordinateur
L’IA et les jeux
8 / 34
Introduction
Jeux à deux joueurs
joueur = un humain ou un ordinateur
deux joueurs H et O aux objectifs opposés
L’IA et les jeux
8 / 34
Introduction
Jeux à deux joueurs
joueur = un humain ou un ordinateur
deux joueurs H et O aux objectifs opposés
demi-coup = action jouée par un joueur
L’IA et les jeux
8 / 34
Introduction
Jeux à deux joueurs
joueur = un humain ou un ordinateur
deux joueurs H et O aux objectifs opposés
demi-coup = action jouée par un joueur
coup = demi-coup joué par H + demi-coup joué par O
L’IA et les jeux
8 / 34
Introduction
Jeux à deux joueurs
Les difficultés rencontrées :
modélisation plus complexe afin de tenir compte du joueur courant :
L’IA et les jeux
9 / 34
Introduction
Jeux à deux joueurs
Les difficultés rencontrées :
modélisation plus complexe afin de tenir compte du joueur courant :
une variante des graphes d’états
L’IA et les jeux
9 / 34
Introduction
Jeux à deux joueurs
Les difficultés rencontrées :
modélisation plus complexe afin de tenir compte du joueur courant :
une variante des graphes d’états
résolution :
anticipation des demi-coups de l’adversaire
L’IA et les jeux
9 / 34
Introduction
Jeux à deux joueurs
Les difficultés rencontrées :
modélisation plus complexe afin de tenir compte du joueur courant :
une variante des graphes d’états
résolution :
anticipation des demi-coups de l’adversaire
anticipation des prochains coups
L’IA et les jeux
9 / 34
Introduction
Jeux à deux joueurs
Les difficultés rencontrées :
modélisation plus complexe afin de tenir compte du joueur courant :
une variante des graphes d’états
résolution :
anticipation des demi-coups de l’adversaire
anticipation des prochains coups
un joueur humain est difficilement prévisible
L’IA et les jeux
9 / 34
Introduction
Exemples de jeux à deux joueurs
Jeux à information complète :
Les Échecs
Les Dames
L’Othello
Le Go
Puissance 4 et morpions
L’IA et les jeux
10 / 34
Introduction
Exemples de jeux à deux joueurs
Jeux à information complète :
Les Échecs
Les Dames
L’Othello
Le Go
Puissance 4 et morpions
Jeux à information partielle :
Le Poker
Le Bridge
La bataille navale
L’IA et les jeux
10 / 34
Principe Minimax
Plan
1
Introduction
2
Principe Minimax
3
Les algorithmes Minimax et α-β
4
L’algorithme SSS*
5
Pratique et théorie
L’IA et les jeux
11 / 34
Principe Minimax
Le principe Minimax
Une représentation à base d’états et de règles de productions
L’IA et les jeux
12 / 34
Principe Minimax
Le principe Minimax
Une représentation à base d’états et de règles de productions
Les règles de production varient selon le joueur
L’IA et les jeux
12 / 34
Principe Minimax
Le principe Minimax
Une représentation à base d’états et de règles de productions
Les règles de production varient selon le joueur
Chaque joueur a son objectif (opposé à celui de l’autre joueur)
L’IA et les jeux
12 / 34
Principe Minimax
Le principe Minimax
Une représentation à base d’états et de règles de productions
Les règles de production varient selon le joueur
Chaque joueur a son objectif (opposé à celui de l’autre joueur)
⇒ Les algorithmes pour les graphes d’états ne sont pas applicables
L’IA et les jeux
12 / 34
Principe Minimax
Le principe Minimax
On suppose que O est le joueur courant.
L’IA et les jeux
13 / 34
Principe Minimax
Le principe Minimax
On suppose que O est le joueur courant.
À partir d’un état donné, on construit un arbre avec :
au niveau 1 : les demi-coups jouables par O
L’IA et les jeux
13 / 34
Principe Minimax
Le principe Minimax
On suppose que O est le joueur courant.
À partir d’un état donné, on construit un arbre avec :
au niveau 1 : les demi-coups jouables par O
au niveau 2 : les demi-coups jouables par H
L’IA et les jeux
13 / 34
Principe Minimax
Le principe Minimax
On suppose que O est le joueur courant.
À partir d’un état donné, on construit un arbre avec :
au niveau 1 : les demi-coups jouables par O
au niveau 2 : les demi-coups jouables par H
on continue l’alternance sur les niveaux suivants
L’IA et les jeux
13 / 34
Principe Minimax
Le principe Minimax
On suppose que O est le joueur courant.
À partir d’un état donné, on construit un arbre avec :
au niveau 1 : les demi-coups jouables par O
au niveau 2 : les demi-coups jouables par H
on continue l’alternance sur les niveaux suivants
La profondeur est généralement bornée.
L’IA et les jeux
13 / 34
Principe Minimax
Quelques chiffres
Taille de l’arbre :
jeu de dames : 1040 nœuds
L’IA et les jeux
14 / 34
Principe Minimax
Quelques chiffres
Taille de l’arbre :
jeu de dames : 1040 nœuds
jeu d’échecs : 10120 nœuds
L’IA et les jeux
14 / 34
Principe Minimax
Quelques chiffres
Taille de l’arbre :
jeu de dames : 1040 nœuds
jeu d’échecs : 10120 nœuds
Pour une partie d’échecs :
Facteur de branchement moyen : 35
L’IA et les jeux
14 / 34
Principe Minimax
Quelques chiffres
Taille de l’arbre :
jeu de dames : 1040 nœuds
jeu d’échecs : 10120 nœuds
Pour une partie d’échecs :
Facteur de branchement moyen : 35
Nombre de demi-coups au minimum : 30
L’IA et les jeux
14 / 34
Principe Minimax
Quelques chiffres
Taille de l’arbre :
jeu de dames : 1040 nœuds
jeu d’échecs : 10120 nœuds
Pour une partie d’échecs :
Facteur de branchement moyen : 35
Nombre de demi-coups au minimum : 30
Taille de l’espace de recherche : 3530 ≈ 2, 09 × 1046 états
L’IA et les jeux
14 / 34
Principe Minimax
Le principe Minimax
Soit p la profondeur limite
L’IA et les jeux
15 / 34
Principe Minimax
Le principe Minimax
Soit p la profondeur limite
On développe l’arbre jusqu’à la profondeur p.
L’IA et les jeux
15 / 34
Principe Minimax
Le principe Minimax
Soit p la profondeur limite
On développe l’arbre jusqu’à la profondeur p.
À chaque feuille, on associe une valeur.
L’IA et les jeux
15 / 34
Principe Minimax
Le principe Minimax
Soit p la profondeur limite
On développe l’arbre jusqu’à la profondeur p.
À chaque feuille, on associe une valeur.
valeur = estimation de la qualité de la position obtenue
L’IA et les jeux
15 / 34
Principe Minimax
Le principe Minimax
Soit p la profondeur limite
On développe l’arbre jusqu’à la profondeur p.
À chaque feuille, on associe une valeur.
valeur = estimation de la qualité de la position obtenue
valeur calculée par une fonction d’évaluation (heuristique)
L’IA et les jeux
15 / 34
Principe Minimax
Le principe Minimax
On recherche le demi-coup qui garantit le gain maximal contre toute
défense.
L’IA et les jeux
16 / 34
Principe Minimax
Le principe Minimax
On recherche le demi-coup qui garantit le gain maximal contre toute
défense.
On fait remonter les valeurs des feuilles jusqu’au niveau 0 :
L’IA et les jeux
16 / 34
Principe Minimax
Le principe Minimax
On recherche le demi-coup qui garantit le gain maximal contre toute
défense.
On fait remonter les valeurs des feuilles jusqu’au niveau 0 :
au niveau 0, on choisit le demi-coup maximisant la valeur du niveau 1
L’IA et les jeux
16 / 34
Principe Minimax
Le principe Minimax
On recherche le demi-coup qui garantit le gain maximal contre toute
défense.
On fait remonter les valeurs des feuilles jusqu’au niveau 0 :
au niveau 0, on choisit le demi-coup maximisant la valeur du niveau 1
au niveau 1, on choisit le demi-coup minimisant la valeur du niveau 2
L’IA et les jeux
16 / 34
Principe Minimax
Le principe Minimax
On recherche le demi-coup qui garantit le gain maximal contre toute
défense.
On fait remonter les valeurs des feuilles jusqu’au niveau 0 :
au niveau 0, on choisit le demi-coup maximisant la valeur du niveau 1
au niveau 1, on choisit le demi-coup minimisant la valeur du niveau 2
on continue l’alternance jusqu’au niveau p − 1
L’IA et les jeux
16 / 34
Les algorithmes Minimax et α-β
Plan
1
Introduction
2
Principe Minimax
3
Les algorithmes Minimax et α-β
4
L’algorithme SSS*
5
Pratique et théorie
L’IA et les jeux
17 / 34
Les algorithmes Minimax et α-β
L’algorithme Minimax
Un algorithme de type recherche en profondeur d’abord
L’IA et les jeux
18 / 34
Les algorithmes Minimax et α-β
L’algorithme Minimax
Un algorithme de type recherche en profondeur d’abord
Application à l’arbre produit par le principe Minimax
L’IA et les jeux
18 / 34
Les algorithmes Minimax et α-β
L’algorithme Minimax
Un algorithme de type recherche en profondeur d’abord
Application à l’arbre produit par le principe Minimax
2 types de nœuds :
Nœud Max :
c’est à O de jouer
O choisit le demi-coup de valeur maximum
L’IA et les jeux
18 / 34
Les algorithmes Minimax et α-β
L’algorithme Minimax
Un algorithme de type recherche en profondeur d’abord
Application à l’arbre produit par le principe Minimax
2 types de nœuds :
Nœud Max :
c’est à O de jouer
O choisit le demi-coup de valeur maximum
Nœud Min :
c’est à H de jouer
on suppose que H choisit toujours le demi-coup de valeur minimum
c.-à-d. celui qui pénalise le plus O.
L’IA et les jeux
18 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
3
1
Min
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
3
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
3
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
3
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
3
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
3
Max
2
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
3
Max
2
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
19 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
3
Max
2
3
1
Min
6
2
8
3
4
7
1
10
6
Parcours intégral de l’arbre !!!
L’IA et les jeux
19 / 34
Les algorithmes Minimax et α-β
L’algorithme α − β
Amélioration de l’algorithme Minimax grâce à des coupures
L’IA et les jeux
20 / 34
Les algorithmes Minimax et α-β
L’algorithme α − β
Amélioration de l’algorithme Minimax grâce à des coupures
2 types de coupures :
coupure α (nœud min)
coupure β (nœud max)
L’IA et les jeux
20 / 34
Les algorithmes Minimax et α-β
Coupure α
Max
≤y
x
y
L’IA et les jeux
21 / 34
Les algorithmes Minimax et α-β
Coupure α
Max
≤y
y
L’IA et les jeux
21 / 34
Les algorithmes Minimax et α-β
Coupure α
Max
≤y
y
L’IA et les jeux
21 / 34
Les algorithmes Minimax et α-β
Coupure α
Max
≤y
x
y
L’IA et les jeux
21 / 34
Les algorithmes Minimax et α-β
Coupure α
≥x
Max
≤y
x
y
L’IA et les jeux
21 / 34
Les algorithmes Minimax et α-β
Coupure α
≥x
Max
x
Min
y
L’IA et les jeux
21 / 34
Les algorithmes Minimax et α-β
Coupure α
≥x
Max
≤y
x
Min
y
L’IA et les jeux
21 / 34
Les algorithmes Minimax et α-β
Coupure α
≥x
Max
≤y
x
Min
y
Coupure quand x > y
L’IA et les jeux
21 / 34
Les algorithmes Minimax et α-β
Coupure β
Min
≤y
y
L’IA et les jeux
22 / 34
Les algorithmes Minimax et α-β
Coupure β
Min
≤y
y
L’IA et les jeux
22 / 34
Les algorithmes Minimax et α-β
Coupure β
Min
≤y
y
L’IA et les jeux
22 / 34
Les algorithmes Minimax et α-β
Coupure β
Min
≤y
x
y
L’IA et les jeux
22 / 34
Les algorithmes Minimax et α-β
Coupure β
≤x
Min
≤y
x
y
L’IA et les jeux
22 / 34
Les algorithmes Minimax et α-β
Coupure β
≤x
Min
x
Max
y
L’IA et les jeux
22 / 34
Les algorithmes Minimax et α-β
Coupure β
≤x
Min
≥y
x
Max
y
L’IA et les jeux
22 / 34
Les algorithmes Minimax et α-β
Coupure β
≤x
Min
≥y
x
Max
y
Coupure quand x < y
L’IA et les jeux
22 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
3
1
Min
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
≤6
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
≤6
3
1
Min
6
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
≤6
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
≤2
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
≤2
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
Max
2
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
≥2
Max
2
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
≥2
Max
2
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
≥2
Max
2
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
≥2
Max
≤3
2
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
≥2
Max
≤3
2
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
≥2
Max
≤3
2
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
≥2
Max
2
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
≥3
Max
2
3
1
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
≥3
Max
2
3
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
≥3
Max
2
3
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
≥3
Max
2
≤1
3
Min
6
2
8
3
4
7
1
10
6
Coupure α
L’IA et les jeux
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
3
Max
2
≤1
3
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
3
Max
2
≤1
3
Min
6
2
8
3
4
L’IA et les jeux
7
1
10
6
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
3
Max
≤2
3
≤1
Min
3
4
7
6
2
8
1
10
6
En choisissant mieux l’ordre
L’IA et les jeux
23 / 34
Les algorithmes Minimax et α-β
Exemple (pour une profondeur 2)
3
Max
≤2
3
≤1
Min
3
4
7
2
2
8
1
10
6
En choisissant mieux l’ordre
L’IA et les jeux
23 / 34
Les algorithmes Minimax et α-β
Le principe Negamax
Similaire au principe Minimax
L’IA et les jeux
24 / 34
Les algorithmes Minimax et α-β
Le principe Negamax
Similaire au principe Minimax
Mais tous les nœuds sont des nœuds Max.
L’IA et les jeux
24 / 34
Les algorithmes Minimax et α-β
Le principe Negamax
Similaire au principe Minimax
Mais tous les nœuds sont des nœuds Max.
Au niveau n, on maximise l’opposé des valeurs du niveau n + 1.
L’IA et les jeux
24 / 34
Les algorithmes Minimax et α-β
Le principe Negamax
Similaire au principe Minimax
Mais tous les nœuds sont des nœuds Max.
Au niveau n, on maximise l’opposé des valeurs du niveau n + 1.
Avantage : plus simple à implémenter
L’IA et les jeux
24 / 34
Les algorithmes Minimax et α-β
La fonction d’évaluation
La fonction peut être plus ou moins évoluée.
L’IA et les jeux
25 / 34
Les algorithmes Minimax et α-β
La fonction d’évaluation
La fonction peut être plus ou moins évoluée.
Plus la fonction est évoluée,
plus l’ordinateur sera intelligent
L’IA et les jeux
25 / 34
Les algorithmes Minimax et α-β
La fonction d’évaluation
La fonction peut être plus ou moins évoluée.
Plus la fonction est évoluée,
plus l’ordinateur sera intelligent
plus elle sera coûteuse en temps
L’IA et les jeux
25 / 34
Les algorithmes Minimax et α-β
La fonction d’évaluation
La fonction peut être plus ou moins évoluée.
Plus la fonction est évoluée,
plus l’ordinateur sera intelligent
plus elle sera coûteuse en temps
Fonction propre à chaque jeu
L’IA et les jeux
25 / 34
L’algorithme SSS*
Plan
1
Introduction
2
Principe Minimax
3
Les algorithmes Minimax et α-β
4
L’algorithme SSS*
5
Pratique et théorie
L’IA et les jeux
26 / 34
L’algorithme SSS*
L’algorithme SSS*
Stratégie = un sous-arbre de jeu :
qui contient la racine de l’arbre de jeu courant
L’IA et les jeux
27 / 34
L’algorithme SSS*
L’algorithme SSS*
Stratégie = un sous-arbre de jeu :
qui contient la racine de l’arbre de jeu courant
dont chaque nœud Max possède un et un seul fils
L’IA et les jeux
27 / 34
L’algorithme SSS*
L’algorithme SSS*
Stratégie = un sous-arbre de jeu :
qui contient la racine de l’arbre de jeu courant
dont chaque nœud Max possède un et un seul fils
dont chaque nœud Min possède tous ses fils
L’IA et les jeux
27 / 34
L’algorithme SSS*
L’algorithme SSS*
Stratégie = un sous-arbre de jeu :
qui contient la racine de l’arbre de jeu courant
dont chaque nœud Max possède un et un seul fils
dont chaque nœud Min possède tous ses fils
Pour les nœuds Max, on maı̂trise le choix
L’IA et les jeux
27 / 34
L’algorithme SSS*
L’algorithme SSS*
Stratégie = un sous-arbre de jeu :
qui contient la racine de l’arbre de jeu courant
dont chaque nœud Max possède un et un seul fils
dont chaque nœud Min possède tous ses fils
Pour les nœuds Max, on maı̂trise le choix
Pour les nœuds Min, on considère toutes les ripostes possibles
L’IA et les jeux
27 / 34
L’algorithme SSS*
L’algorithme SSS*
Stratégie = un sous-arbre de jeu :
qui contient la racine de l’arbre de jeu courant
dont chaque nœud Max possède un et un seul fils
dont chaque nœud Min possède tous ses fils
Pour les nœuds Max, on maı̂trise le choix
Pour les nœuds Min, on considère toutes les ripostes possibles
Les nœuds feuilles sont valués par une fonction d’évaluation
L’IA et les jeux
27 / 34
L’algorithme SSS*
L’algorithme SSS*
Objectif de SSS* : trouver la meilleure stratégie
L’IA et les jeux
28 / 34
L’algorithme SSS*
L’algorithme SSS*
Objectif de SSS* : trouver la meilleure stratégie
Stratégie partielle = un sous-arbre de jeu :
qui contient la racine de l’arbre de jeu courant
L’IA et les jeux
28 / 34
L’algorithme SSS*
L’algorithme SSS*
Objectif de SSS* : trouver la meilleure stratégie
Stratégie partielle = un sous-arbre de jeu :
qui contient la racine de l’arbre de jeu courant
dont chaque nœud Max possède au plus un seul fils
L’IA et les jeux
28 / 34
L’algorithme SSS*
L’algorithme SSS*
Objectif de SSS* : trouver la meilleure stratégie
Stratégie partielle = un sous-arbre de jeu :
qui contient la racine de l’arbre de jeu courant
dont chaque nœud Max possède au plus un seul fils
À partir d’une stratégie partielle, on peut construire une nouvelle stratégie
partielle :
en ajoutant un fils à un nœud Max sans fils
L’IA et les jeux
28 / 34
L’algorithme SSS*
L’algorithme SSS*
Objectif de SSS* : trouver la meilleure stratégie
Stratégie partielle = un sous-arbre de jeu :
qui contient la racine de l’arbre de jeu courant
dont chaque nœud Max possède au plus un seul fils
À partir d’une stratégie partielle, on peut construire une nouvelle stratégie
partielle :
en ajoutant un fils à un nœud Max sans fils
en ajoutant un ou plusieurs fils à un nœud Min
L’IA et les jeux
28 / 34
L’algorithme SSS*
L’algorithme SSS*
Espace d’états où chaque nœud est une stratégie partielle
L’IA et les jeux
29 / 34
L’algorithme SSS*
L’algorithme SSS*
Espace d’états où chaque nœud est une stratégie partielle
SSS* = recherche le meilleur d’abord + coupure
L’IA et les jeux
29 / 34
L’algorithme SSS*
L’algorithme SSS*
Espace d’états où chaque nœud est une stratégie partielle
SSS* = recherche le meilleur d’abord + coupure
Inconvénient : peut être gourmand en mémoire
L’IA et les jeux
29 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a}, +∞))
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b}, +∞))
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b, d}, +∞); ({a, b, e}, +∞))
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b, e}, +∞); ({a, b, d, h}, 27))
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b, d, h}, 27); ({a, b, e, j}, 17))
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b, d, h, i}, 21); ({a, b, e, j}, 17))
⇒ ({a, b, d, h, i}, 21) est la stratégie complète optimale issue de b
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b, d, h, i, c}, 21); ({a, b, e, j}, 17))
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b, d, h, i, c, f }, 21); ({a, b, d, h, i, c, g}, 21); ({a, b, e, j}, 17))
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b, d, h, i, c, g}, 21); ({a, b, e, j}, 17); ({a, b, d, h, i, c, f, l}, 13))
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b, e, j}, 17); ({a, b, d, h, i, c, f, l}, 13); ({a, b, d, h, i, c, g, n}, 9))
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b, e, j}, 17); ({a, b, d, h, i, c, f, l}, 13); ({a, b, d, h, i, c, g, n}, 9))
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b, e, j}, 17); ({a, b, d, h, i, c, f, l}, 13); ({a, b, d, h, i, c, g, n}, 9))
({a, b, e, j}, 17) est une sous-stratégie issue de b
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
⇒ ({a, b, e, j}, 17) est sous-optimale
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
⇒ ({a, b, e, j}, 17) est sous-optimale
⇒ il est inutile de développer ({a, b, e, j}, 17)
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b, d, h, i, c, f, l}, 13); ({a, b, d, h, i, c, g, n}, 9))
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b, d, h, i, c, f, l, m}, 13); ({a, b, d, h, i, c, g, n}, 9))
L’IA et les jeux
30 / 34
L’algorithme SSS*
Exemple
a
Min
b
Max
c
d
Min
e
f
g
h
i
j
k
l
m
n
o
27
21
17
18
13
20
9
7
(({a, b, d, h, i, c, f, l, m}, 13); ({a, b, d, h, i, c, g, n}, 9))
⇒ ({a, b, d, h, i, c, f, l, m}, 13) est une stratégie complète et optimale
L’IA et les jeux
30 / 34
Pratique et théorie
Plan
1
Introduction
2
Principe Minimax
3
Les algorithmes Minimax et α-β
4
L’algorithme SSS*
5
Pratique et théorie
L’IA et les jeux
31 / 34
Pratique et théorie
Comparaison pratique
Nombre de nœuds développés pour le jeu d’Othello
p
1
2
3
4
5
6
minimax
3
14
61
349
2 050
13 773
α−β
3
13
37
150
418
1 830
L’IA et les jeux
SSS*
3
11
35
95
292
1 617
32 / 34
Pratique et théorie
Comparaison pratique
Temps de calcul pour le jeu d’Othello
p
1
2
3
4
5
6
minimax
0,37
1,38
6,00
32,50
185,70
1 213,50
α−β
0,36
1,40
3,90
14,77
41,40
172,90
L’IA et les jeux
SSS*
0,36
1,19
3,70
10,00
19,20
117,30
33 / 34
Pratique et théorie
D’un point de vue pratique
Ces algorithmes possèdent des variantes plus efficaces.
L’IA et les jeux
34 / 34
Pratique et théorie
D’un point de vue pratique
Ces algorithmes possèdent des variantes plus efficaces.
Il existe d’autres algorithmes.
L’IA et les jeux
34 / 34
Pratique et théorie
D’un point de vue pratique
Ces algorithmes possèdent des variantes plus efficaces.
Il existe d’autres algorithmes.
Les algorithmes sont spécialisés en fonction du jeu.
L’IA et les jeux
34 / 34
Pratique et théorie
D’un point de vue pratique
Ces algorithmes possèdent des variantes plus efficaces.
Il existe d’autres algorithmes.
Les algorithmes sont spécialisés en fonction du jeu.
Utilisation d’algorithme du type Iterative Deepening
L’IA et les jeux
34 / 34
Pratique et théorie
D’un point de vue pratique
Ces algorithmes possèdent des variantes plus efficaces.
Il existe d’autres algorithmes.
Les algorithmes sont spécialisés en fonction du jeu.
Utilisation d’algorithme du type Iterative Deepening
Les parties des jeux sont souvent divisées en 3 phases :
le début du jeu : les ouvertures
le milieu du jeu
la fin du jeu : les finales
L’IA et les jeux
34 / 34
Téléchargement