Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
ANALIZA TRANSPORTNIH ANALIZA TRANSPORTNIH MREMREŽAŽA
PREDAVANJE V
1
Predavanje VPredavanje V
�� Algoritam za pronalaženje drugog Algoritam za pronalaženje drugog najkraćeg puta u mrežinajkraćeg puta u mreži
�� Algoritam za iznalaženje najkraćih puteva Algoritam za iznalaženje najkraćih puteva �� Algoritam za iznalaženje najkraćih puteva Algoritam za iznalaženje najkraćih puteva izmeizmeññu svih parova čvorova u svih parova čvorova
2
1. 1. AlgoritamAlgoritam zaza pronalaženjepronalaženje drugogdrugognajkraćegnajkraćeg putaputa u u mrežimreži
• Pollack (1961): Drugi po redu najkraći put se razlikuje od najkraćeg puta u najmanje jednojgrani.
najkraæi put p
3
s1 2
3
n t
najkraæi put
1. 1. AlgoritamAlgoritam zaza pronalaženjepronalaženje drugogdrugognajkraćegnajkraćeg putaputa u u mrežimreži
� Neka najkraći put p od čvora s do čvora t sadrži ukupno n grana. Ove grane označene su respektivno na prethodnoj slici sa 1, 2, 3, ..., n. ..., n.
� Dužine ovih grana označimo sa d(1), d(2), d(3), ..., d(n).
4
1. 1. AlgoritamAlgoritam zaza pronalaženjepronalaženje drugogdrugognajkraćegnajkraćeg putaputa u u mrežimreži� Pošto se drugi po redu najkraći put
razlikuje od najkraćeg puta u najmanjejednoj grani, pretpostavimo da je to granabroj 1.
� Pretpostavimo takoñe da je dužina ovegrane beskonačno velika. PrimenomDijkstra-nog algoritma odredimo ponovonajkraći put u razmatranoj mreži. Novi“najkraći” put označimo sa p1 .
5
"najkraæi put" p1 (d(1) = ∞)
1. 1. AlgoritamAlgoritam zaza pronalaženjepronalaženje drugogdrugognajkraćegnajkraćeg putaputa u u mrežimreži
Slika 1.Najkraći put odčvoras do čvorat kroz mrežuG = (N, A) u
slučaju kada jed(1) beskonačno velika
s d(1) = ∞t
6
1. 1. AlgoritamAlgoritam zaza pronalaženjepronalaženje drugogdrugognajkraćegnajkraćeg putaputa u u mrežimreži
� U sledećem koraku grani broj 1 “vratimo”originalnu dužinu i pretpostavimo da jedužina grane broj 2 beskonačno velika.
� U ovako modifikovanoj mreži primenimoponovo algoritam Dijkstra-e za iznalaženjenajkraćeg puta. Novi “najkraći put”označimo sa p2 .
7
s d(2) = ∞t
1. 1. AlgoritamAlgoritam zaza pronalaženjepronalaženje drugogdrugognajkraćegnajkraćeg putaputa u u mrežimreži
Slika 2. Najkraći put od čvora s do čvora t kroz mrežu G = (N, A) u slučaju kada je d(2) beskonačno velika
s t
"najkraæi put" p2 (d(2) = ∞)
8
1. 1. AlgoritamAlgoritam zaza pronalaženjepronalaženje drugogdrugognajkraćegnajkraćeg putaputa u u mrežimreži
� U sledećim koracima bi se dužine treće,četvrte, ..., n-te grane modifikovale iprimenom algoritma Dijkstra-e bi se utvrdiliprimenom algoritma Dijkstra-e bi se utvrdiliodgovarajući “najkraći putevi” p3, p4, ..., pn.
� Najkraći od puteva p1, p2, p3, ..., pn
predstavlja drugi po redu najkraći put urazmatranoj mreži.
9
3 52
1
1. 1. AlgoritamAlgoritam zaza pronalaženjepronalaženje drugogdrugognajkraćegnajkraćeg putaputa u u mrežimreži
s 2
2
2
3
2
4 6
t
10
Primer: Naći najkraći drugi najkraći put ods do t
3 5
1
2
"najkraæi put" p1 (d(1) = ∞)
1. 1. AlgoritamAlgoritam zaza pronalaženjepronalaženje drugogdrugognajkraćegnajkraćeg putaputa u u mrežimreži
s2
3
4 6
t2
2
d(1) = ∞
11
3 5
1
2
"najkraæi put" p2 (d(2) = ∞)
1. 1. AlgoritamAlgoritam zaza pronalaženjepronalaženje drugogdrugognajkraćegnajkraćeg putaputa u u mrežimreži
s2
3
4 6
t2
2
d(2) = ∞
12
3 5
1
2
1. 1. AlgoritamAlgoritam zaza pronalaženjepronalaženje drugogdrugognajkraćegnajkraćeg putaputa u u mrežimreži
s2
3
4 6
t2
2
2
najkraæi put pdrugi po redunajkraæi put p1
13
2. 2. AlgoritamAlgoritam zaza iznalaženjeiznalaženje najkraćihnajkraćihputevaputeva izmedjuizmedju svihsvih parovaparova čvorovačvorova
� Često je neophodno izračunati najkraćeputeve izmeñu svih parova čvorova utransportnoj mreži.
� Ovaj problem moguće je rešiti i uz pomoćalgoritma za iznalaženje najkraćih putevaizmeñu jednog čvora i svih ostalihtransportnih čvorova mreže. Ukoliko u mrežiima n čvorova, neophodno je n puta primenitialgoritam Dijkstra-e, uzimajući svaki put drugičvor za početni čvor.
14
FloydFloyd--ovov algoritamalgoritam
Floyd-a (1962):Mreža - G = (N,A)Sve čvorove mreže označimo pozitivnim celim brojevima 1, 2, ..., n. celim brojevima 1, 2, ..., n.
Uvedimo u razmatranje tzv. početnumatricu dužina najkraćih puteva D0 ipočetnu matricu čvorova-prethodnika Q0.
15
- dužina najkraćeg puta od čvora i do čvora jkoji je otkriven u k-tom prolazu kroz algoritam
- čvor prethodnik čvoru j na najkraćem putu
d i jk
q k
FloydFloyd--ovov algoritamalgoritam
- čvor prethodnik čvoru j na najkraćem putuod čvora i koji je takodje otkriven u k-tomprolazu.
16
q ijk
� Elementi matrice D0 definisani su na sledećinačin:
Ako izmeñu čvora i i čvora j postoji grana, dužinanajkraćeg puta izmeñu ovih čvorova jednaka je
FloydFloyd--ovov algoritamalgoritam
najkraćeg puta izmeñu ovih čvorova jednaka jedužini d(i, j) grane (i, j) koja ih spaja.
17
� Ako izmeñu čvora i i čvora j postoji višegrana, dužina najkraćeg puta mora da budejednaka dužini najkraće grane, tj.:
FloydFloyd--ovov algoritamalgoritam
gde je m broj grana izmeñu čvora i i čvora j.
18
{ } d d i j d i j d i jij m0
1 2= min ( , ), ( , ),..., ( , )
� Jasno je da je:= 0 za i = j
� U ostalim slučajevima kada izmeñu čvora i i čvoraj ne postoji grana, u početku nemamo informaciju
d i j0
FloydFloyd--ovov algoritamalgoritam
j ne postoji grana, u početku nemamo informacijuo dužini najkraćeg puta izmedju ova dva čvora, teih tretiramo kao da su beskonačno udaljenijedan od drugog.
� Na početku smatramo da je za svaki par čvorovačvor-prethodnik čvoru j na najkraćem putu kojivodi od čvora i do čvora j, upravo čvor i.
19
FloydFloyd--ovov algoritamalgoritam
KORAK 1: Neka je k = 1KORAK 2: Elemente matrice dužinanajkraćih puteva otkrivenihzavršno sa k-timprolazom kroz algoritam D , izračunavamoprolazom kroz algoritam Dk, izračunavamopomoću relacije:
20
{ } d d d dijk
ijk
ikk
kjk= +− − −min ,1 1 1
KORAK 3: Elementi matrice Qk
čvorova-prethodnika otktivenih završno sa k-tim prolazom kroz algoritam iizračunavaju se kao:
za q d dk k k≠ − −1 1,
FloydFloyd--ovov algoritamalgoritam
KORAK 4: Ako je k = n završiti sa algoritmom. Ako je k < n, povećati k za 1, tj. staviti da je
k = k+1 i vratiti se na korak 2.21
za
u ostalim sluèajevimaq
q d d
qijk kj
kijk
ijk
ijk=
≠
− −
−
1 1
1
,
,
1
1
8
32
2
FloydFloyd--ovov algoritamalgoritam
5
56
7
53
3
4
4
22
PočetnaPočetna matricamatrica DD00
1 2 3 4 51
2
0 8 3 5
8 0 2 5
∞∞
FloydFloyd--ovov algoritamalgoritam
18
32
2
2
3
4
5
8 0 2 5
1 0 3 4
6 0 7
5 0
0D =∞
∞∞ ∞
∞ ∞ ∞
23
1
5
56
7
53
3
4
4
PočetnaPočetna matricamatrica QQ00
1 2 3 4 51
2
1 1 1 1
2 2 2 2
−−
FloydFloyd--ovov algoritamalgoritam
18
32
2
2
3
4
5
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
0Q =−
−−
−
24
1
5
56
7
53
3
4
4
� Prvi korak.
� k = 1.
FloydFloyd--ovov algoritamalgoritam
{ } { } 880,8min,min 02,1
01,1
02,1
12,1 =+=+= dddd
{ } { } 380,3min,min 03,1
01,1
03,1
13,1 =+=+= dddd
25
{ } { } 550,5min,min 04,1
01,1
04,1
14,1 =+=+= dddd
{ } { } ∞=∞+∞=+= 0,min,min 05,1
01,1
05,1
15,1 dddd
{ } { } 808,8min,min 01,1
01,2
01,2
11,2 =+=+= dddd
{ } { } 238,2min,min 03,1
01,2
03,2
13,2 =+=+= dddd
{ } { } 1358,min,min 04,1
01,2
04,2
14,2 =+∞=+= dddd
{ } { } 58,5min,min 05,1
01,2
05,2
15,2 =∞+=+= dddd
FloydFloyd--ovov algoritamalgoritam{ } { } ∞=∞+∞∞=+= ,min,min 0
1,10
1,30
1,31
1,3 dddd
{ } { } 18,1min,min 02,1
01,3
02,3
12,3 =+∞=+= dddd
{ } { } 35,3min,min 04,1
01,3
04,3
14,3 =+∞=+= dddd
{ } { } 4,4min,min 05,1
01,3
05,3
15,3 =∞+∞=+= dddd
{ } { } 606,6min,min 01,1
01,4
01,4
11,4 =+=+= dddd
26
{ } { } 606,6min,min 1,11,41,41,4 =+=+= dddd
{ } { } 1486,min,min 02,1
01,4
02,4
12,4 =+∞=+= dddd
{ } { } 936,min,min 03,1
01,4
03,4
13,4 =+∞=+= dddd
{ } { } 76,7min,min 05,1
01,4
05,4
15,4 =∞+=+= dddd
{ } { } ∞=+∞∞=+= 0,min,min 01,1
01,5
01,5
11,5 dddd
{ } { } 58,5min,min 02,1
01,5
02,5
12,5 =+∞=+= dddd
{ } { } ∞=+∞∞=+= 3,min,min 03,1
01,5
03,5
13,5 dddd
{ } { } ∞=+∞∞=+= 5,min,min 04,1
01,5
04,5
14,5 dddd
MatricaMatrica DD11
1 2 3 4 51 0 8 3 5 ∞
FloydFloyd--ov algoritamov algoritam
1
2
3
4
5
0 8 3 5
8 0 2 5
1 0 3 4
6 0 7
5 0
1D =
∞
∞
∞ ∞ ∞
13
14 9
27
MatricaMatrica QQ11
1 2 3 4 51 1 1 1 1−
FloydFloyd--ovov algoritamalgoritam
za
u ostalim sluèajevimaq
q d d
qijk kj
kijk
ijk
ijk=
≠
− −
−
1 1
1
,
,
1
2
3
4
5
1 1 1 1
2 2 2
3 3 3 3
4 4
5 5 5 5
1Q =
−−
−−
−
1
1 1
28
=
05
709146
4301
513208
5380
5
4
3
2
1
54321
2
18713
9
13
D
FloydFloyd--ovov algoritamalgoritam
1 2 3 4 51
2
3
4
5
1 1 1
2 2 1 2
3 3 3
4 1 1 4
5
2Q =
−−
−−
−
2
2
2 2 2 055 18713
29
5 5 −
2 2 2
1 2 3 4 51
2
3
4
5
0 3 5
8 0 2 5
9 1 0 3 4
6 9 0 7
13 5 7 0
3D =
4 7
5
10
10
1 2 3 4 51
2
3
4
5
1 1
2 2 2
2 3 3 3
4 1 4
2 5 2
3Q =
−−
−−
−
3 3
3
3
3
1 2 3 4 51
2
3
4
0 4 3 5 7
8 0 2 5 5
9 1 0 3 4
6 10 9 0 74D =
FloydFloyd--ovov algoritamalgoritam
1 2 3 4 51
2
3
4
3 1 1 3
2 2 3 2
2 3 3 3
4 3 1 44Q =
−−
−−
4
5
6 10 9 0 7
13 5 7 10 0
30
4
5
4 3 1 4
2 5 2 3
−−
1 2 3 4 51
2
3
4
5
0 4 3 5 7
8 0 2 5 5
9 1 0 3 4
6 10 9 0 7
13 5 7 10 0
5D =
1 2 3 4 51
2
3
4
5
3 1 1 3
2 2 3 2
2 3 3 3
4 3 1 4
2 5 2 3
5Q =
−−
−−
−
� Matrice D5 i Q5 daju nam potpunu informaciju odužinama najkraćih puteva izmedju svih parovačvorova transportne mreže, kao i o čvorovima kojiulaze u sastav ovih puteva. Tako je, na primer, dužinanajkraćeg puta od čvora 5 do čvora 4 jednaka 10 (5,4).
FloydFloyd--ovov algoritamalgoritam
31
1 2 3 4 51
2
3
4
5
0 4 3 5 7
8 0 2 5 5
9 1 0 3 4
6 10 9 0 7
13 5 7 10 0
5D =
1 2 3 4 51
2
3
4
5
3 1 1 3
2 2 3 2
2 3 3 3
4 3 1 4
2 5 2 3
5Q =
−−
−−
−