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