Algorithmes de Recherche Informés: TD de Introduction À L'intelligence Artificielle N 3
Algorithmes de Recherche Informés: TD de Introduction À L'intelligence Artificielle N 3
Algorithmes de Recherche Informés: TD de Introduction À L'intelligence Artificielle N 3
Exercice 1 Considérez la carte suivante. Le but est de trouver le chemin le plus court de A vers I.
A
5 5 H
C 3 4
6
D 3
F G 3
2 2
I
3 3 4
E
5
5
Le coût de chaque connexion est indiqué. Une heuristique h est donnée comme suit :
Noeud A B C D E F G H I
h 10 4 5 10 10 3 3 4 0
Pour simplifier la recherche, on applique l’optimisation suivante: dans chaque branche de l’arbre de
recherche, chaque nœud du graphe apparaît au plus une fois (autrement dit, on ne réinsère pas un nœud
dans l’arbre s’il apparaît déjà dans le chemin qui mène à la racine).
1
Pour chaque algorithme donner l’arbre de recherche, le chemin de 0 à 5 correspondant à la solution
trouvée et son coût.
Exercice 3 Donner pour chaque cas de figure ci-dessous une instance de problème de recherche (graphe
des états, état initial, fonction de coût, solutions, fonction heuristique admissible) qui satisfait les contraintes
indiquées:
1. La recherche en largeur d’abord et la recherche en profondeur d’abord sont plus efficaces que la
recherche A∗ .
2. La recherche gloutonne est plus efficace que la recherche A∗ .
3. La recherche à coût uniforme est plus efficace que la recherche A∗ et la recherche gloutonne.
L’efficacité est mesurée en nombre de nœuds développés avant de trouver la solution. Il convient de
chercher des exemple simples: le graphe d’états peut être un arbre, de facteur de branchement (nombre
de fils de chaque nœud qui n’est pas une feuille) et profondeur aussi petits que possible.
Exercice 4 On revient à la recherche aveugle. Supposons que le graphe d’états soit un arbre dont le
facteur de branchement est b et dont la profondeur est n, et que l’unique solution soit le nœud le plus à
droite du niveau k.
Pour les recherches (1) en largeur d’abord, (2) en profondeur d’abord, (3) en profondeur itérative
donner:
– Le nombre de nœuds considérés (le nombre de nœuds générés) pour trouver la solution.
– La taille maximale de la liste des nœuds ouverts (c.à.d. de la frontière de l’arbre de recherche).