Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMarjolaine Serra Modifié depuis plus de 10 années
1
Optimisation dans les réseaux Recherche Opérationnelle GC-SIE
2
Le problème du plus court chemin
3
Plus courts cheminsMichel Bierlaire3 Introduction Plusieurs versions : – dun nœud vers un nœud – de tous les nœuds vers un nœud – dun nœud vers tous les nœuds – de tous les nœuds vers tous les nœuds Nous allons étudier le problème du plus court chemin dun nœud vers tous les autres. Souvent, on supposera que =1.
4
Plus courts cheminsMichel Bierlaire4 Introduction Idée générale : Parcourir le réseau à partir de lorigine Appliquer et mettre à jour des étiquettes (d 1,…,d N ) à chaque nœud. Chaque étiquette est soit un scalaire soit +.
5
Plus courts cheminsMichel Bierlaire5 Conditions doptimalité Soient d 1,d 2,…,d N des scalaires tels que d j d i + a ij (i,j) A Soit P un chemin entre un nœud et un nœud. Si d j d i + a ij (i,j) P Alors P est un plus court chemin entre et.
6
Plus courts cheminsMichel Bierlaire6 Conditions doptimalité Preuve : P est composé des arcs (,i 1 ),(i 1,i 2 ),…,(i P, ) Longueur de P = a,i 1 +a i 1,i 2 +…+a i P, Comme a ij = d j d i (i,j) P, on a Longueur de P = (d – d i P ) + (d i P – d i P-1 )+…+(d i 2 -d i 1 )+(d i 1 -d )= d -d
7
Plus courts cheminsMichel Bierlaire7 Conditions doptimalité Soit Q un chemin quelconque entre et. Q est composé des arcs (,j 1 ),(j 1,j 2 ),…,(j Q, ) Longueur de Q = a,j 1 +a j 1,j 2 +…+a j Q, Comme a ij d j d i (i,j) Q, on a Longueur de Q (d – d j Q ) + (d j Q – d j Q-1 )+…+(d j 2 -d j 1 )+(d j 1 -d )= d –d = Longueur de P. CQFD
8
Plus courts cheminsMichel Bierlaire8 Algorithme générique Idée : On démarre avec un vecteur détiquettes (d 1,…,d N ) On sélectionne un arc (i,j) qui viole les conditions doptimalité, c-à-d tel que d j d i + a ij On met à jour létiquette de j d j d i + a ij Et ainsi de suite jusquà ce que tous les arcs vérifient la condition.
9
Plus courts cheminsMichel Bierlaire9 Algorithme générique A tout moment, létiquette dun nœud i peut être interprétée comme la longueur dun chemin reliant à i. Si d j d i + a ij, cela signifie que le chemin arrivant en j à partir de i est plus court que le chemin actuel reliant à j. Il est plus facile deffectuer le traitement nœud par nœud. Pour chaque nœud considéré, on traitera tous ses arcs sortant. V= liste des nœuds à traiter
10
Plus courts cheminsMichel Bierlaire10 Algorithme générique Algorithme : Initialisation : – V={ } – d = 0, d i = i Itérations. Tant que V – Sélectionner un nœud i dans V et len retirer – Pour chaque arc (i,j) sortant de i, Si d j d i + a ij, alors – d j d i + a ij – Ajouter j à V
11
3 2 14 3 d 2 =+ 11 13 2 d 3 =+ d 4 =+ d 1 =0 1
12
3 2 14 3 d 2 =3 11 13 2 d 3 =+ d 4 =+ d 1 =0
13
3 2 14 3 d 2 =3 11 13 2 d 3 =1 d 4 =+ d 1 =0
14
3 2 14 3 d 2 =3 11 13 2 d 3 =1 d 4 =+ d 1 =0
15
3 2 14 3 d 2 =3 11 13 2 d 3 =1 d 4 =+ d 1 =0
16
3 2 14 3 d 2 =3 11 13 2 d 3 =1 d 4 =5d 1 =0
17
3 2 14 3 d 2 =3 11 13 2 d 3 =1 d 4 =5d 1 =0
18
3 2 14 3 d 2 =3 11 13 2 d 3 =1 d 4 =4d 1 =0
19
3 2 14 3 d 2 =2 11 13 2 d 3 =1 d 4 =4d 1 =0
20
3 2 14 3 d 2 =2 11 13 2 d 3 =1 d 4 =4d 1 =0
21
3 2 14 3 d 2 =2 11 13 2 d 3 =1 d 4 =4d 1 =0
22
3 2 14 3 d 2 =2 11 13 2 d 3 =1 d 4 =4d 1 =0
23
3 2 14 3 d 2 =2 11 13 2 d 3 =1 d 4 =4d 1 =0
24
3 2 14 3 d 2 =2 11 13 2 d 3 =1 d 4 =4d 1 =0
25
Plus courts cheminsMichel Bierlaire25 Algorithme générique Propriétés à la fin de chaque itération Si d j <, alors d j est la longueur dun chemin reliant à j. Si i V, alors soit d i = +, soit d j d i + a ij j tel que (i,j) A
26
Plus courts cheminsMichel Bierlaire26 Algorithme générique Propriétés si lalgorithme se termine j t.q. d j <, – d j est la longueur du plus court chemin entre et j. – d j = min (i,j) A d i +a ij si j [Eq. de Bellman] – d = 0 d j = + ssi il ny a pas de chemin reliant et j. Lalgorithme se termine ssi il ny a aucun chemin commençant en et contenant un cycle à coût négatif
27
Plus courts cheminsMichel Bierlaire27 Algorithme générique Les équations de Bellman permettent de reconstituer les plus courts chemins à partir des étiquettes. Le prédécesseur du nœud j dans le plus court chemin est celui qui réalise le minimum de léquation de Bellman.
28
3 2 14 3 d 2 =2 11 13 2 d 3 =1 d 4 =4d 1 =0 3 2 14 3 d 2 =2 11 13 2 d 3 =1 d 4 =4d 1 =0
29
Plus courts cheminsMichel Bierlaire29 Algorithme de Dijkstra Lalgorithme générique ne spécifie pas comment choisir dans V le nœud à traiter. Lalgorithme de Dijkstra impose que le nœud i à traiter soit tel que d i = min j V d j
30
Plus courts cheminsMichel Bierlaire30 Algorithme de Dijkstra Algorithme : Initialisation : – V={ } – d = 0, d i = i Itérations. Tant que V – Sélectionner un nœud i dans V tel que d i = min j V d j – Retirer i de V – Pour chaque arc (i,j) sortant de i, Si d j d i + a ij, alors – d j d i + a ij – Ajouter j à V
31
3 2 1 4 2 d 2 = 11 13 1 d 3 = d 4 = d 1 =0 5 0 0 d 5 =
32
3 2 1 4 2 d 2 = 11 13 1 d 3 = d 4 = d 1 =0 5 0 0 d 5 =
33
3 2 1 4 2 d2=2d2=2 11 13 1 d 3 = d 4 = d 1 =0 5 0 0 d 5 =
34
3 2 1 4 2 d2=2d2=2 11 13 1 d 3 = 1 d 4 = d 1 =0 5 0 0 d 5 =
35
3 2 1 4 2 d2=2d2=2 11 13 1 d 3 = 1 d 4 = d 1 =0 5 0 0 d 5 =
36
3 2 1 4 2 d2=2d2=2 11 13 1 d 3 = 1 d 4 = d 1 =0 5 0 0 d 5 =
37
3 2 1 4 2 d2=2d2=2 11 13 1 d 3 = 1 d 4 = 4 d 1 =0 5 0 0 d 5 =
38
3 2 1 4 2 d2=2d2=2 11 13 1 d 3 = 1 d 4 = 4 d 1 =0 5 0 0 d 5 =
39
3 2 1 4 2 d2=2d2=2 11 13 1 d 3 = 1 d 4 = 4 d 1 =0 5 0 0 d 5 =
40
3 2 1 4 2 d2=2d2=2 11 13 1 d 3 = 1 d 4 = 3 d 1 =0 5 0 0 d 5 =
41
3 2 1 4 2 d2=2d2=2 11 13 1 d 3 = 1 d 4 = 3 d 1 =0 5 0 0 d 5 = 2
42
3 2 1 4 2 d2=2d2=2 11 13 1 d 3 = 1 d 4 = 3 d 1 =0 5 0 0 d 5 = 2
43
3 2 1 4 2 d2=2d2=2 11 13 1 d 3 = 1 d 4 = 3 d 1 =0 5 0 0 d 5 = 2
44
3 2 1 4 2 d2=2d2=2 11 13 1 d 3 = 1 d 4 = 3 d 1 =0 5 0 0 d 5 = 2
45
3 2 1 4 2 d2=2d2=2 11 13 1 d 3 = 1 d 4 = 3 d 1 =0 5 0 0 d 5 = 2
46
Plus courts cheminsMichel Bierlaire46 Algorithme de Dijkstra Propriété des étiquettes permanentes Si les coûts sur tous les arcs sont non négatifs Considérons W={i¦d i < et i V} Alors, pour chaque itération, – aucun nœud appartenant à W au début de litération nentrera dans V pendant litération – à la fin de litération, d i d j si i W et j W.
47
Plus courts cheminsMichel Bierlaire47 Notes Si lon désire calculer le plus court chemin de à, on peut arrêter lalgorithme de Dijkstra dès que le nœud est dans W. Si au moins un arc a un coût négatif, rien ne garantit le caractère permanent des étiquettes
48
3 2 1 4 2 d 2 = -2 11 1 d 3 = d 4 = d 1 =0
49
3 2 1 4 2 d 2 = -2 11 1 d 3 = d 4 = d 1 =0
50
3 2 1 4 2 d 2 = -2 11 1 d 3 = d 4 = d 1 =0
51
3 2 1 4 2 d 2 = 2 -2 11 1 d 3 = d 4 = d 1 =0
52
3 2 1 4 2 d 2 = 2 -2 11 1 d 3 = 1 d 4 = d 1 =0
53
3 2 1 4 2 d 2 = 2 -2 11 1 d 3 = 1 d 4 = d 1 =0
54
3 2 1 4 2 d 2 = 2 -2 11 1 d 3 = 1 d 4 = 2 d 1 =0
55
3 2 1 4 2 d 2 = 2 -2 11 1 d 3 = 1 d 4 = 2 d 1 =0
56
3 2 1 4 2 d 2 = 2 -2 11 1 d 3 = 1 d 4 = 2 d 1 =0
57
3 2 1 4 2 d 2 = 2 -2 11 1 d 3 = 0 d 4 = 2 d 1 =0 Nœud 3 rentre à nouveau dans V
58
3 2 1 4 2 d 2 = 2 -2 11 1 d 3 = 0 d 4 = 2 d 1 =0
59
3 2 1 4 2 d 2 = 2 -2 11 1 d 3 = 0 d 4 = 1 d 1 =0
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.