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

ACADEMIE NAVALE DE MANZEL BOURGUIBA

Présentations similaires


Présentation au sujet: "ACADEMIE NAVALE DE MANZEL BOURGUIBA"— Transcription de la présentation:

1 ACADEMIE NAVALE DE MANZEL BOURGUIBA
Intelligence Artificielle Version Janvier 2008 Dr. Inès BENJAAFAR Ou

2 Recherche Heuristique dans les Graphes d’Etats
Chapitre 5 Recherche Heuristique dans les Graphes d’Etats

3 Plan du chapitre V V.1 Introduction
V.2 Stratégies de recherche aveugle Recherche en profondeur Recherche en largeur V.3 Stratégies de recherche heuristique Recherche en profondeur Ordonnée Recherche du meilleur Premier Recherche Heuristique A*

4 V.1 Introduction ! Les Algorithmes de recherche constituent l’une des approches les plus puissantes pour la résolution en IA Les algorithmes de recherche sont un mécanisme générl de résolution de problèmes qui : Se déroule dans un espace appelé espace d’états Explore systématiquement toutes les alternatives Trouve la séquence d’étapes menant à la solution

5 V.1 Introduction ! Les différentes méthodes de recherche sont évaluées selon les critères suivants : Complétude : est ce que la méthode garantit de trouver une solution si elle existe? Optimalité : est ce que la méthode trouve la meilleure solution s’il en existe plusieurs? Complexité en temps : Combien de nœuds faut-il produire pour trouver la solution? Complexité en espace : nombre maximum de nœuds à conserver en mémoire pour trouver la solution?

6 V.1 Introduction ! Les méthodes de recherche différent les unes des autres selon l’ordre dans lequel les nœuds sont étendus, On distingue : Les Stratégies Aveugles, qui n’exploitent aucune information contenue dans un nœud donné Les Stratégies Heuristiques qui exploitent certaines informations pour déterminer si un nœud est plus prometteur qu’un autre

7 ! V.1 Introduction Exemple : Problème de recherche de chemin
Il s’agit de trouver un chemin dans un réseau de villes reliées par des routes. Le chemin doit commencer à la ville source S et se terminer à la ville but G (voir figure) La difficulté de la recherche d’un chemin se mesure à deux niveaux : la découverte d’un chemin (le plus court ou quelconque) le parcours effectif de ce chemin

8 ! V.1 Introduction Exemple : Problème de recherche de chemin
Deux solutions sont possibles : Si le parcours entre S et G est fréquent alors il est préférable de trouver un chemin optimal Si le parcours se fait une seule fois et si le réseau est complexe, on peut se satisfaire du premier chemin rencontré Dans un premier temps, on considère la recherche d’un chemin quelconque, on présente ensuite la recherche de chemins optimaux!

9 V.2 Stratégies de recherche aveugles
Recherche en profondeur (depth first search) Elle descend directement au fond de l’arbre de recherche On sélectionne à chaque nœud rencontré pour continuer la descente à partir de cette possibilité jusqu’à atteindre le but ou une feuille Dans le cas d’impasse (une feuille différente du but), on reprend la recherche à partir de l’ancêtre le plus proche dont au moins un fils n’a pas été exploré Les possibilités sont testées de gauche à droite La première action dans le parcours de l’arbre est de poursuivre les branches les plus à gauche

10 V.2 Stratégies de recherche aveugles
Procedure de Recherche en profondeur Empiler la racine Jusqu’à ce que la pile soit vide ou que le nœud but soit atteint, si le sommet de la pile est égal au nœud but : 2.1 Si oui ne rien faire à cette étape 2.2 Sinon dépiler le premier élément et empiler ses fils, s’il en a, depuis celui le plus à droite jusqu’à celui le plus à gauche La recherche aboutit si le nœud but a été atteint et échoue sinon

11 V.2 Stratégies de recherche aveugles
Remarques L’algorithme peut dans un cas défavorable, nous obliger à parcourir l’intégralité de l’espace d’état avant de trouver la polution (au pire des cas) Un inconvénient de la recherche en profondeur : au lieu de correspondre à une impasse directe, on explore plusieurs niveaux de l’arbre avant de rencontrer le cas d’impasse

12 V.2 Stratégies de recherche aveugles
Recherche en Largeur Elle descend uniformément dans l’arbre de recherche La recherche en largeur cherche le but souhaité parmi tous les nœuds d’un niveau donné avant de consulter leurs fils On ne peut pas développer un nœud de niveau n si on n’a pas développer tous les nœuds de niveau n-1 L’arbre de recherche en largeur correspondant à l’exemple 1 est donné par la figre suivante :

13 V.2 Stratégies de recherche aveugles
Procedure de Recherche en Largeur Mettre la racine en tête de la file Jusqu’à ce que la file soit vide ou que le nœud but soit atteint, si le premier élément de la file est égal au nœud but : 2.1 Si oui ne rien faire à cette étape 2.2 Sinon le retirer de la file et placer ses fils, s’il en a, depuis celui le plus à droite jusqu’à celui le plus à gauche La recherche aboutit si le nœud but a été atteint et échoue sinon

14 V.2 Stratégies de recherche aveugles
Remarques La procédure recherche en largeur ressemble à celle de la recherche en profondeur, la seule différence réside dans l’endroit d’insertion de nouveaux éléments. Ceci se traduit pr le fait qu’on utilise une file plutôt qu’une pile Lorsque la recherche en profondeur s’avère inéfficace, une recherche en largeur peut donner des résultats plus surs Ce type de recherche est très couteux lorsque tous les chemins mènent au but, à des profondeurs pratiquement identiques

15 V.3 Stratégies de recherche Heuristiques
Les algorithmes de recherche aveugle n’exploitent aucune information concernant la structure de l’arbre de recherche ou la présence potentielle de nœuds-solution pour optimiser la recherche La majorité des problèmes réels sont susceptibles de provoquer une explosion combinatoire du nombre d’états possibles Un algorithme de recherche heuristique qui utilise l’information disponible pour rendre le processus de recherche plus efficace s’avère une nécessité Une information heuristique est une règle ou une méthode qui presque tjrs améliore le processus d la recherche

16 V.3 Stratégies de recherche Heuristiques
Recherche en profondeur Ordonnée (Hill climbing) On peut améliorer l’efficacité d’une recherche si l’on dispose d’un moyen d’examiner en premier les choix les plus prometteur On procède comme pour la recherche en profondeur, mais on ordonne les choix selon une mesure heuristique de la distance restante à parcourir depuis un nœud Plus la mesure heuristique est fine, plus l’efficacité de l’algorithme est supérieure à la simple recherche en profondeur Un exemple de mesure heuristique de la distance restante à parcourir est la distance euclidiènne (distance à vol d’oiseau)

17 V.3 Stratégies de recherche Heuristiques
Procedure de Recherche en Profondeur Ordonnée Empiler la racine Jusqu’à ce que la pile soit vide ou que le nœud but soit atteint, si le sommet de la pile est égal au nœud but : 2.1 Si oui ne rien faire à cette étape 2.2 Sinon dépiler le premier élément et empiler ses fils, s’il en a, dans l’ordre décroissant de leur distance au but La recherche aboutit si le nœud but a été atteint et échoue sinon

18 V.3 Stratégies de recherche Heuristiques
Remarque : Cette procédure peut mener à une solution qui présente un optimum local et non pas global. La solution sera diférente de la solution globale au problème

19 V.3 Stratégies de recherche Heuristiques
Recherche du meilleur premier (best first search) Cette recherche est un compromis entre une recherche en largeur et une recherche en profondeur en utilisant une fonction heuristique pour guider la génération des noeuds Le mecanisme de cette recherche est le suivant : on développe à chaque étape le meilleur noeud non encore développé, quelque soit l’endroit où il se situe dans l’arbre partiel developpé et on recommence le processus La recherche du meilleur premier nécessite comme dans la recherche en profondeur ordonné un tri, mais cette fois toute la file devra être triée

20 V.3 Stratégies de recherche Heuristiques
Procedure du meilleur premier Mettre la racine en tête de la file Jusqu’à ce que la file soit vide ou que le nœud but soit atteint, si le premier élément de la file est égal au nœud but : 2.1 Si oui ne rien faire à cette étape 2.2 Sinon le retirer de la file et placer ses fils, s’il en a, et trier la file entière par ordre croissant des distances calculées au but La recherche aboutit si le nœud but a été atteint et échoue sinon

21 V.3 Stratégies de recherche Heuristiques
Remarque : Les chemins trouvés par la procédure du meilleur premier sont souvent meilleurs que ceux trouvés par les autres méthodes, parce qu’on poursuit toujours la recherche à partir du nœud qui semble être le plus proche du but

22 V.3 Stratégies de recherche Heuristiques
Procedure du British Museum (énumération explicite) Une technique (la plus simple pour trouver le chemin le plus court consiste à rechercher tous les chemins possibles puis à conserver le chemin le plus court British Museum : musée réputé par la complexité de ramification de ses galeries avant de trouver celle qqui l’interesse Pour trouver tous les chemins possibles on peut utiliserr ou bien la recherche en largeur ou bien la recherche en profondeur mais avec une legère modification :la recherche ne s’arrête pas dès qu’on trouve le premier chemin conduisant au but L’utilisation d’une telle procédure est acceptable tant que la largeur et la profondeur de l’arbre restent raisonnables

23 V.3 Stratégies de recherche Heuristiques
Branch and Bound (méthode de séparation et évaluation) Ce type de recherche heuristique fournit une méthode moins couteuse pour trouver les chemins optimaux L’idée de base étant de développer le chemin partiel à moindre coût Ainsi, on développe le nœud situé à la fin du plus court chemin partiel ouvert à ce stade Si on prend un exemple simple de carte routière figure suivante : ….

24 V.3 Stratégies de recherche Heuristiques
Procedure Branch and Bound Initialement, la file des chemins partiels contient le chemin de longeur nulle contenant la racine Jusqu’à ce que la file soit vide ou que le nœud but soit atteint, si le premier chemin de la file atteint le but : 2.1 Si oui ne rien faire à cette étape 2.2 Sinon 2.2.1 Le défiler 2.2.2 Former les nouveaux chemins obtenus en prolongeant d’un niveau le chemin supprimé 2.2.3 Enfiler ces nouveaux chemins 2.2.4 Trier la file par cout de chemin croissant (distance totale du chemin parcuru) La recherche aboutit si le nœud but a été atteint et échoue sinon

25 V.3 Stratégies de recherche Heuristiques
Branch and Bound et estimation minorante l’efficacité du branch and bound peut être améliorée si o utilise en plus de la longeur du chemin déjà parcouru une estimation des distances restantes à parcourir Si on peut se fier à la distance restante à parcourir en lui ajoutant la distance connue du chemin déjà parcouru, on aura une bonne estimation de la longueur totale du chemin E(longueur totale du chemin) = distance déjà parcourue + E(distance restante) Ainsi on développe le chemin dont la longueur estimée est la plus courte jusqu’à ce qu’on trouve un autre chemin de longueur estimée plus courte

26 V.3 Stratégies de recherche Heuristiques
Branch and Bound et estimation minorante Si les estimations sont parfaites, cette recherche trouve le chemin optimal, mais en général, les estimations ne sont pas parfaites et une mauvaise sur évaluation du véritable chemin optimal peut nous en faire dévier Une sous estimation ne peut pas risquer de faire manquer le chemin optimal Une sous estimation de la distance restante conduit à une sous estimation d la longueur totale du chemin Si dans ce type de recherche heuristique on garantit l’utilisation d’une heuristique minorante alors on est sur d’atteindre le chemin optimal

27 V.3 Stratégies de recherche Heuristiques
Procedure Branch and Bound avec heuristique minorante Initialement, la file des chemins partiels contient le chemin de longeur nulle contenant la racine Jusqu’à ce que la file soit vide ou que le nœud but soit atteint, si le premier chemin de la file atteint le but : 2.1 Si oui ne rien faire à cette étape 2.2 Sinon 2.2.1 Le défiler 2.2.2 Former les nouveaux chemins obtenus en prolongeant d’un niveau le chemin supprimé 2.2.3 Enfiler ces nouveaux chemins 2.2.4 Trier la file par coût de chemin croissant ( somme de distance déjà parcourue et d’une estimation minorante de la distance restante à parcourir) La recherche aboutit si le nœud but a été atteint et échoue sinon

28 V.3 Stratégies de recherche Heuristiques
Remarques : L’heuristique minorante garantit l’obtention de la solution optimale L’approche est plus efficace d’autant mieux que les estimations minorantes sont plus proches des distances réelles, car dans ce cas il devient impossible de sortir du droit chemin

29 V.3 Stratégies de recherche Heuristiques
Recherche heuristique par programmation dynamique Il existe une autre façon d’améliorer la recherche heuristique, Il s’agit de supprimer les chemins redondants voir exemple..

30 V.3 Stratégies de recherche Heuristiques
Procedure recherche heuristique par programmation dynamique Initialement, la file des chemins partiels contient le chemin de longeur nulle contenant la racine Jusqu’à ce que la file soit vide ou que le nœud but soit atteint, si le premier chemin de la file atteint le but : 2.1 Si oui ne rien faire à cette étape 2.2 Sinon 2.2.1 Le défiler 2.2.2 Former les nouveaux chemins obtenus en prolongeant d’un niveau le chemin supprimé 2.2.3 Enfiler ces nouveaux chemins 2.2.4 Trier la file par coût de chemin croissant (distance totale du chemin parcouru ) 2.2.5 Si deux chemins ou plus atteignent le même nœud, ne conserver que celui ayant la longueur minimale La recherche aboutit si le nœud but a été atteint et échoue sinon

31 V.3 Stratégies de recherche Heuristiques
Recherche heuristique A* La recherche heuristique A* est une recherche heuristique avec estimation de la distance restante combinée avec le principe de la programmation dynamique Cet algorithme apparait avec de nombreuses variantes dans la littérature, on l’expose dans ce chapitre sous une formulation simple

32 V.3 Stratégies de recherche Heuristiques
Procedure A* Initialement, la file des chemins partiels contient le chemin de longeur nulle contenant la racine Jusqu’à ce que la file soit vide ou que le nœud but soit atteint, si le premier chemin de la file atteint le but : 2.1 Si oui ne rien faire à cette étape 2.2 Sinon 2.2.1 Le défiler 2.2.2 Former les nouveaux chemins obtenus en prolongeant d’un niveau le chemin supprimé 2.2.3 Enfiler ces nouveaux chemins 2.2.4 Coût de chaque chemin (f) = distance déjà parcourue (g) + estimation minorante de la distance restante à parcourir (h) 2.2.5 Trier la file par coûts (f) croissants 2.2.6 Si deux chemins ou plus atteignent le même nœud, ne conserver que celui ayant la longueur minimale La recherche aboutit si le nœud but a été atteint et échoue sinon

33 ! Bibliographie H. Farreny et M. Ghallab, Eléments d’Intelligence Artificielle, Edition HERMES, 1987 J.-G. Ganascia, L’intelligence Artificielle, Coll. DOMINOS, Flammarion, 1993 J.-G. Ganascia, L’âme machine, Seuil, 1990 M. Ginsberg, Essentials of Artificial Intelligence, Morgan Kaufmann, 1997 J.-L. Laurière, Intelligence Artificielle : résolution de problèmes par l’homme et la machine, Eyrolles, 1987 Russel and Norvig, Artificial Intelligence a Modern Approach, Prentice Hall Series in Artificial Intelligence, 1995


Télécharger ppt "ACADEMIE NAVALE DE MANZEL BOURGUIBA"

Présentations similaires


Annonces Google