IN302 – Chapitre 3 Plus courts chemins
Existence De à : pas de chemin pas de plus court chemin 9 1 4 1 8 6 2 3 -1 3 2 2 -6 5 7 De à : pas de chemin pas de plus court chemin 1 8
Existence pas de chemin pas de plus court chemin De à : 9 1 4 1 8 6 2 3 -1 3 2 2 -6 5 7 pas de chemin pas de plus court chemin De à : 7 1
Existence 9 1 4 1 8 6 2 6 6 3 -1 3 2 2 -6 5 7 chemins : (1,4), (1,3,4), (1,2,3,4) plus court chemin : (1,2,3,4) De à : 1 4
Existence chemin : (3,4,6,5) longueur : 5 De à : 9 1 4 1 8 6 2 6 6 3 -1 3 2 2 -6 5 7 chemin : (3,4,6,5) longueur : 5 De à : 3 5
Existence De à : chemin : (3,4,6,5,7,6,5) longueur : 4 9 1 4 1 8 6 2 6 -1 3 2 2 -6 5 7 De à : chemin : (3,4,6,5,7,6,5) longueur : 4 3 5
Existence De à : chemin : (3,4,6,5,7,6,5,7,6,5) longueur : 3 9 1 4 1 8 2 6 6 3 -1 3 2 2 -6 5 7 De à : chemin : (3,4,6,5,7,6,5,7,6,5) longueur : 3 3 5
Existence De à : PAS DE PLUS COURT CHEMIN 9 1 4 1 8 6 2 6 6 3 -1 3 2 2 -6 5 7 De à : PAS DE PLUS COURT CHEMIN 3 5
Graphe des plus courts chemins 4 1 3 2 5 6
Graphe des plus courts chemins 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 En rouge : p(x) est la longueur d’un plus court chemin du sommet i=0 au sommet x
Graphe des plus courts chemins 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 Comment caractériser, grâce aux valeurs de p, les arcs qui font partie de plus courts chemins dans (E, G, l) à partir de i ?
Graphe des plus courts chemins 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 u = (x,y) est dans un plus court chemin dans (E, G, l) à partir de i si et seulement si : p(y) - p(x) = l(u)
Graphe des plus courts chemins 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 u = (x,y) est dans un plus court chemin dans (E, G, l) à partir de i si et seulement si : p(y) - p(x) = l(u)
Graphe des plus courts chemins 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 c est un plus court chemin dans (E, G, l) à partir de i si et seulement si : c est un chemin dans (E, G’)
Arborescence des plus courts chemins 1 4 6 3 5 (E’,A) est une arborescence des plus courts chemins pour (E, G, l) de racine i si : (E’,A) est une arborescence de racine i, et E’ = {x E, p(x) < } (E’,A) est un sous-graphe du graphe des plus courts chemins pour (E, G, l)
Arborescence des plus courts chemins = APMin ? 1 4 3 2
Arborescence des plus courts chemins = APMin ? 2 1 4 1 1 1 2 3 APCC (relative au sommet 1)
Arborescence des plus courts chemins = APMin ? 2 1 4 1 1 1 2 3 APMin
Trouver un plus court chemin de i=0 à d=6 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6
Trouver un plus court chemin de i=0 à d=6 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 Partir de i ?
Trouver un plus court chemin de i=0 à d=6 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 Partir de i ?
Trouver un plus court chemin de i=0 à d=6 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 Partir de d !
Trouver un plus court chemin de i=0 à d=6 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 Partir de d !
Trouver un plus court chemin de i=0 à d=6 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 Partir de d !
Trouver un plus court chemin de i=0 à d=6 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 Partir de d !
Trouver un plus court chemin de i=0 à d=6 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 x = d ; C = (x) Tant que x != i Soit y G-1(x) tel que p(y) - p(x) = l((y,x)) x = y ; C = x + C
Trouver un plus court chemin de i à d 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 x = d ; C = (x) Tant que x != i Soit y G-1(x) tel que p(y) - p(x) = l((y,x)) x = y ; C = x + C
Trouver un plus court chemin de i à d 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 x = d ; C = (x) Tant que x != i Soit y G-1(x) tel que p(y) - p(x) = l((y,x)) x = y ; C = x + C
Trouver un plus court chemin de i à d 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 x = d ; C = (x) Tant que x != i Soit y G-1(x) tel que p(y) - p(x) = l((y,x)) x = y ; C = x + C
Trouver un plus court chemin de i à d 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 x = d ; C = (x) Tant que x != i Soit y G-1(x) tel que p(y) - p(x) = l((y,x)) x = y ; C = x + C
Trouver un plus court chemin de i à d 3 5 8 3 2 4 1 4 6 5 2 1 2 2 3 1 2 3 5 7 6 x = d ; C = (x) Tant que x != i Soit y G-1(x) tel que p(y) - p(x) = l((y,x)) x = y ; C = x + C
Algorithme de Bellman
Algorithme de Bellman : exemple 4 4 2 7 1 2 2 2 i = 1 5 8 -2 3 2 3 6
1 2 3 4 5 6 π0 π1 k 4 4 2 7 1 2 2 2 i = 1 5 8 -2 3 2 3 6
1 2 3 4 5 6 π0 π1 k 1 4 4 2 7 1 2 2 2 i = 1 5 8 -2 3 2 3 6
1 2 3 4 5 6 π0 π1 k 1 4 4 2 7 1 2 2 2 i = 1 5 8 -2 3 2 3 6
1 2 3 4 5 6 π0 π1 k 1 4 4 2 7 1 2 2 2 i = 1 5 8 -2 3 2 3 6
1 2 3 4 5 6 π0 π1 7 k 1 4 4 2 7 1 2 2 2 i = 1 5 8 -2 3 2 3 6
1 2 3 4 5 6 π0 π1 7 k 1 4 4 2 7 1 2 2 2 i = 1 5 8 -2 3 2 3 6
1 2 3 4 5 6 π0 π1 7 8 k 1 4 4 2 7 1 2 2 2 i = 1 5 8 -2 3 2 3 6
1 2 3 4 5 6 π0 π1 7 8 k 1 7 4 4 2 7 1 2 2 2 1 5 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 k 1 7 4 4 2 7 1 2 2 2 1 5 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 k 2 7 4 4 2 7 1 2 2 2 1 5 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 k 2 7 4 4 2 7 1 2 2 2 1 5 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(6) = 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(6) = min(, 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(6) = min(, 7+2, 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(6) = min(, 7+2, 8+2) = 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 9 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(6) = min(, 7+2, 8+2) = 9 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 9 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(5) = 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 9 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(5) = min(, 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 9 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(5) = min(, 7+1, 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 9 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(5) = min(, 7+1, +3) = 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 9 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(5) = min(, 7+1, +3) = 8 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 9 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(3) = 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 9 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(3) = min(8, 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 9 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(3) = min(8, -2, 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 9 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(3) = min(8, -2, 0+8) = 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 9 k 2 7 4 4 2 7 1 2 2 2 1 5 X2(3) = min(8, -2, 0+8) = 8 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(4) = min(, +2, 7+4) = 11 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(2) = min(7, 0+7, 8+2) = 7 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 k 2 7 4 4 2 7 1 2 2 2 1 5 π2(1) = min(0) = 0 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 k 2 7 4 4 2 7 1 2 2 2 1 5 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 k 2 7 4 4 2 7 1 2 2 2 1 5 8 -2 3 2 3 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 k 3 7 8 9 11 4 4 2 7 1 2 2 2 1 5 8 -2 3 2 3 6
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 k 3 11 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 8 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 k 3 11 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 8 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 k 3 11 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 8 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 k 3 11 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 8 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 k 3 11 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 8 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 k 3 11 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 8 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 k 3 11 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 8 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 k 3 11 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 8 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 k 3 11 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 8 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 k 3 11 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 8 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 k 3 11 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 8 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 k 3 11 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 8 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 k 3 11 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 8 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 π4 k 4 7 6 9 8 10 4 4 2 7 1 2 2 2 1 5 8 -2 3 2 3 6
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 π4 k 4 10 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 6 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 π4 k 4 10 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 6 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 π4 k 4 10 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 6 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 π4 k 4 10 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 6 9
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 π4 π5 k 5 10 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 π4 π5 k 5 10 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 π4 π5 k 5 10 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 6 8
1 2 3 4 5 6 π0 π1 7 8 π2 11 9 π3 10 π4 π5 k 5 10 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 6 8
Résultat 10 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 6 8
Plus court chemin de 1 à 3 ? 10 7 4 4 2 7 1 2 2 2 8 1 5 8 -2 3 2 3 6 6 8
Exécuter Bellman (i = 1) 7 4 2 5 5 2 4 1 1 1 1 5 7 3 -3 -2 3 3 3 6
Algorithme Circuit-Niveaux
Algorithme Circuit-Niveaux 2 4 1 5 7 6 3
2 i N 4 1 5 7 6 3 E0
2 2 x i N 2 4 6 7 2 1 4 5 3 3 1 5 7 2 1 2 6 3 E0
2 2 x i N 2 4 1 3 1 5 7 2 1 2 6 3 E0
2 2 x i N 2 4 1 1 3 1 5 E0 7 2 1 2 6 3
2 2 i N 2 4 1 3 1 5 E0 7 2 1 2 6 3
2 2 i N 2 4 1 3 1 5 E0 7 2 1 2 6 3 E1
2 2 x i N 2 4 1 1 3 1 5 E0 7 2 1 2 6 3 E1
2 2 y x i N 2 4 2 1 1 3 1 5 E0 7 2 1 2 6 3 E1
2 1 2 y x i N 2 4 2 1 1 3 1 5 E0 7 2 1 2 6 3 E1
1 2 y x i N 2 4 2 1 1 3 1 5 E0 7 2 1 2 6 3 E1
1 2 y x i N 2 4 2 3 1 1 3 1 5 E0 7 2 1 2 6 3 E1
1 2 y x i N 2 4 2 3 1 1 3 1 5 E0 7 2 1 2 6 3 E1
1 2 y x i N 2 4 2 3 1 1 2 3 1 5 E0 7 2 2 6 3 E1 E1
1 2 y x i N 2 4 2 3 1 1 2 3 1 5 E0 7 2 2 6 3 E1
1 2 i N 2 4 1 2 3 1 5 E0 7 2 2 6 3 E1
1 2 i N 2 4 1 2 3 1 5 E0 7 2 2 6 3 E2 E1
1 2 x i N 2 4 3 1 2 3 1 5 E0 7 2 2 6 3 E2 E1
1 2 y x i N 2 4 2 3 1 2 3 1 5 E0 7 2 2 6 3 E2 E1
1 2 y x i N 2 4 2 3 1 2 3 1 5 E0 7 2 2 6 3 E2 E1
2 y x i N 2 E2 4 2 3 1 3 2 3 1 5 E0 7 2 2 6 3 E2 E1
2 y x i N 2 E2 4 2 5 3 1 3 2 3 1 5 E0 7 2 2 6 3 E1
2 y x i N 2 E2 4 2 5 3 1 3 2 2 3 1 5 E0 7 2 2 6 3 E1
2 y x i N 2 E2 4 2 6 5 3 1 3 2 2 1 5 E0 7 2 2 6 3 E1
2 y x i N 2 E2 4 2 5 6 3 1 2 3 2 1 5 E0 7 2 1 2 6 3 E1
2 y x i N 2 E2 4 2 3 2 1 3 2 1 5 E0 7 2 1 6 3 E1
2 i N 2 E2 4 1 2 3 2 1 5 E0 7 2 1 6 3 E1
2 i N 2 E2 4 2 1 3 2 1 5 E0 7 2 1 6 3 E3 E1
2 x i N 2 E2 4 2 1 2 3 2 1 5 E0 7 2 1 6 3 E3 E1
2 y x i N 2 E2 4 4 2 2 1 3 2 1 5 E0 7 2 1 6 3 E3 E1
2 y x i N 1 2 E2 4 4 2 1 2 3 2 1 5 E0 7 2 1 6 3 E3 E1
2 y x i N 1 E2 4 4 5 2 1 2 3 2 1 5 E0 7 2 1 6 3 E3 E1
2 y x i N 1 E2 4 4 5 2 1 2 3 2 1 1 5 E0 7 2 1 6 3 E3 E1
2 y x i N 1 E2 4 6 5 4 2 1 2 3 1 1 5 E0 7 2 1 6 3 E3 E1
2 y x i N 1 E2 4 6 5 4 2 1 2 3 1 1 5 E0 7 2 1 6 3 E3 E1
2 y x i N 1 E2 4 4 6 5 2 2 1 4 3 1 1 5 E0 7 2 6 3 E1 E3
2 y x i N 1 E2 4 4 6 5 2 1 2 3 4 3 1 1 5 E0 7 2 6 3 E1 E3
2 i N 1 E2 4 1 3 2 3 4 1 1 5 E0 7 2 6 3 E1 E3
2 i N 1 E2 4 1 2 3 3 4 1 1 5 E0 7 2 6 3 E4 E1 E3
2 x i N 1 E2 4 6 1 3 2 3 4 1 1 5 E0 7 2 6 3 E4 E1 E3
2 y x i N 1 E2 4 4 6 1 2 3 3 4 1 1 5 E0 7 2 6 3 E4 E1 E3
2 y x i N 1 E2 4 4 6 2 3 1 3 4 1 1 5 E0 7 2 6 3 E4 E1 E3
2 y x i N E2 4 4 6 2 3 1 4 5 E4 1 1 5 E0 7 2 6 3 E4 E1 E3
2 y x i N E2 4 5 4 6 1 2 3 3 5 E4 1 1 5 E0 7 2 6 3 E1 E3
2 y x i N E2 4 5 4 6 2 3 1 5 3 E4 1 1 5 E0 7 2 6 3 E1 E3
2 y x i N E2 4 5 4 6 3 2 1 5 6 3 E4 1 5 E0 7 E4 2 6 3 E1 E3
2 y x i N E2 4 4 5 6 2 4 1 3 3 6 1 5 E0 7 E4 2 6 3 E1 E3
2 i N E2 4 2 4 1 3 3 6 1 5 E0 7 E4 2 6 3 E1 E3
2 i N E2 4 2 4 1 3 3 6 1 5 E0 7 E4 2 6 3 E5 E1 E3
2 x i N E2 4 4 1 2 3 4 6 3 1 5 E0 7 E4 2 6 3 E5 E1 E3
2 y x i N E2 4 7 4 1 2 3 4 3 6 1 5 E0 7 E4 2 6 3 E5 E1 E3
2 y x i N E2 4 7 4 2 3 4 1 6 3 1 5 E0 7 E4 2 1 6 3 E5 E1 E3
2 x i N E2 4 5 1 2 3 4 6 3 1 5 E0 7 E4 1 6 3 E5 E1 E3
2 y x i N E2 4 7 5 4 2 4 3 1 3 6 1 5 E0 7 E4 1 6 3 E5 E1 E3
2 y x i N E2 4 7 5 4 2 4 3 1 3 6 1 5 E0 7 E4 1 6 3 E5 E1 E3
2 y x i N E2 4 7 5 4 2 4 3 1 3 6 1 5 E0 7 E4 E5 6 3 E5 E1 E3
2 y x i N E2 4 7 5 4 2 4 3 1 6 3 7 1 5 E0 7 E4 E5 6 3 E1 E3
2 y x i N E2 4 7 5 4 1 2 3 5 4 3 7 6 1 5 E0 7 E4 E5 6 3 E1 E3
2 i N E2 4 3 2 1 5 4 6 3 7 1 5 E0 7 E4 E5 6 3 E1 E3
2 i N E2 4 3 2 1 5 4 6 3 7 1 5 E0 7 E4 E5 6 3 E1 E3
Résultat 2 4 1 5 7 6 3 E0 E1 E2 E3 E4 E5