Algorithme de recherche et d'apresentation
Algorithmes de recherche
1Programmation Logique et IA P. Habermehl et D. Kesner
Résolution de problèmes par recherche
� On représente un problème par un espace d'états (arbre/graphe).
� Chaque état est une con�guration possible du problème.
� Résoudre le problème consiste à trouve un chemin dans le graphe. � Parcours aveugles non informés : profondeur, largeur.
� Parcours informés.
2Programmation Logique et IA P. Habermehl et D. Kesner
Exemple …afficher plus de contenu…
Enlever le premier élement de la pile (11, 2) et ne rien rajouter.
On obtient [].
29Programmation Logique et IA P. Habermehl et D. Kesner
Variante : recherche en profondeur itérative
C'est une itération de la recherche en profondeur limitée.
Pour p de 0 a infini faire recherche_profondeur_limitee(p) 30Programmation Logique et IA P. Habermehl et D. Kesner
Caractéristiques de la recherche en profondeur itérative
� Complète.
� Complexité en temps : 1 + b + b2 + ... + bd = O(bd).
� Complexité en espace : O(b× d).
� Optimale si coût = 1.
31Programmation Logique et IA P. Habermehl et D. Kesner
Stratégies informées
� Meilleur d'abord
� L'algorithme A∗
� Heuristiques
32Programmation Logique et IA P. Habermehl et D. Kesner
Recherche meilleur en premier
� Compromis entre recherche en largeur et recherche en …afficher plus de contenu…
Habermehl et D. Kesner
Dans l'exemple : h1(S) = 7 et h2(S) = 2 + 3 + 3 + 2 + 4 + 2 + 0 + 2 = 18
On dit que h2 domine h1 ssi h2(n) ≥ h1(n) pour tout n. Dans ce cas, on choisit l'heuristique dominante.
Une heuristique dominante peut réduire l'espace de recherche considérablement. 49Programmation Logique et IA P. Habermehl et D. Kesner
Algorithmes d'amélioration itérative
� À utiliser lorsque le chemin qui mène vers une solution n'est pas important. � Idée : améliorer l'état �nal lui même.
50Programmation Logique et IA P. Habermehl et D.