probl ém h ľadania najkrat šej cesty...cesta - postupnosťuzlov a hrán medzi nejakými dvoma...
TRANSCRIPT
-
ProblProbléém hm hľľadania adania
najkratnajkrat ššej cestyej cesty
Ivan Brezina
-
2
� Formulácia problému hľadania najkratšej cesty
� Základné pojmy teórie grafov
� Hľadanie najkratšej cesty na báze LP
� Hľadanie najkratšej cesty z jedného uzla do všetkých uzlov v sieti – Dijkstrov a Dantzigov algoritmus
� Hľadanie najkratšej cesty medzi všetkými uzlami v sieti – Floydov algortitmus a operácia minimálneho sčítania matíc
-
3
Prečo teória grafov?
-
4
Prečo teória grafov?
-
5
Základné pojmy teórie grafov
� Graf G - útvar, znázornený v rovine pomocou uzlov U a hrán H.
� Orientovaný graf– graf s orientovanými hranami.
� Ohodnotený graf– graf s ocenenými hranami (cij), sú tovzdialenosti medzi vrcholom i a vrcholom j.
� Cesta - postupnosť uzlov a hrán medzi nejakými dvoma uzlami.
� Sieť – súvislý, konečný, orientovaný, hranovo ohodnotený graf, ktorý má v určitom vrchole začiatok a v inom koniec.
-
6
Problém hľadania najkratšej cesty
� dopravná (železničná, cestná) sieť - sieť, kde uzly ui a uj sú spojené hranami hij, ktoré súohodnotené hodnotami cij
� cieľ - nájsť najkratšiu cestu medzi začiatočným uzlom u1 a koncovým uzlom un, cestu T, ktoráspája uzly u1 a un a tvoria ju hrany T = {h1i, hip, ..., hqj, hjn}
� pričom min c(T) = c1i+ cip + ... + cqj + cjn
-
7
Bratislava – Starý Smokovec
-
8
Mapa SR – BA – Starý Smokovec
TN – NR – ZH – BB – BR –PP
TN – NR – ZH – BB – RK –LM – PP
TN – NR – PD – MT – RK –LM – PP
TN – ZA – MT – RK – LM –PPBratislava
Starý Smokovec
VzdialenosťCez
-
9
Optimalizácia prepravných trás
� hľadanie najkratšej cesty
� na báze teórie grafov
� na báze matíc susednosti
� na báze lineárneho programovania
� hľadanie najkratšej okružnej cesty
� na báze lineárneho programovania
� na báze kombinatorických prístupov celočíselného programovania
� na báze heuristických prístupov
-
10
Hľadanie najkratšej cesty
� úloha lineárneho programovania� špeciálny prípad priraďovacieho problému
� algoritmy na báze teórie grafov� Ford - Fulkersonov� Dantzigov� Dijkstrov� Tabourierov
� algoritmy na základe matíc susednosti� stromy minimálnych vzdialeností� operácia minimálneho sčítania� Floydov algoritmus
-
11
Hľadanie najkratšej cesty
� z východiskového uzla do všetkých uzlov v sieti (single-source shortest-path problem) – algoritmy: � Dijkstrov� Ford - Fulkersonov� Dantzigov
� medzi všetkými uzlami v sieti (all-pairs shortest – pathproblem)� operácia minimálneho sčítania matíc� Floydov algoritmus
-
12
Bratislava – mesto v SR
-
13
Hľadanie najkratšej cesty - LP
-
14
Bratislava – mesto v SR
-
15
Bratislava – mestá SR
-
16
Dijkstrov algoritmus
1. 1. Začiatočný vrchol ur, kde vr = 0.� 2. Zápis vzdialeností pre priame cesty z vrcholu ur do ostatných
vrcholov v sieti dj, ak neexistuje, potomM.� 3. Min djk, označíme ju * a zapíšeme do stĺpca min j označenie
príslušného stĺpca. Do riadka D zapíšeme hodnotu djk.� 4. Ohodnotíme vrcholy, do ktorých vedie priama cesta z vrcholu
ujk, pričom aktualizujeme hodnoty na základe vzťahu:� § ak platídjk + cjk,j < dj, potomdj nahradenédjk + cjk,j� § ináč ostávadj� 5.Najkratšia cesta do daného vrcholu je vj = vπ + cπj� 6.Návrat na 3.
-
17
Dijkstrov algoritmus
π
D
k
...
2
1
Iteráciamin jun...u2u1
Vrchol
-
18
Príklad
-
19
Príklad
66
78
77
164
BR
120
159
164
KE
55
156
159
77
LC
86
25
39
54
MT
103
80
156
85
NR
62
79
80
54
PD
79
120
78
PP
73
79
39
RK
79
25
202
ZA
66BR
KE
55LC
86MT
10385NR
62PD
PP
73RK
202ZA
ZV
BA
ZVBA
-
20
Príklad BA – mestá SRDijkstrov algoritmus
16585D
M
M
KE
241
M
LC
M
M
MT
BA
-
85
NR
NR
165
M
PD
M
M
PP
M
M
RK
202
202
ZA
188
M
ZV
PDM2
3
4
5
6
7
8
9
10
π
NRM1
min jBR
85D
M
KE
M
LC
M
MT
BA
85
NR
M
PD
M
PP
M
RK
202
ZA
M
ZV
2
3
4
5
6
7
8
9
10
π
NRM1
min jBR
18816585D
M
M
M
KE
241
241
M
LC
219
M
M
MT
BA
-
-
85
NR
NR
-
165
M
PD
M
M
M
PP
M
M
M
RK
202
202
202
ZA
PD
188
188
M
ZV
PDM2
ZVM3
4
5
6
7
8
9
10
π
NRM1
min jBR
18820216585D
M
M
M
M
KE
241
241
241
M
LC
219
219
M
M
MT
BA
-
-
-
85
NR
NR
-
-
165
M
PD
M
M
M
M
PP
261
M
M
M
RK
BA
202
202
202
202
ZA
PD
-
188
188
M
ZV
PDM2
ZVM3
ZA2544
5
6
7
8
9
10
π
NRM1
min jBR
18820216585219D
M
M
M
M
M
KE
241
241
241
241
M
LC
PD
219
219
219
M
M
MT
BA
-
-
-
-
85
NR
NR
-
-
-
165
M
PD
M
M
M
M
M
PP
261
261
M
M
M
RK
BA
-
202
202
202
202
ZA
PD
-
-
188
188
M
ZV
PDM2
ZVM3
ZA2544
MT2545
6
7
8
9
10
π
NRM1
min jBR
18820216585219241D
M
M
M
M
M
M
KE
NR
241
241
241
241
241
M
LC
PD
-
219
219
219
M
M
MT
BA
-
-
-
-
-
85
NR
NR
-
-
-
-
165
M
PD
M
M
M
M
M
M
PP
258
261
261
M
M
M
RK
BA
-
-
202
202
202
202
ZA
PD
-
-
-
188
188
M
ZV
PDM2
ZVM3
ZA2544
MT2545
LC2546
7
8
9
10
π
NRM1
min jBR
18820216585219241254D
400
M
M
M
M
M
M
KE
NR
-
241
241
241
241
241
M
LC
PD
-
-
219
219
219
M
M
MT
BA
-
-
-
-
-
-
85
NR
NR
-
-
-
-
-
165
M
PD
M
M
M
M
M
M
M
PP
258
258
261
261
M
M
M
RK
BA
-
-
-
202
202
202
202
ZA
PD
-
-
-
-
188
188
M
ZV
PDM2
ZVM3
ZA2544
MT2545
LC2546
BR2547
8
9
10
ZVπ
NRM1
min jBR
18820225816585219241254D
400
400
M
M
M
M
M
M
KE
NR
-
-
241
241
241
241
241
M
LC
PD
-
-
-
219
219
219
M
M
MT
BA
-
-
-
-
-
-
-
85
NR
NR
-
-
-
-
-
-
165
M
PD
332
M
M
M
M
M
M
M
PP
MT
258
258
258
261
261
M
M
M
RK
BA
-
-
-
-
202
202
202
202
ZA
PD
-
-
-
-
-
188
188
M
ZV
PDM2
ZVM3
ZA2544
MT2545
LC2546
BR2547
RK-8
9
10
ZVπ
NRM1
min jBR
18820225833216585219241254D
400
400
400
M
M
M
M
M
M
KE
NR
-
-
-
241
241
241
241
241
M
LC
PD
-
-
-
-
219
219
219
M
M
MT
BA
-
-
-
-
-
-
-
-
85
NR
NR
-
-
-
-
-
-
-
165
M
PD
BR
332
332
M
M
M
M
M
M
M
PP
MT
-
258
258
258
261
261
M
M
M
RK
BA
-
-
-
-
-
202
202
202
202
ZA
PD
-
-
-
-
-
-
188
188
M
ZV
PDM2
ZVM3
ZA2544
MT2545
LC2546
BR2547
RK-8
PP-9
10
ZVπ
NRM1
min jBR
18820225833216585219241400254D
LC
400
400
400
400
M
M
M
M
M
M
KE
NR
-
-
-
-
241
241
241
241
241
M
LC
PD
-
-
-
-
-
219
219
219
M
M
MT
BA
-
-
-
-
-
-
-
-
-
85
NR
NR
-
-
-
-
-
-
-
-
165
M
PD
BR
-
332
332
M
M
M
M
M
M
M
PP
MT
-
-
258
258
258
261
261
M
M
M
RK
BA
-
-
-
-
-
-
202
202
202
202
ZA
PD
-
-
-
-
-
-
-
188
188
M
ZV
PDM2
ZVM3
ZA2544
MT2545
LC2546
BR2547
RK-8
PP-9
KE-10
ZVπ
NRM1
min jBR
-
21
Dantzigov algoritmus
1. Pre ľubovoľnéui položíme vi = 0.2. Určíme pre i a j vr = min(vi + cij)
hranu, ktorá tvorí minimálne spojenie, výrazne označíme a z celej tabuľky vylúčime všetky ostatnéhrany, ktoré smerujú do uzla ur.
3.Podľa bodu 2 pokračujeme, kým neohodnotíme všetky uzly v sieti, t. j. kým nevypočítame aj hodnotu vn.
4.Hodnota vn udáva dĺžku najkratšej cesty z východiskového uzla do uzla un.
-
22
Dantzigov algoritmus
cij
n...21i
vr
-
23
Príklad BA – mestá SRDantzigov algoritmus
RK 73
PD 62
NR 103
ZV 62
ZV 103
ZV 86
ZV 55
ZV 66
MT 86
PD 79
ZV 73
RK 79
ZA 79
PD 80
ZA 25
NR 156
PP 120
PP 78
cij
LC 55
MT 25
PP 79
KE 120
NR 80
LC 156
RK 39
KE 159
LC 159
LC 77
ZA202
BR 66
BA 202
MT 39
BR 78
MT 54
BA 85
PD 54
BR 77
BR 164
KE 164
NR85
ZVZARKPPPDNRMTLCKEBRBAi
vr
RK 73
PD 62
NR 103
ZV 62
ZV 103
ZV 86
ZV 55
ZV 66
MT 86
PD 79
ZV 73
RK 79
ZA 79
PD 80
ZA 25
NR 156
PP 120
PP 78
cij
LC 55
MT 25
PP 79
KE 120
NR 80
LC 156
RK 39
KE 159
LC 159
LC 77
202ZA202
BR 66
BA 202
MT 39
BR 78
MT 54
BA 85
PD 54
BR 77
BR 164
KE 164
85NR85
ZVZARKPPPDNRMTLCKEBRBAi
850vr
RK 73
PD 62
NR 103
ZV 62
188ZV 103
ZV 86
ZV 55
ZV 66
MT 86
PD 79
ZV 73
RK 79
ZA 79
165PD 80
ZA 25
NR 156
PP 120
PP 78
cij
LC 55
MT 25
PP 79
KE 120
NR 80
241LC 156
RK 39
KE 159
LC 159
LC 77
202ZA202
BR 66
BA 202
MT 39
BR 78
MT 54
BA 85
PD 54
BR 77
BR 164
KE 164
85NR85
ZVZARKPPPDNRMTLCKEBRBAi
165850vr
RK 73
PD 62
NR 103
227ZV 62
188ZV 103
ZV 86
ZV 55
ZV 66
MT 86
PD 79
ZV 73
RK 79
244ZA 79
165PD 80
ZA 25
NR 156
PP 120
PP 78
cij
LC 55
MT 25
PP 79
KE 120
NR 80
241LC 156
RK 39
KE 159
LC 159
LC 77
202ZA202
BR 66
BA 202
MT 39
BR 78
219MT 54
BA 85
PD 54
BR 77
BR 164
KE 164
85NR85
ZVZARKPPPDNRMTLCKEBRBAi
188165850vr
261RK 73
PD 62
NR 103
227ZV 62
188ZV 103
ZV 86
ZV 55
ZV 66
274MT 86
PD 79
ZV 73
RK 79
244ZA 79
165PD 80
ZA 25
NR 156
PP 120
PP 78
cij
243LC 55
MT 25
PP 79
KE 120
NR 80
241LC 156
RK 39
KE 159
LC 159
LC 77
202ZA202
254BR 66
BA 202
MT 39
BR 78
219MT 54
BA 85
PD 54
BR 77
BR 164
KE 164
85NR85
ZVZARKPPPDNRMTLCKEBRBAi
188202165850vr
261RK 73
PD 62
NR 103
227ZV 62
188ZV 103
ZV 86
ZV 55
ZV 66
274MT 86
PD 79
ZV 73
RK 79
244ZA 79
165PD 80
ZA 25
NR 156
PP 120
PP 78
cij
243LC 55
227MT 25
PP 79
KE 120
NR 80
241LC 156
RK 39
KE 159
LC 159
LC 77
202ZA202
254BR 66
BA 202
MT 39
BR 78
219MT 54
BA 85
PD 54
BR 77
BR 164
KE 164
85NR85
ZVZARKPPPDNRMTLCKEBRBAi
188202165852190vr
261RK 73
PD 62
NR 103
227ZV 62
188ZV 103
ZV 86
ZV 55
ZV 66
274MT 86
PD 79
ZV 73
RK 79
244ZA 79
165PD 80
ZA 25
NR 156
PP 120
PP 78
cij
243LC 55
227MT 25
PP 79
KE 120
NR 80
241LC 156
258RK 39
KE 159
LC 159
LC 77
202ZA202
254BR 66
BA 202
MT 39
BR 78
219MT 54
BA 85
PD 54
BR 77
BR 164
KE 164
85NR85
ZVZARKPPPDNRMTLCKEBRBAi
188202165852192410vr
261RK 73
PD 62
NR 103
227ZV 62
188ZV 103
ZV 86
ZV 55
ZV 66
274MT 86
PD 79
ZV 73
RK 79
244ZA 79
165PD 80
ZA 25
NR 156
PP 120
PP 78
cij
243LC 55
227MT 25
PP 79
KE 120
NR 80
241LC 156
258RK 39
400KE 159
LC 159
LC 77
202ZA202
254BR 66
BA 202
MT 39
BR 78
219MT 54
BA 85
PD 54
318BR 77
BR 164
KE 164
85NR85
ZVZARKPPPDNRMTLCKEBRBAi
188202165852192412540vr
261RK 73
PD 62
NR 103
227ZV 62
188ZV 103
ZV 86
ZV 55
ZV 66
274MT 86
PD 79
ZV 73
RK 79
244ZA 79
165PD 80
ZA 25
NR 156
PP 120
332PP 78
cij
243LC 55
227MT 25
PP 79
KE 120
NR 80
241LC 156
258RK 39
400KE 159
LC 159
LC 77
202ZA202
254BR 66
BA 202
MT 39
BR 78
219MT 54
BA 85
PD 54
318BR 77
BR 164
418KE 164
85NR85
ZVZARKPPPDNRMTLCKEBRBAi
188202258165852192412540vr
-
24
Príklad BA – mestá SRDantzigov algoritmus
261RK 73
PD 62
NR 103
227ZV 62
188ZV 103
ZV 86
ZV 55
ZV 66
274MT 86
PD 79
ZV 73
RK 79
244ZA 79
165PD 80
ZA 25
NR 156
PP 120
332PP 78
cij
243LC 55
227MT 25
PP 79
KE 120
NR 80
241LC 156
258RK 39
400KE 159
LC 159
LC 77
202ZA202
254BR 66
BA 202
MT 39
BR 78
219MT 54
BA 85
PD 54
318BR 77
BR 164
418KE 164
85NR85
ZVZARKPPPDNRMTLCKEBRBAi
188202258165852192412540vr