La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Chapitre II Résolution de problèmes EPSI / Montpellier - Cycle CSII 2A Intelligence Artificielle.

Présentations similaires


Présentation au sujet: "Chapitre II Résolution de problèmes EPSI / Montpellier - Cycle CSII 2A Intelligence Artificielle."— Transcription de la présentation:

1 chapitre II Résolution de problèmes EPSI / Montpellier - Cycle CSII 2A Intelligence Artificielle

2 Résolution de problèmes Introduction La résolution de problèmes est le processus qui consiste à sélectionner et ordonnancer des actions élémentaires en séquences afin d'atteindre des buts donnés en respectant les contraintes d'un environnement donné. Composition du processus : –un état initial (le problème à résoudre), –un état final (la solution au problème), –un ensemble d'actions élémentaires permettant de passer d'un état à un autre, Objectif du processus : –Trouver une séquence d'actions à exécuter pour passer de l'état initial à l'état final

3 Résolution de problèmes Introduction Complexité du processus : –A partir d'un état donné, on peut effectuer plusieurs actions élémentaires différentes qui débouchent sur des états différents. La méthode qui consiste à essayer successivement toutes les possibilités jusqu'à trouver une solution est une méthode de recherche fortement combinatoire –On est souvent amené à choisir entre plusieurs choix ou à choisir la meilleur solution : problème d’optimisation combinatoire Apport de l’IA : – L’IA apporte une solution à ce problème : les “ heuristiques ” : méthodes permettant de choisir en premier les actions ayant le plus de chance d'aboutir

4 Résolution de problèmes Types de domaines  La démonstration de théorèmes  Les jeux de stratégies (échec, dame)  La planification :  robotique  allocations de ressources  emploi du temps

5 Résolution de problèmes Exemple de problème - Planification de chaîne de production Chaîne de production Atelier AAtelier BAtelier CAtelier D Capacité de production 5v/h/h3v/h/h2v/h/h3v/h/h Ressources - Op1 : 8h-13h - Op2 : 8h-13h - Op3 : 9h-13h- Op4 : 10h-15h Etat initial 30v en attente à 8h 0v en attente à 8h But Etablir l'emploi du temps indiquant heure par heure quels opérateurs sont affectés à chaque atelier, de telle sorte que le maximum de voitures soient passées par les 4 ateliers à la fin de la journée

6 Résolution de problèmes Exemple de problème - Le voyageur de commerce Ville B Ville C Ville D Ville E Ville F Ville A 101 Ville K Ville L Un voyageur de commerce partant d'une ville veut se rendre successivement dans un certain nombres de villes sans repasser deux fois dans la même ville et en revenant finalement à la ville de départ. On connaît les distances de ville à ville. Quel trajet doit-il effectuer de façon à minimiser la distance parcourue ? EXPLOSION COMBINATOIRE (n-1)!/2 configurations configurations pour n= x configurations pour n=100

7 Résolution de problèmes Exemple de problème - Le Taquin n n+1 carreaux numérotés et un carreau "vide" sont disposés sur un damier dans une configuration donnée. L'objectif du taquin est de modifier la position des carreaux pour arriver à une configuration finale donnée. On autorise les changements de position seulement par glissement d'un des carreaux sur le carreau vide à partir d'une position adjacente orthogonale. Le but du jeu est de trouver la séquence la plus courte amenant à la configuration finale. EXPLOSION COMBINATOIRE (n+1)! configurations configurations pour n = x configurations pour n=99 InitialFinal

8 Résolution de problèmes Exemple de problème - La tour de Hanoï Trois disques (un grand, un moyen et un petit) sont enfilés dans cet ordre sur une tige A. Les déplacer sur une tige B sachant que les opérations autorisées consistent à prendre le disque de sommet de pile sur une tige donnée et le placer sur le disque de sommet de pile d'une autre tige (ou sur la tige seule s'il ne s'y trouve pas de disque). En cas d'empilement, un disque ne peut se poser que sur un disque plus large. On peut utiliser une tige intermédiaire C. EXPLOSION COMBINATOIRE 2 n -1configurations 7 configurations pour n = configurations pour n=64 (soit 2 38 années (1s/déplacement))

9 Résolution de problèmes Exemple de problème - Les n reines Mettre n reines sur un échiquier de taille nxn sans qu’aucune reine ne soit en prise par une autre (n>3) EXPLOSION COMBINATOIRE n! permutations permutations et 92 solutions différentes pour n = 8

10 Résolution de problèmes Complexité – Complexité d’un algorithme * une mesure de temps (complexité en temps) ou d'espace mémoire (complexité en espace ) utilisé par un algorithme en fonction de la taille des données * la complexité en temps d’un algorithme est le nombre d'étapes de calcul qu ’il nécessite, et sa complexité en espace comme la taille de mémoire nécessaire pour stocker les données intermédiaires au cours de son exécution; ces grandeurs sont indiquées en fonction de la taille des données du problème à résoudre, et généralement à une constante de proportionnalité près * seul l’ordre de grandeur du nombre d’opérations, noté O, est utilisé pour exprimer la complexité : O(f(n))

11 Résolution de problèmes Complexité – principales classes de complexité d’algorithmes –complexité logarithmique coût : O(log n) ex : recherche dichotomique dans un tableau trié –complexité linéaire coût : O(n) ex : recherche du minimum d ’une liste de n éléments, calcul du produit scalaire de deux vecteurs de R n –complexité polynomiale coût : O(n k ) (k : une constante > 1) ex : multiplication de deux matrice carrées d’ordre n : (O(n 3 )) –complexité exponentielle coût : O(a n ) (n : une constante > 1) ex : tours de Hanoï, voyageur de commerce

12 Résolution de problèmes Complexité –Complexité d’un problème La complexité (maximale) du meilleur algorithme connu pour le résoudre –Classification des problèmes la classe P Classe des problèmes qu ’on peut résoudre en temps polynomial la classe E Classe des problèmes qu ’on peut résoudre en temps exponentiel la classe NP Classe des problèmes qu ’on peut vérifier en temps polynomial et résoudre en temps exponentiel (problèmes non déterministes polynomiaux)

13 Résolution de problèmes Représentation des problèmes – Espace d’états Un problème est défini par un espace d’états qui est l'ensemble des états possibles de ce problèmes Exemples d ’états : * une configuration de pièces dans un jeu d ’échecs * un calendrier partiel ou complet des matches de tennis * une partie de preuve ou une preuve complète d'un démonstrateur de théorèmes – Opérateurs Les états d’un problème sont reliés les uns aux autres par des opérateurs qui transforment un état dans un autre Exemples d’opérateurs : * un coup légal aux échecs qui transforme la configuration des pièces dans une autre * l'ajout d'un match de tennis dans le problème de planification * l'application d'une règle d'inférence dans le démonstrateur de théorèmes

14 Résolution de problèmes Représentation des problèmes – But Dans la résolution d’un problème, on a un but qui décrit ce que l'on cherche. Un but est un sous-ensemble d’états de l’espace d’états Exemples de buts : * dans le jeu d'échecs, le but est l'ensemble des configurations de pièces qui mettent votre adversaire échec et mat * Pour le démonstrateur de théorèmes ce sont toutes les preuves dont la dernière ligne correspond à la formule à prouver

15 Résolution de problèmes Représentation des problèmes - Graphe d’états et espace de recherche * En IA, on utilise les graphes pour représenter l’espace d’états d’un problème (graphe d’états) –chaque nœud représente un état –chacun des arcs représente un opérateur (une transition) faisant passer d'un état à un autre –le but est un nœud particulier du graphe * La résolution d’un problème revient à explorer Le graphe dans la recherche du nœud but (l’espace de recherche)

16 Résolution de problèmes Représentation des problèmes - Réduction de problèmes et graphe ET/OU * Lorsque on a un problème principal qui peut se décomposer en sous problèmes plus faciles à résoudre, résoudre ce problème principal revient à résoudre tous les sous problèmes qu’il le compose * La technique qui consiste à résoudre un but en résolvant ses sous-buts est appelé réduction de problème * certains buts ne peuvent être atteints que si leurs sous-buts immédiats le sont tous (nœud ET) * les autres buts sont atteints si l'un au moins de leurs sous-buts immédiats est atteint (nœud OU) * le graphe formé de nœuds ET et OU est appelé graphe ET/OU

17 Résolution de problèmes Représentation des problèmes Composition d’un système de résolution - Des structures de données organisés en arbre ou en graphe –Des opérateurs définies par leurs conditions d'application et leur action –Une structure de contrôle mettant en œuvre la stratégie de recherche dans l’arbre ou le graphe (méthodes de recherche ou de résolution)

18 Résolution de problèmes Raisonnement Caractéristiques 1) Le système doit-il trouver une solution à partir de ce qu'il connaît du problème ou peut-il y avoir une interaction avec l'utilisateur 2) Faut-il se contenter d'une solution sous-optimale mais plus facilement et rapidement accessible 3) Peut-on annuler une action décidée au cours de la réflexion une fois qu'elle a été exécutée 4) Est-ce qu'on peut prévoir exactement l'effet d'une action sur l'état courant du problème 5) Est-ce que le problème peut se décomposer en sous problèmes plus faciles à résoudre et est-ce que les sous problèmes sont indépendants ou non. 6) Quelles sont les connaissances minimales requises pour aboutir à la solution du problème 7) Est-ce qu’une solution est garantie ?, est-ce que la recherche terminera ? quelle est la complexité de la recherche en temps et en espace ?

19 Résolution de problèmes Raisonnement Caractéristiques 1) Le système doit-il trouver une solution à partir de ce qu'il connaît du problème ou peut-il y avoir une interaction avec l'utilisateur 2) Faut-il se contenter d'une solution sous-optimale mais plus facilement et rapidement accessible 3) Peut-on annuler une action décidée au cours de la réflexion une fois qu'elle a été exécutée 4) Est-ce qu'on peut prévoir exactement l'effet d'une action sur l'état courant du problème 5) Est-ce que le problème peut se décomposer en sous problèmes plus faciles à résoudre et est-ce que les sous problèmes sont indépendants ou non. 6) Quelles sont les connaissances minimales requises pour aboutir à la solution du problème 7) Est-ce qu’une solution est garantie ?, est-ce que la recherche terminera ? quelle est la complexité de la recherche en temps et en espace ?

20 Méthodes de recherche –Méthodes aveugles : énumération exhaustive de tous les états de l’espace de recherche –Heuristiques : construction de chemins minimaux dans l ’exploration de l ’espace de recherche basée sur des critères, des principes, ou des méthodes permettant de faire les choix les plus efficaces pour atteindre le but fixé Résolution de problèmes

21 Méthodes de recherche –Méthodes aveugles : Recherche en profondeur Recherche en largeur Recherche en profondeur limitée Recherche en approfondissement itératif –Méthodes heuristiques : Recherche en profondeur ordonné Recherche du meilleur d ’abord Algorithme A * Résolution de problèmes

22 Méthodes de recherche –Critères d’évaluation : Complétude : solution garantie si elle existe Optimalisé : meilleur solution garantie Complexité en espace : espace mémoire nécessaire pour effectuer la recherche Complexité en temps : temps nécessaire pour effectuer la recherche Résolution de problèmes La complexité est mesuré selon les 3 critères : 1. b : facteur de branchement (nombre de descendants/nœuds) maximum du graphe d’états 2. d : profondeur à la quelle se trouve le (meilleur) nœud solution 3. m : profondeur maximale du graphe

23 E7E7 E8E8 E9E9 E4E4 E5E5 E6E6 E 13 E E 11 E situations explorées E0E E 10 E1E1 E2E2 E3E Méthodes de recherche aveugle –Profondeur d ’abord (LIFO) : –Principe : la priorité est donné aux nœuds de niveaux les plus profonds du graphe de recherche Exemple Résolution de problèmes

24 Méthodes de recherche aveugle –Profondeur d ’abord : –Algorithme : Début 1 empiler la racine 2 répéter Si sommet de pile <>nœud but alors - dépiler le premier élément - empiler ses fils s'il en a du plus à droite au plus à gauche Sinon ne rien faire Jusqu'à ce que la pile soit vide ou sommet pile =nœud but 3 la recherche aboutit si lenœud but a été atteint. Fin Résolution de problèmes

25 Méthodes de recherche aveugle –Profondeur d ’abord : –Propriétés : Complétude : Non si m tends vers l’infini Complexité en temps : O(b m ) Complexité en espace : O(b*m) Optimalité : Non Résolution de problèmes

26 E7E7 E8E8 E9E9 E4E4 E5E5 E6E situations explorées E0E E 10 E1E1 E2E2 E3E Méthodes de recherche aveugle –Largeur d’abord (FIFO) : –Principe : la priorité est donné aux nœuds de niveaux les moins profonds du graphe de recherche Exemple Résolution de problèmes

27 Méthodes de recherche aveugle –Largeur d ’abord : –Algorithme : Début 1 empiler la racine 2 répéter Si sommet de pile <>nœud but alors - dépiler le premier élément - empiler ses fils s'il en a du plus à gauche au plus à droite Sinon ne rien faire Jusqu'à ce que la pile soit vide ou sommet pile =nœud but 3 la recherche aboutit si lenœud but a été atteint. Fin Résolution de problèmes

28 Méthodes de recherche aveugle –Largeur d’abord : –Propriétés : Complétude : Non si b tends vers l’infini Complexité en temps : O(b d ) Complexité en espace : O(b d ) Optimalité : Non Résolution de problèmes Exemple: - b = 10 - production de nœuds : 1000 /s -espace mémoire : 100 octet/noeud

29 E7E7 E8E8 E9E9 E4E4 E5E5 E6E6 68 E0E E 10 E1E1 E2E2 E3E Méthodes de recherche aveugle –Profondeur limitée : –Principe : idem que profondeur d ’abord avec une limite de profondeur d ’exploration L Exemple avec une profondeur limitée L=2 Résolution de problèmes

30 Méthodes de recherche aveugle –Profondeur Limitée : –Algorithme : Début 1 empiler la racine 2 répéter Si sommet de pile <>nœud but alors - dépiler le premier élément - empiler ses fils s'il en a du plus à droite au plus à gauche Sinon ne rien faire Jusqu'à ce que la pile soit vide ou sommet pile =nœud but ou limite profondeur atteinte 3 la recherche aboutit si le nœud but a été atteint. Fin Résolution de problèmes

31 Méthodes de recherche aveugle –Profondeur Limitée : –Propriétés : Complétude : Oui si L >=d Complexité en temps : O(b L ) Complexité en espace : O(b*L) Optimalité : Non Résolution de problèmes

32 E7E7 E8E8 E9E9 E4E4 E5E5 E6E6 911 E0E0 1,4 2,8 3,12 10 E 10 E1E1 E2E2 E3E Méthodes de recherche aveugle –Approfondissement itératif : –Principe : recherche en profondeur, limitée à la profondeur 1, puis 2,... jusqu'à l'obtention d'une solution (ou l'échec de la recherche) Exemple Résolution de problèmes

33 Méthodes de recherche aveugle –Approfondissement itératif : –Propriétés : Complétude : Oui Complexité en temps : O(b d ) Complexité en espace : O(b*d) Optimalité : Non Résolution de problèmes

34 Méthodes de recherche aveugle –Conclusions : Les recherches en largeur garantissent de trouver la solution (si elle existe) et de trouver le chemin le plus court au but Les recherches en largeur demandent un espace mémoire qui augmente exponentiellement, car elles gardent tous enfants au même niveau Les recherches en profondeur sont très efficace dans les cas où le but est loin de la racine, et les branches sont arrangées de gauche à droite par probabilité de solution Les recherches en profondeur peuvent se perdre dans une branche sans fin et parfois se retrouve en boucle infinie Les recherches aveugles sont caractérisées par une taille souvent rédhibitoire des arborescences et une très forte complexité des algorithmes Résolution de problèmes

35 Méthodes de recherche heuristique –Fonction heuristique h : E   - un état e  E (espace d'états) --> un nombre h(e)   - h(e) est (généralement) une estimation du rapport coût/bénéfice qu'il y a à étendre le chemin courant en passant par e. - contrainte : h(solution) = 0 Résolution de problèmes e1e2e3 A h(e1) = 0.8 h(e2) = 2 h(e3) = 1.6

36 Méthodes de recherche heuristique –Exemples de fonction heuristique –Problème des 8 reines Heuristique : laisser un plus grand nombre de cases non attaquables dans la partie restante de l'échiquier pour garder le plus de choix possibles pour les ajouts de reines futures Résolution de problèmes

37 Méthodes de recherche heuristique –Exemples de fonction heuristique –Problème des 8 reines nombre de cases non attaquables : 8 h(A) = 8 Résolution de problèmes

38 Méthodes de recherche heuristique –Exemples de fonction heuristique –Problème des 8 reines nombre de cases non attaquables : 9 h(B) = 9 Résolution de problèmes

39 Méthodes de recherche heuristique –Exemples de fonction heuristique –Problème des 8 reines nombre de cases non attaquables : 10 h(C) = 10 :meilleure solution Résolution de problèmes

40 Méthodes de recherche heuristique –Exemples de fonction heuristique –Problème du taquin 3x3 –Heuristique : nombre de carreaux mal placés Résolution de problèmes

41 VAVA VBVB VKVK VLVL VAVA VMVM VCVC VDVD VFVF Heuristique : distance à vol d’oiseau VEVE Méthodes de recherche heuristique –Profondeur ordonnée : –Principe : Approfondissement des branches jusqu'a leur extrémité, dans l'ordre inverse de leur distance au but Meilleur chemin : V A >V B >V C >V F

42 Méthodes de recherche heuristique –Profondeur ordonnée : –Algorithme : Début 1 empiler la racine 2 répéter Si sommet de pile <>nœud but alors - dépiler le premier élément - empiler ses fils s'il en a dans l ’ordre inverse de leur distance au but Sinon ne rien faire Jusqu'à ce que la pile soit vide ou sommet pile = nœud but 3 la recherche aboutit si le nœud but a été atteint Fin Résolution de problèmes

43 Heuristique : proximité du but Méthodes de recherche heuristique –Meilleur premier : –Principe : Dès que l'on rencontre un chemin meilleur qu'auparavant, c'est celui là que l ’on approfondit

44 Méthodes de recherche heuristique –Meilleur premier : –Algorithme : Début 1 empiler la racine 2 répéter Si sommet de pile <>nœud but alors - dépiler le premier élément - empiler ses fils s'il en a dans la file et trier la pile entière par ordre croissant des distances calculées au but Sinon ne rien faire Jusqu'à ce que la pile soit vide ou sommet pile = nœud but 3 la recherche aboutit si le nœud but a été atteint Fin Résolution de problèmes

45 Méthodes de recherche heuristique –Meilleur premier : –Propriétés : Complétude : Non Complexité en temps : O(b m ) Complexité en espace : O(b m ) Optimalité : Non Résolution de problèmes

46 Méthodes de recherche heuristique –Algorithme A* : –Principe : améliorer l’algorithme du “ Meilleur premier ” en calculant le plus court chemin pour passer d'un état initial à un état final Soient : * n 0 : la racine du graphe * G : le nœud solution * c(n i,n j ) : le coût pour aller du nœud n i au nœud n j On définit - g (n) = c(n 0,n) : le coût pour aller du nœud racine n 0 au nœud n - h (n) = c(n,G) : l ’estimation heuristique du coût pour aller du nœud n au nœud solution G On obtient alors la fonction d ’évaluation du coût du chemin en passant par le noeud n : f(n) = g(n) + h(n)

47 Résolution de problèmes Méthodes de recherche heuristique –Algorithme A* : –Exemple

48 Résolution de problèmes Méthodes de recherche heuristique –Algorithme A* : –Définitions - Heuristique consistante : Pour tout x, pour tout y descendant de x : h (x) <= h (y) + c (x,y) - Heuristique admissible : Pour tout x, h (x) <= h* (x) où h* (x) est la valeur optimale de x à G

49 Méthodes de recherche heuristique –Algorithme A* : –Algorithme : Début Initialement, la file des chemins partiels contient le chemin d'ordre zéro, de longueur nulle et reliant la racine à nulle part 2. Repeter si le premier chemin de la file n'aboutit pas au but alors le supprimer de la file former les nouveaux chemins obtenus en prolongeant d'un niveau le chemin supprimé insérer ces nouveaux chemins dans la file le coût de chaque chemin étant la somme de la distance déjà parcourue et d'une estimation minorante de la distance restant à parcourir. trier la file par coûts croissants si deux chemins ou plus atteignent le même noeud ne conserver que celui ayant la longueur minimale finsi Jusqu'à ce que la file soit vide ou que le noeud but soit atteint Résolution de problèmes

50 Méthodes de recherche heuristique –Algorithme A* : –Propriétés : Complétude : Oui Complexité : linéaire si h est consistante Optimalité : Oui si h est admissible Résolution de problèmes

51 Programmes de jeux de stratégie Caractéristique des jeux : –jeux de plateaux à 2 joueurs (les échecs, les dames, le tic-tac-toc), –jeux à information totale, –jeux avec deux adversaires effectuent à tour de rôle des déplacements, chacun considérant les défaillances de l'adversaire comme ses propres succès –à chaque tour, le joueur doit imaginer comment l'adversaire va réagir, puis comment le lui répondre, et ainsi de suite –jeux trop complexe pour envisager une solution exhaustive (les échecs ont un facteur de branchement = 35) –Tous les déplacements ne sont contrôlés par l’ordinateur –Le jeu commence à partir d'un état initial spécifié et se termine à une position qui, en utilisant un critère simple, peut être déclarée gagnante pour un joueur et perdante pour l'autre, ou encore comme un match nul

52 Résolution de problèmes Programmes de jeux de stratégie Composante de base d ’un programme de jeux : - Générateur de mouvements génère les mouvements valides à partir de l'état courant - Test de terminaison décide si l'état courant est un gain, une perte, un nul ou rien de particulier - Fonction d'évaluation (fonction de gain) évalue les gains d'un état donné indépendamment des coups passés ou futurs - Stratégie de contrôle fournit les éléments nécessaires pour choisir entre différentes options celle qui semble la plus prometteuse

53 Résolution de problèmes Programmes de jeux de stratégie Exemple de jeu : les échecs F6 G5 C6 B4 H7 H6 E5 E4 … F8 B

54 Résolution de problèmes Programmes de jeux de stratégie Exemple de jeu : les échecs Situation courante Quel coup choisir ? ? ?

55 Résolution de problèmes Programmes de jeux de stratégie Arbre de jeu : - Arbre de jeu : une représentation explicite de toutes les actions possibles de jeu (espace d’états) - Nœud racine : position initiale du jeu - Nœuds niveau 1 : positions que le premier joueur peut atteindre en un déplacement - Nœuds niveau 2 : positions résultant de la réplique du second joueur - Nœuds terminaux : représentent un nœud gagnant, un nœud perdant ou un match nul - Chemin racine ==>nœud terminal : une partie complète du jeu

56 Résolution de problèmes Programmes de jeux de stratégie Arbre de jeu :

57 Résolution de problèmes Méthode du MiniMax Caractéristiques : –Méthode qui schématise le processus décisionnel que devrait suivre tout joueur : supposer que chaque joueur va, à chaque moment, prendre la décision qui est la meilleure pour lui –Méthode qui transcrit le principe de rendre ses chances minimales quand on considère le jeu du point de vue de l ’adversaire, et maximales quand on réfléchit pour soi –Méthode où le premier joueur est appelé Max et son adversaire Min –Technique qui amène l'ordinateur à passer en revue toutes les possibilités pour un nombre limité de coups et à leur assigner une valeur qui prenne en compte les bénéfices pour le joueur et pour son adversaire. Le meilleur coup étant alors celui qui maximise ses bénéfices tout en minimisant ceux de son adversaire

58 Résolution de problèmes Méthode du MiniMax Caractéristiques : –On supposera dans cette technique que : aucune partie ne comporte un nombre infini de coups à chaque position, il existe un nombre fini de coups légaux à chaque position p, il existe un nombre fini F(p) tel que toute partie commençant à partir de p ne comporte pas plus de F(p) coups –Le but de cette technique est de construire un algorithme qui, étant donné une position p, et un joueur, choisissent un coup valable et optimal pour ce joueur –Méthode universellement utilisée (échecs, dames, othello, bridge,... )

59 Résolution de problèmes Méthode du MiniMax Principe : - Pour chaque demi-coup des noirs possibles, l ’ordinateur va envisager toutes les réponses possibles des blancs et pour chaque réponse de blancs, il va envisager toutes les répliques possibles des noirs et etc. - On développe l'arbre de jeu à partir d ’une position courante p en explorant toutes les positions possibles à partir de p et jusqu ’à une profondeur donnée et on fait remonter à la racine une valeur qui est calculée récursivement de la façon suivante : MiniMax(p)=eval(p) si p est une position terminale (une feuille) MiniMax(p)=max(MiniMax(s 1 ),..., MiniMax(s n )) si p est une position joueur avec successeurs s 1,..., s n (un nœud max) MiniMax(p)=min(MiniMax(f 1 ),..., MiniMax(f m )) si p est une position opposant avec successurs f1,..., fm (un nœud min) – MiniMax(p) est la meilleure valeur possible (meilleur coup) à partir de la position p, si l'opposant joue de façon optimale

60 Position courante p Positions terminales Résolution de problèmes Méthode du MiniMax Principe : Evaluation des nœuds

61 max min max Résolution de problèmes Méthode du MiniMax Principe : Application du Min/Max

62 Résolution de problèmes Méthode du MiniMax Implémentation : –un type de données position qui permet de représenter les états possibles du jeu –une fonction pour évaluer les positions terminales –une fonction qui sert à déterminer si une position est une position joueur ou opposant (qui c ’est qui joue? L ’ordinateur ou le joueur?) –une fonction qui prenne une position p et retourne la liste de tous les coups jouables à partir de p et jusqu’à une profondeur n –une fonction qui détermine si le jeu est terminé ou pas –une fonction qui détermine le gagnant : l ’ordinateur, le joueur ou match nul

63 Résolution de problèmes Méthode du MiniMax Exemple de jeu : jeux de Nîmes On dispose d'une pile d'allumettes. Il y a 2 joueurs. Chaque joueur peut, à son tour, séparer une pile en 2 piles inégales. Le jeu se termine lorsqu'un joueur ne peut plus jouer et il perd Fonction d ’évaluation : eval(f) = -1 si Min gagne 1 si Max gagne

64 Résolution de problèmes Méthode du MiniMax Raisonnement de l’ordinateur : – Profondeur 1 A : position initiale du jeu, niveau maximisant (ordinateur qui joue) 10

65 Résolution de problèmes Méthode du MiniMax Raisonnement de l’ordinateur : – Profondeur 2 B : niveau minimisant (adversaire qui joue)

66 Résolution de problèmes Méthode du MiniMax Raisonnement de l’ordinateur : – Profondeur

67 Résolution de problèmes Méthode du MiniMax Fonction d’évaluation : –Fonction primordiale qui renvoi un score qui doit être représentatif de la position : score > 0 : avantage pour la machine (MAX) score < 0 : avantage pour le joueur (MIN) score = 0 : partie équilibrée –Fonction utilisée pour calculer le meilleur coup –Fonction qui doit être le plus fiable et le plus rapide possible

68 Méthode du MiniMax –Algorithme : Fonction MiniMax(p) 1. si p est terminal alors Score <- eval(p) 2. sinon pour i de 1 à j faire // j = nombre de successeurs de p (a) Générer f i i e successeurs de p (b) si = 1 alors Score <- MiniMax(f 1 ) sinon // i >= 2 si p noeud min alors Score <- min(Score, MiniMax(f i )) si p noeud max alors Score <- max(Score, MiniMax(f i )) 3. retourner Score Résolution de problèmes

69 Méthode du MiniMax –Propriétés : Complétude : Oui si l ’arbre de jeu est fini Complexité : O(b m ) Optimalité : Oui si l ’adversaire est optimal Résolution de problèmes

70 Méthode du MiniMax Complexité combinatoire : Pour un jeu avec 10 demi-coups possibles : niveau 1 : 10 niveau 2 : 100 niveau 3 : 1000 niveau 4 : niveau 5 : niveau 6 : 1 million niveau 7 : 10 millions niveau 8 : 100 millions Tic-Tac-Toe : 3 9 (19683) nœuds Echecs : noeuds

71 Résolution de problèmes Méthode du MiniMax Complexité combinatoire : – Solutions MiniMax avec profondeur limitée (prédictions sur 2 ou 4 niveaux max) Elagage  - 

72 Résolution de problèmes Elagage  -  Exemple : – Profondeur Résultat : 11 positions étudiés 16 positions éliminées soit un gain de 60%

73 Résolution de problèmes Elagage  -  Principe : Etendre l'arbre de jeu jusqu'à une profondeur N par recherche en profondeur Chaque nœud Max garde la trace d'une  -valeur = valeur de son meilleur successeur trouvé jusqu'ici Chaque nœud Min garde la trace d'une  -valeur = valeur de son plus mauvais successeur trouvé jusqu'ici Ne plus générer 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) – Interrompre la recherche d'un nœud Min si sa  -valeur  -valeur de son nœud- parent : coupure  – Interrompre la recherche d'un nœud Max si son  -valeur  -valeur de son nœud- parent : coupure 

74 Résolution de problèmes Elagage  -  Coupure  : Coupure  : Min  -valeur  -valeur Max  -valeur  -valeur

75 Résolution de problèmes Elagage  -  Algorithme : Minimax_alpha_beta(P,) Début Soient P 1, P 2, …, P n successeurs de P Si n = 0 Alors retourner eval(P) // P est terminal Sinon k  1 Si P est un nœud Max Alors Coupure  faux Tant que k Vrai Faire   max[Minimax_alpha_beta(P,  Si Alors Coupure  Vrai // élagage de l’arbre Fin Si k  k+1 Fin Tant que Si coupure = Vrai Alors Retourner  Sinon Retourner Fin Si Sinon // Nœud Min Fin Si Fin Coupure  faux Tant que k Vrai Faire   min[Minimax_alpha_beta(P,  Si Alors Coupure  Vrai // élagage de l’arbre Fin Si k  k+1 Fin Tant que Si coupure = Vrai Alors Retourner  Sinon Retourner Fin Si

76 Résolution de problèmes Elagage  -  –Propriétés : Complétude : Oui si l ’arbre de jeu est fini Complexité : O(b m/2 ) doubler la profondeur de recherche (8 niveaux de prédictions pour les échecs) Optimalité : Oui si l ’adversaire est optimal


Télécharger ppt "Chapitre II Résolution de problèmes EPSI / Montpellier - Cycle CSII 2A Intelligence Artificielle."

Présentations similaires


Annonces Google