Méthodes de Résolution de problèmes En Intelligence Artificielle
Résolution de Problèmes et Intelligence Artificielle Résoudre des puzzles Jouer aux échecs Faire des mathématiques Et même conduire une voiture Sont des activités humaines qui requièrent de l intelligence 2
Les machines munies de programmes qui peuvent entreprendre de telles tâches, possèdent un certain degré d intelligence La résolution de problèmes exclut les méthodes de calcul ordinaire comme l inversion d une matrice ou la résolution des équations différentielles 3
Méthode basée Trial and error Les méthodes étudiées en Intelligence Artificielle utilisent souvent une recherche basée sur des essais et erreurs ( trial-anderror): Elles recherchent une solution dans un espace de solutions possibles 4
D autres thématiques de l Intelligence Artificielle Apprentissage automatique Compréhension du langage naturel Raisonnement automatique Il n existe pas de théorie unifiée pour l organisation de l intelligence. Cependant, comme les techniques de résolution de problèmes sont d une utilité d ordre général, elles peuvent être utilisées dans tous les axes de recherche de l Intelligence Artificielle 5
Les puzzles et les jeux comme exemples de problèmes Les puzzles et les jeux constituent une source riche d exemples de problèmes Pour l illustration des techniques Pour le test des méthodes Il existe des programmes de jeux qui battent les experts humains comme les jeux d échec 6
Le Taquin à 2 dimensions L exemple de problème utilisé dans ce cours est le taquin à 2 dimensions ou le puzzle à 15 carreaux Configuration initiale configuration cible 2 6 15 4 1 2 3 4 8 11 14 5 6 7 8 10 5 1 9 9 10 11 12 3 12 13 7 13 14 15 7
Approche Espace des états 8
Etat du problème Lors du processus de résolution, le problème transite d un état vers un autre. Dans le cas du taquin, un état est une configuration du tableau 4x4 On distingue: L état initial Un ou plusieurs états finaux 9
Opérateurs Un opérateur transforme un état en un autre état. Il existe quatre opérateurs pour le taquin: déplacer la case vide en haut déplacer la case vide en bas déplacer la case vide à gauche déplacer la case vide à droite 10
L application des opérateurs sur les états en démarrant de l état initial conduit à la construction d une arborescence 11
Exemple de portion d une arborescence 11 9 4 15 1 3 12 7 5 8 6 13 2 10 14 11 9 4 15 11 9 15 11 9 4 15 11 9 4 15 1 3 12 7 5 8 6 13 2 10 14 1 3 4 12 7 5 8 6 13 2 10 14 1 3 12 7 5 8 6 13 2 10 14 1 3 8 12 7 5 6 13 2 10 14 11 9 15 1 3 4 12 7 5 8 6 13 2 10 14 11 9 15 1 3 4 12 7 5 8 6 13 2 10 14 11 9 4 15 1 3 12 7 5 8 6 13 2 10 14 12
La racine correspond à la configuration initiale Un nœud représente une configuration quelconque Un arc correspond à l application d un opérateur 13
Réduction des problèmes en sous problèmes
Fractionnement du problème Le problème est divisé en plusieurs sous problèmes de petites tailles Le fractionnement s arrête lorsque le sous problème correspondant est solvable 15
Construction d une arborescence Un processus récursif permet la construction d une arborescence de sous problèmes. La racine correspond au problème à résoudre Un nœud à un sous problème Les sous problèmes d un niveau de l arbre ont une taille inférieure aux sous problèmes des niveaux supérieurs Les feuilles de l arbre correspondent aux sous problèmes solvables 16
Exemple Conduire d Oran à Annaba Conduire d Oran à Chlef Conduire de Chlef à Alger Conduire d Alger à Sétif Conduire de Sétif à Annaba 17
Exemple de portion d une arborescence Conduire d Oran à Annaba Conduire d Oran à Chlef Conduire De Chlef à Alger Conduire d Alger à Sétif Conduire De Sétif à Annaba Conduire De Chlef à Blida Conduire De Blida à Alger Conduire D Alger à Bouira 18
Remarque importante 1- C est la taille du problème qui est réduite à chaque fois que le problème est insolvable 2- La technique de résolution est la même pour tous les sous problèmes 19
Démonstration de théorèmes 20
Utilisation de la logique dans la résolution de problèmes Que ce soit par l approche espace des états ou par la réduction de problèmes, la résolution de problèmes fait appel souvent à la logique 21
Exemple d utilisation de la logique dans l approche Espace des états Dans le jeu du taquin, il a été démontré que les opérateurs de transition tels que définis précédemment conduisent à la création de deux sous-ensembles disjoints contenant les états du problème Un état quelconque d un sous ensemble ne peut donc avoir des successeurs appartenant à l autre sous ensemble Cet important résultat peut aider grandement à la résolution du problème, car à chaque génération d une configuration, il peut nous renseigner sur la possibilité d atteindre ou non l état cible 22
Troisième approche basée sur la logique: La démonstration de théorèmes Tout problème à résoudre peut être transformé en un théorème à démontrer Résoudre un problème équivaut donc à démontrer le théorème correspondant La logique est employée comme outil théorique pour la preuve 23
Deux éléments fondamentaux pour la résolution de problèmes La représentation La recherche Dans ce cours, nous nous intéressons plus particulièrement aux méthodes de recherche de solutions dans un espace d états. 24
Démarche générale pour la résolution d un problème 1- Choix de l approche de résolution Espace des états Réduction de problèmes Démonstration de théorèmes 2- Choix d une représentation Pour un même problème, il peut exister plusieurs représentations 3- Choix de la méthode de résolution 25
Panorama sur les méthodes de recherche Méthodes aveugles recherche en largeur d abord recherche en profondeur d abord Les méthodes heuristiques: l algorithme A* les méta-heuristiques Le recuit simulé Les algorithmes génétiques Les colonies de fourmis La recherche taboue 26
Les méthodes de recherche dans l approche espace des états 27
Processus de recherche dans un graphe Le processus de recherche d une solution opère sur une représentation de graphe comme suit: 1- Le nœud initial correspond à l état initial 2- Les successeurs d un nœud sont calculés à l aide des opérateurs. Soit, l opérateur qui calcule tous les successeurs 3- Parmi les successeurs, s il existe un état final, la solution est obtenue en parcourant le graphe de cet état vers l état initial. Les arcs doivent alors être orientés dans les deux sens dans le cas contraire, on continue l expansion des noeuds 28
Recherche aveugle Si l expansion des nœuds se fait selon l ordre dans lequel ils ont été engendrés, le processus est appelé recherche en largeur d abord Si la stratégie de l expansion considère des nœuds les plus récemment engendrés, le processus est appelé recherche en profondeur d abord 29
Dans les méthodes aveugles, l ordre dans lequel les nœuds sont engendrés ne tient pas compte de la position de l état cible dans le graphe. 30
Les méthodes heuristiques Dans les procédures non aveugles, on fait appel à des heuristiques Une heuristique signifie aider à découvrir L heuristique a pour rôle de diriger l expansion des nœuds vers l état but en développant les nœuds les plus prometteurs Par souci de simplification, les méthodes décrites ultérieurement utilisent une structure d arbre. L extension aux graphes sera considérée par la suite. 31
La recherche en largeur d abord ou recherche horizontale L expansion des nœuds les moins récemment engendrés s effectue en premier L arborescence est construite niveau après niveau et donc de manière horizontale 32
Un algorithme simple de recherche en largeur d abord 1- Insérer le nœud initial s dans une liste appelée OPEN 2- Si OPEN est vide alors échec sinon continuer 3- Retirer le premier nœud de OPEN et l insérer dans une liste appelée CLOSED. Soit n ce nœud. 4- S il n existe pas de successeur alors aller à 2. Engendrer les successeurs de n et les insérer à la queue de OPEN. Créer un chaînage de ces nœuds vers n 5- Si parmi les successeurs, il existe un état final alors succès: la solution est obtenue en suivant le chaînage arrière de ce nœud vers la racine, sinon aller à 2 33
Exercice 1: taquin 3x3 Appliquer la recherche en largeur d abord sur la donnée suivante: Configuration initiale configuration cible 2 8 3 1 2 3 1 6 4 8 4 7 5 7 6 5 34
35
Méthode de coût uniforme: une version plus générale de la recherche en largeur d abord Soient: - c(n i,n j ) le coût de l arc reliant ni à son successeur n j - g(n) le coût minimal de la chaîne allant de s à n La méthode garantit le calcul de la chaîne de coût minimal 36
Algorithme du coût uniforme 1- Insérer s dans une liste appelée OPEN. Soit g(s) = 0 2- Si OPEN est vide alors échec sinon continuer 3- Retirer de OPEN, le nœud qui a la plus petite valeur g et l insérer dans CLOSED. Soit n ce nœud. En cas de conflit, choisir arbitrairement n. 4- Si n est un état final alors succès sinon continuer 5- Engendrer les successeurs de n. S il n existe pas de successeur aller à 2 sinon calculer et insérer dans OPEN pour chaque successeur n i, g(n i )=g(n)+c(n,n i ). Etablir le chaînage arrière. 6- Aller à 2 37
Profondeur d un arbre La profondeur d un nœud dans un arbre est calculée comme suit: profondeur(racine) = 0 profondeur(n) = profondeur(parent(n))+1 38
La recherche en profondeur d abord ou recherche verticale L expansion des nœuds les plus récemment engendrés s effectue en premier Le nœud le plus profond est choisi pour l expansion. Lorsqu un certain seuil de profondeur est atteint, le processus considère un nœud du niveau précédent 39
Un algorithme de recherche en profondeur 1- Insérer le nœud initial s dans une liste appelée OPEN 2- Si OPEN est vide alors échec sinon continuer 3- Retirer le premier nœud de OPEN et l insérer dans une liste appelée CLOSED. Soit n ce nœud. 4- Si la profondeur de l arbre est égale au seuil de profondeur aller à 2 sinon continuer 5- Engendrer les successeurs de n et les empiler dans OPEN. Créer un chaînage de ces nœuds vers n 5- Si parmi les successeurs, il existe un état final alors succès: la solution est obtenue en suivant le chaînage arrière de ce nœud vers la racine, sinon aller à 2 40
Exercice 2: taquin 3x3 Appliquer la recherche en profondeur d abord sur la donnée suivante: Configuration initiale configuration cible 2 8 3 1 2 3 1 6 4 8 4 7 5 7 6 5 41
42
Modifications pour rechercher dans des graphes Recherche en largeur ou en profondeur d abord: * Quand un nœud est engendré, tester s il se trouve dans OPEN ou CLOSED. Ne pas l insérer dans ce cas. Algorithme du coût minimal: *Quand un nœud est créé - s il se trouve dans OPEN, mettre à jour sa valeur g (si elle est plus petite) et son chaînage arrière - s il se trouve dans CLOSED, mettre à jour sa valeur g (si elle est plus petite) et son chaînage arrière et l insérer dans OPEN 43
Introduction aux heuristiques Les méthodes aveugles sont des méthodes exhaustives Il existe des limites pratiques sur le temps d exécution et l espace mémoire pour appliquer ces méthodes sur une grande catégorie de problèmes Il faut chercher d autres alternatives efficaces pour solutionner ces problèmes Toute technique visant à accélérer la recherche est basée sur une information appelée heuristique Les méthodes utilisant des heuristiques sont dites méthodes de recherche heuristiques 44
Implémentation des méthodes heuristiques Utiliser la recherche en profondeur d abord et placer les nœuds développés dans OPEN selon l ordre déterminé par l heuristique Une façon plus flexible est d utiliser un critère pour réordonner tous les nœuds qui sont dans OPEN Une certaine mesure doit être établie pour évaluer la promesse d un nœud. Cette mesure est appelée fonction d évaluation ou d adéquation ou objective 45
Fonction d évaluation L utilisation d une heuristique est basée sur une fonction d évaluation pour ordonner la recherche Soit f une fonction d évaluation, f(n) exprime la valeur de cette fonction pour le nœud n 46
Algorithme de recherche ordonnée 1- Placer s dans OPEN et calculer f(s) 2- Si OPEN est vide alors échec sinon continuer 3- Retirer de OPEN, le nœud qui a la plus petite valeur f et l insérer dans CLOSED. Soit n ce nœud. 4- Si n est un état final alors succès sinon continuer 5- Engendrer les successeurs de n. S il n en existe pas aller à 2 sinon calculer pour chaque successeur n i, f(n i ). 6- Insérer les successeurs qui ne sont ni dans OPEN ni dans CLOSED, dans OPEN et établir le chaînage arrière. 7- Mettre à jour la valeur de f pour les successeurs qui se trouvent dans OPEN ou CLOSED. Placer dans OPEN, les nœuds de CLOSED pour lesquels f a diminué. Aller à 2 47
Soit f(n) = g(n) + w(n) Exercice 3 Où g(n) est la longueur de la chaîne entre la racine et n et w(n), le nombre de chiffres mal placés dans le puzzle. Le nœud initial 2 8 3 1 6 4 7 5 a une valeur f = 0 + 4 = 4 Appliquer l algorithme de recherche ordonnée sur la donnée de l exercice 2. 48
L algorithme A* C est un algorithme de recherche ordonnée basé sur une fonction d évaluation f(n)=g(n)+h(n) où g(n) est le coût de la chaîne allant de s à n et h(n) appelée heuristique est une estimation du coût de la chaîne reliant n à un nœud final. h est spécifique au domaine d application, exemple w. 49
Admissibilité et optimalité Théorème1: Si h (n) <= h(n) pour tout n, et si tous les coûts associés aux arcs sont supérieurs à un nombre positif alors A* est admissible. Théorème2: Soient A et A* deux algorithmes admissibles tels que A* est plus informé que A et h (m)-h (n) <= k(m,n) pour A*, alors pour tout graphe, si un nœud n est développé par A*, il est aussi développé par A. 50