Retour
Cours précédent
Cours suivant

Algorithme de Ford (Bellman-Ford)

Objectif

Il permet de calculer les plus cours chemins entre un sommet s et tous les autres. Même si le graphe possède un ou des circuits et/ou des arcs de poids négatif.

Si un circuit négatif alors renvoi Faux sinon Vrai.

Principe

A chaque itération, on effectue un relâchement sur chaque arc uv pour voir si il est opportun d’utiliser cet arc pour avoir un plus court chemin entre s et v.

Complexité

O(n*m)

Plus court chemin entre toutes paire de sommets

Utilisation de Dijkstra n fois. On a ainsi un algorithme de complexité O(n²*log(n) + n*m).

Calcul matriciel

On considère une matrice W[i, j] avec

Algorithme de Floyd (Floyd-Warshall)

L’algorithme de Floyd s’appuie sur le fait que l’on ne va, à chaque calcul de la nouvelle matrice, considérer que les k premiers sommets comme sommets intermédiaires potentiels.
Comme il y a n boucles, on aura bien à la fin considéré tous les sommets comme sommet intermédiaire potentiel.

Algorithme de Warshall

L’algorithme de Floyd peut être adapté pour calculer la matrice d’adjacence de la fermeture transitive d’un graphe G orienté, c’est à dire du graphe G’ tel que \(ij \in E(G')\) alors il existe un chemin de i à j dans G.


Retour
Cours précédent
Cours suivant