Lycée La Martinière Monplaisir
Option Informatique 2eannée
Année 2016-2017
Algorithme de Floyd-Warshall
Remarque 2 (Astuce de calcul) Considérons un graphe G0= (S0, A0)pondéré par
des réels, c’est-à-dire muni d’une fonction w0:A0→R. On peut alors construire un
graphe G= (S, A)pondéré par des éléments de R∪ { +∞ }, c’est-à-dire munit d’une
fonction w:A0→R∪ { +∞ } de façon suivante :
1. S=S0.
2. A=S2\∆ (S) = (x, y)∈S2
x6=y.
3. wcoïncide avec w0sur A0:∀(x, y)∈A w(x, y) = w0(x, y)
4. wvaut +∞sur A\A0:∀(x, y)∈A\A w(x, y)=+∞.
Autrement dit, étant donné un graphe G0pondéré par des réels, on peut lui ajouter tous
les arcs manquants pour obtenir un graphe complet, ces nouveaux arcs ayant un poids
+∞.
Alors tout chemin dans G0est un chemin de même poids dans G. Réciproquement,
dans G, tout chemin de poids non infini est un chemin de même poids dans G, et aucun
chemin de poids infini dans Gn’est un chemin dans G0.
Trouver un plus court chemin dans G0est donc équivalent à trouver un plus court
chemin qui ne soit pas de poids infini dans G.
On peut même s’autoriser des arêtes de la forme (x, x)∈S2, auxquelles on donnera
un poids +∞.
Dans la suite on supposera donc que le graphe Gest pondéré avec des éléments de
R∪ { +∞ } et est complet. De plus, on supposera que son ensemble de sommets Sest
un intervalle [[0, n[[, où n∈N. On note MGla matrice (gij )(i,j)∈[[0,n[[2avec gij ∈R∪{ +∞ }
poids de l’arc allant de iàj.
1.2 Les plus courts chemins
Exercice 3 (Minimalité d’un sous-chemin) Soit kun entier non nul et s0, . . . ,
sk−1des sommets. Montrer que si s0, . . . , sk−1est un plus court chemin entre s0et
sk−1, alors pour tout (i, j)vérifiant 0≤α≤β≤k−1,sα, . . . , sβest un plus court
chemin entre sαet sβ.
Dans la suite on supposera que Gne contient pas de cycle de poids strictement
négatif.
Définition 1 Pour (i, j)∈S2, on appelle distance de iàjdans le graphe G, et on note
d(i, j), comme la longueur du plus court chemin entre iet j(comme somme des poids
des arêtes).
On note D= (d(i, j))(i,j)∈[[0,n[[2la matrice des distances dans le graphe.
Exercice 4 Justifiez que cette définition a un sens.
Proposition 1 dvérifie l’inégalité triangulaire :
∀(i, j, k)∈S3d(i, k)≤d(i, j) + d(j, k)
Judicaël Courant- 13 décembre 2016 2/10 Document sous licence Art Libre (http://artlibre.org)