Floyd-Warshall, matrice après matrice
Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 19 — Parcours de graphes et plus courts chemins
Énoncé
Sur le graphe orienté d'arcs (3), (2), (1), (4), (7), (5), donner la matrice après chaque valeur de , et dire à quel tour chaque case se stabilise.
Corrigé
Mesures (la diagonale est nulle, inf note l'absence de chemin) :
D initiale apres k = 0 apres k = 1 apres k = 2 (= finale)
0 3 7 inf 0 3 7 inf 0 3 5 inf 0 3 5 6
inf 0 2 inf inf 0 2 inf inf 0 2 inf 7 0 2 3
5 inf 0 1 5 8 0 1 5 8 0 1 5 8 0 1
4 inf inf 0 4 7 11 0 4 7 9 0 4 7 9 0
Le tour ne change plus rien.
Lecture des tours.
- Le tour remplit les cases dont le chemin passe par : (c'est ) et , .
- Le tour améliore de à (, soit ) et de à ().
- Le tour ouvre tout le reste : (), (), .
L'invariant est visible dans la table : après le tour , la case contient la longueur du plus court chemin de à n'utilisant que comme intermédiaires. Après , vaut encore inf : le seul chemin de à passe par , qui n'est pas encore autorisé. Il apparaît exactement au tour .
Contrôle utile en pratique : si, après le dernier tour, une case diagonale est devenue strictement négative, c'est qu'il existe un circuit de poids négatif passant par ce sommet. C'est gratuit — la diagonale est déjà là — et c'est le sujet du problème sur Floyd-Warshall, plus bas.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.