Académique Documents
Professionnel Documents
Culture Documents
court chemin
nonc du problme et construction dun modle
Partitionnement des sommets par niveaux dun graphe
fortement connexe sans circuit
Thorme doptimalit de Bellman-Pontryagin
Algorithme de type Futur-Pass
Algorithme de type Pass-Futur (version graphique)
Approche vorace Algorithme de DIJKSTRA
Recherche du pcc entre chaque paire de sommets Algorithme
de FLOYD & WARSHALL
nonc du problme :
Considrons n villes V1, V2, , Vn relies entre elles par un rseau
routier.
Bob sjournant en V1 dsire se rendre la ville Vn. En examinant le
rseau routier reliant ces 2 villes et, parmi toutes les possibilits qui
soffrent lui, il retient quelques villes intermdiaires V2, V3, , Vn-1
par lesquelles il pourrait passer.
Bob a un budget limit et dsire se rendre de V1 Vn par le plus court
chemin sans ncessairement passer par toutes les villes intermdiaires.
Par quelles villes, Bob doit-il passer pour minimiser la distance
totale parcourue ?
V1
V3
Vn
Vn-1
associe au graphe G
1 si (si, sj) U
aij =
0 autrement.
Le problme du plus court chemin
Exemple :
1
2
Matrice associe G : 3
4
5
6
1
0
0
0
1
1
0
2
1
0
0
0
1
0
3
1
1
0
0
0
0
4
0
1
1
0
0
0
5
0
0
1
1
0
0
6
0
0
0
0
1
0
5
+ si i j et (si, sj) U
0 si i = j.
B
9
4
8
A
3
2
6
E
7
7
13
6
2
H
Formulation du problme :
En ajoutant un arc fictif (sn, s1), on obtient :
dij zij
Min
i = 1, 2, , n
j = 1, 2, , n
tel que (si, sj) U
sujet zij
j = 1, 2, , n
tel que (si, sj) U
= 0 i.
zki
k = 1, 2, , n
tel que (sk, si) U
zn1 = 1
zij 0
Remarque :
Nous sommes amens rsoudre 3 types de problmes impliquant
des plus courts chemins :
(i) un pcc entre un sommet i et un sommet j;
(ii) un pcc entre un sommet i et tous les autres sommets du graphe;
(iii) un pcc entre chaque paire de sommets dans un graphe.
Les mthodes proposes pour rsoudre le premier problme sont
appropries pour les 2 autres problmes galement.
On peut utiliser la mthode du simplexe en programmation linaire
pour rsoudre ce problme mais il existe des mthodes beaucoup
plus efficaces.
Le problme du plus court chemin
10
Chemin de longueur k :
Exemple :
11
-5
-1
12
13
14
15
16
5
4
6
3
17
V0 A5 =
V1 A2 =
V2 A6 =
V3 A1 A3 =
V4 A7 =
V5 A4 =
Le problme du plus court chemin
18
Procd :
Dterminons dabord les sommets qui nont pas danctres :
V0 = A1 + A2 + + A8.
On constate que le sommet 5 nadmet aucun arc du type (- , 5).
Le sommet 5 forme donc le niveau I.
Pour dterminez le niveau II, il faut chercher tous les sommets
dont le seul anctre est 5 :
V1 = V0 A5.
Le sommet 2 na pas dautres anctres que le sommet 5.
Le sommet 2 forme donc le niveau II.
Comme on peut le constater, pour obtenir les sommets dun niveau,
il suffit denlever au vecteur prcdent les lignes associes aux
sommets du niveau prcdent.
Le problme du plus court chemin
19
Note :
Le sommet 1 peut tre indiffremment plac dans lun quelconque
des niveaux IV, V ou VI.
En supposant les sommets 1 et 3 au niveau IV, on peut choisir comme
ordonnancement :
5 2 6 1 3 7 4 8 ou encore
20
5 2 6 3 1 7 4 8.
Note :
Le PCC de V1 V8 se rsume au graphe :
Solution triviale.
3
Le problme du plus court chemin
21
22
A
3
E
7
4
D
7
13
6
2
H
23
4
2
9
1
3
8
4
7
13
6
6
7
2
Le problme du plus court chemin
24
k>1
v1(i) = din,
i = 1, 2, , n - 1.
p1(i) = i,
i = 1, 2, , n.
i = 1, 2, , n - 1.
25
26
p1(i) 1
2
3
4
6
6
6
7
2
7
8
0
8
v2(i)
p2(i)
15
7
9
7
8
7
6
6
2
7
0
8
v3(i)
p3(i)
17
4
11
5
15
7
9
7
8
7
6
6
2
7
0
8
v4(i) 17
11
15
9
8
p4(i) 4
5
7
7
7
Lalgorithme sarrte car v4(i) = v3(i) i.
6
6
2
7
0
8
(1)
(2)
(4)
pk(n) = n.
Si vk(i) = vk-1(i) i
28
Poser t = k 1 et x(t) = 1.
(6)
(7)
Si t > 1alors
faire t = t 1,
aller (6)
sinon le chemin optimal est le suivant :
(1, x(k-2), x(k-3), , x(2), x(1), n)
o on limine tous les sommets qui se rptent
sauf un.
Il reste renumroter les indices comme ils
taient initialement.
FIN
Le problme du plus court chemin
29
Remarque :
Il nest pas ncessaire dordonnancer les sommets du graphe
avant dappliquer lalgorithme, mais cela est prfrable, car il nous
permet davoir des sous la diagonale de la matrice des distances.
Cela permet de simplifier lalgorithme prcdent !
1
1
0
2
9
0
3
3
4
8
4
7
0
2
0
4
0
13
7
6
6
2
0
30
(1)
(2)
pk(1) = 1.
Si uk(j) = uk-1(j) j
aller31 (2).
(4)
Poser t = k 1 et x(t) = n.
(6)
(7)
Si t > 1alors
faire t = t 1,
aller (6)
sinon le chemin optimal est le suivant :
(1, x(1), x(2), , x(k - 2), n)
o on limine tous les sommets qui se rptent
sauf un.
Il reste renumroter les indices comme ils
taient initialement.
FIN
Le problme du plus court chemin
32
33
u2(j)
p2(j)
0
1
9
2
3
3
8
4
10
4
15
4
u3(j)
p3(j)
0
1
9
2
3
3
8
4
10
4
14
5
15
4
17
7
u4(j)
0
9
3
8
10
p4(j) 1
2
3
4
4
Lalgorithme sarrte car u4(j) = u3(j) j.
14
5
15
4
17
7
35
3
9
4
2
9
0 1
1
3
3 3
5
5
4
4
4
7
13
6
6
7 7
2
Le problme du plus court chemin
8
8
36
k=2
3
9
4
2
9
0 1
1
3
3 3
4
4
10 4
5
4
7
13
14 5
6
6
15 4 7
2
8
17 7
k = 3 Idem.
Le problme du plus court chemin
37
4
8
A
0 A
7
3
7
13
2
E
F
F
6
2
H
H
38
k=2
9
4
8
A
0 A
7
3
14 C
7
13
2
E
10 E
F
15 E
6
2
H
k=3
17 F
Idem.
39
4
8
A
0 A
7
3
14 C
7
13
2
E
10 E
F
15 E
6
2
H
17 F
40
LC(i) = d1i, i = 2, , n
0, i = 1.
Poser pC(s) = 1 s 1 S.
MIN LC(j)
jSC
est atteint.
Poser C = C {k}.
(3)
Si C <> S alors
poser LC(j) = MIN{LC(j) , LC(k) + dkj}
si MIN est atteint LC(k) + dkj, pC(j) = k
Retournez ltape 2.
j SC
j SC
41
Thorme :
chaque itration de lalgorithme, lorsque k est ajout C,
LC(k) est la longueur du pcc de 1 k, sans restriction.
Exemple :
2
2
3
1
4
5
4
1
3
4
7
7
1
0
2
2
1
3
5
1
5
4
1
C
{1}
LC
pC
2
1
4
2
9
2
4
1
{1, 2}
LC
pC
2
1
4
2
9
2
4
1
7
3
{1, 2, 3}
LC
pC
2
1
4
2
9
2
4
1
7
3
{1, 2, 3, 5}
LC
pC
2
1
4
2
8
6
4
1
7
3
14
6
{1, 2, 3, 5, 6}
LC
pC
43
LC
pC
2
1
4
2
8
6
4
1
7
3
13
4
{1, 2, 3, 5, 6, 4}
pcc entre 1 et 7 :
7, pC(7), pC(4), pC(6), , 1
ou encore
7, 4, 6, 3, 2, 1.
Le trac du pcc est obtenu en procdant reculons.
Note : Sil ny a pas de chemin entre 1 et j dans le graphe, alors
LC(j) = la fin de lalgorithme.
44
45
(2)
i,j = 1, 2, , n,
i,j = 1, 2, , n.
j = 1, 2, , n.
Si k == n
46
(5)
(6)
Si t <> n - 1
alors
faire t = t + 1,
aller (5)
sinon le chemin optimal est le suivant :
(i = x(t+1), x(t), , x(1) = j).
FIN
47
Exemple :
4
p(1)
1 2
1 2
1 2
1 2
1
0
3
3
3
3
4
1
0
4
4
4
4
p(2)
1 2
1 2
1 1
1 2
1
0
3
3
3
3
4
1
-2
L(2)
0 4
0
-2 2
3
L(1)
0 4
0
-2
3
4
1
0
L(3)
0 4 5 8
0 1 4
-2 2 0 1
3 4 0
L(4)
0 4 5 6
-1 0 1 2
-2 2 0 1
2 3 4 0
4
4
4
4
p(3)
1 2
1 2
1 1
1 2
p(4)
1 2
3 2
1 1
3 2
2
3
3
2
2
4
4
4
2
3
3
2
3
3
2
4
L(5)
0 4 5 6
-1 0 1 2
-2 2 0 1
2 3 4 0
p(5)
1 2
3 2
1 1
3 2
2
3
3
2
3
3
2
4
49
Conclusion
Ce sujet a t trait dans la plupart des livres portant sur la
recherche oprationnelle.
Toutefois, je vous rfre au livre suivant :
Ronald L. Rardin, Optimization in Operations Research.
Prentice Hall, 1998, 919p.
50