Exercice 1 : Recherche de chemins dans un graphe



Utilisation - Généralités :


Le panneau de controle :

Le panneau de controle permet de fixer les parametres de la recherche qui sont :


Le panneau de résultat :

Le panneau de résulat permet de visualiser les différentes étapes de la recherche. Si l'éxécution pas à pas a été demandée les différentes étapes s'affichent une par une et l'on obtient la suivante en cliquant sur "Etape suivante" et l'on peut achever le déroulement de l'algorithme en cliquant sur "Terminer".

Pour chaque étape on dispose :

Remarque : Des informations suppléméntaires sont disponibles dans la liste des noeuds a explorer lorsque l'on utilise la méthode A*. Voir le paragraphe décrivant la méthode A* pour la signification de ces informations.


Les différentes méthodes de recherche :

Les trois méthodes de recherche disponibles sont :


La methode BreadthFirst (en largeur d'abord) :

Cette méthode tente d'atteindre le noeud recherché le plus rapidement possible en explorant immédiatement les successeurs du noeud de recherche courant.

Ainsi lorsque l'on doit placer les successeurs du noeud courant dans la liste des noeud à explorer, on les place en tête de liste de manière à ce qu'ils soient explorés en premier dans les étapes ultérieures.


La méthode DepthFirst (en profondeur d'abord) :

Cette méthode effectue la recherche "couche par couche". Tous les successeurs d'un noeud seront explorés avant que ne le soient "les succésseurs de ses succésseurs". Lorsque l'on obtient un chemin avec cette méthode on est certain que le nombre de sommets étapes traversés par ce chemin est optimal.

Pour mettre en oeuvre cette méthode, il suffit de placer les successeurs du noeud de recherche courant en queue de la la liste des noeuds à explorer. Ainsi, ils ne seront étudiés qu'après que tous les autres noeuds déjà présents dans la liste l'aient été.


La méthode A* :

La méthode A* constitue un compromis entre les deux méthodes extrêmes DepthFirst et BreadthFirst. Elle s'appuie sur une recherche heuristique.

Dans ce cas, la liste des noeuds a explorer est triée par ordre croissant d'une certaine fonction d'évaluation f. La fonction d'évaluation f(n) se calcule en sommant deux facteurs : le coût c(n) pour aller du noeud initial au noeud n et une estimation heuristique h(n) du coût pour aller de n au noeud final. La fonction d'évaluation donne une estimation du coût total d'un chemin menant du noeud initial au noeud final en passant par le noeud n. En explorant les noeuds par ordre croissant de cette estimation on privilégie les noeuds les plus prometteurs.

Lors d'une recherche utilisant la méthode A*, on trouve, à chaque étape, dans la liste des noeuds à explorer, le détail de la determination de ces estimations (présentée sous la forme : c(n)+h(n)=f(n) ).