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