Benjamin Monmege
L’algorithme de parcours en largeur garantit d’obtenir un plus court chemin en terme du nombre d’arcs visités…
… mais vis-à-vis d’un problème de recherche d’itinéraire dans une ville, on peut vouloir mesurer une distance plus finement qu’en fonction du nombre d’arcs, par des poids:
\(\delta(u,v) = \begin{cases} \min\{\mathit{poids}(c)\mid c \text{ chemin de } u \text{ à } v\} & \text{s'il existe un chemin de $u$ à $v$}\\ \infty & \text{sinon}\end{cases}\)
Exemple au tableau…
Algorithme de Dijkstra : plus courts chemins à origine unique dans des graphes à poids positifs
Algorithme de Bellman-Ford : plus courts chemins à origine unique
Algorithme de Floyd-Warshall : plus courts chemins pour tous couples de sommets (avec détection des cycles de poids strictement négatif)
fonction relâcher(u, v, poids_arc):
si d(v) > d(u) + poids_arc(u,v)
alors d(v) = d(u) + poids_arc(u,v); pi(v) = u