CHAPITRE II Problème du plus court chemin
Cours 5
3. Algorithme de Dantzig-Ford :
L'algorithme de Dantzig-Ford résout un problème de plus court chemin. Il sert à trouver un chemin optimal (le plus court ou bien le plus long) entre un sommet initial et tous les autres sommets d'un graphe orienté. Le graphe peut être avec ou sans circuit et les poids (longueur) peuvent être positifs ou négatifs
George Bernard Dantzig (8 novembre 1914 à Portland - Oregon - 13 mai 2005 à Palo Alto, en Californie) est un mathématicien américain, notamment inventeur de l'algorithme du simplexe en optimisation linéaire.
3.1 Objectif de l'algorithme de Dantzig-Ford :
Chercher dans un réseau (graphe) les plus courts chemins qui relient un sommet de départ sdeb à tous les autres sommets du graphe.
3.2 Description de l'algorithme de Dantzig-Ford :
d[sdeb] ← 0 // Initialisation
$ = {sdeb}
pour tout sommet s ∈ S et s ≠sdeb faire
d[s] ← ∞
Γ -1[s] ← NIL
Fin pour
Tant que $ ≠ ∅ faire // Itérations
retirer le premier sommet u de $
pour tout arc (u, v) ∈ A faire
si d[v] > d[u] + w(u, v) alors
d[v] ← d[u] + w(u, v)
Γ -1[v] ← u
$ ← v
Fin si
Fin pour
Fin pour
3.3 Principe de l'algorithme de Dantzig-Ford :
La méthode de Dantzig-Ford trouve les longueurs de tous les plus courts chemins. Elle part du graphe vide, puis insère les sommets : 0, 1, 2… n−1. Au fur et à mesure, avant d’insérer le sommet k, elle gère D[i][j] les plus courtes distances du sommet i au sommet j, pour i et j inférieurs à k.
3.4 Exemple d'application :
4. Algorithme de Floyd-Warshall :
< Robert W. Floyd (né le 8 juin 1936 et mort le 25 septembre 2001 à Stanford (Californie) est un théoricien des graphes et chercheur en informatique américain.Stephen Warshall > (né15 novembre 1935, New York, État de New York, États-Unis et mort le 11 décembre 2006, Gloucester, Massachusetts, États-Unis) est un chercheur en informatique américain.L'algorithme de Floyd-Warshall est un premier algorithme, naïf, permettant de répondre au problème de la recherche de plus court chemin. Il est simple, mais coûteux.Il prend en entrée un graphe orienté et valué, décrit par une matrice d'adjacence donnant le poids d'un arc lorsqu'il existe et la valeur ∞ sinon. Le poids d'un chemin entre deux sommets est la somme des poids sur les arcs constituant ce chemin. Les arcs du graphe peuvent avoir des poids négatifs, mais le graphe ne doit pas posséder de circuit de poids strictement négatif.
4.1 Objectif de l'algorithme de Floyd-Warshall :
L'algorithme calcule, pour chaque paire de sommets, le poids minimal parmi tous les chemins entre ces deux sommets.
4.2 Description de l'algorithme de Floyd-Warshall :
matrice d'adjacence de (matrice )
La première matrice des prédécesseurs Γ -1 contient :
NIL s'il n'y a pas d'arc menant de i à j,
i si i=j,
i s'il existe une arc de i à j≠i.
for
to for
to for
to
retourner
4.3 Principe de l'algorithme de Floyd-Warshall :
4.4 Exemple d'application :