Professional Documents
Culture Documents
transportnim mrežama
Optimalni put : Najkraći put, najduži put, najbrži
put, put sa najveæim kapacitetom, najjeftiniji put,
najpouzdaniji put
s i j t
d ( i, j)
Dužina odredjenog puta jednaka je
zbiru dužina grana koje ulaze u sastav
tog puta.
∑d (i ,
( i , j )∈A
j ) x ij
pri ograničenjima:
1 za i = s
∑ xij − ∑ x ji = − 1 za i = t
{ j ( i , j )∈ A} { j ( j ,i )∈ A} 0 u osta lim slucajevima
xij ≥ 0 ∀ (i, j ) ∈ A
Primer:Mreža u kojoj treba odrediti
najkraći put od čvora 1 do čvora 7
6
2 5 5
4
1 8
5
4 7
3
5 6 5
3
Uvedimo u razmatranja binarne promenljive xij koje
ćemo definisati na sledeći način:
(1,2) 6
(1,3) 7
(1,4) 8
(2,4) 5
(3,4) 5
(4,5) 4
(4,6) 3
(5,7) 5
(6,7) 5
Minimizirati
pri ograničenjima:
x12 + x13 + x14 = 1
x12 − x 24 = 0
x13 − x34 = 0
x14 + x 24 + x34 − x 45 − x 46 = 0
Nastavak ograničenja:
x 45 − x57 = 0
x 46 − x 67 = 0
− x57 − x 67 = − 1
Optimalno rešenje:
x14 = x 46 = x 67 = 1
x12 = x13 = x 24 = x 34 = x 45 = x 57 = 0
Put (1,4,6,7) koji predstavlja
najkraći put izmedju čvora 1 i
čvora 7
6
2 5 5
4
1 8
5
4 7
3
5 6 5
3
Generički algoritam za
iznalazenje najkraćih puteva od
jednog čvora do svih ostalih
čvorova u mreži
Mreža: G = (N, A)
Odredimo najkrace puteve od početnog
čvora (čvor 1) do svih ostalih čvorova
mreze.
Svakoj grani (i, j) A pridružena je
odgovarajuća dužina d(i, j).
Svakom čvoru je pridružena oznaka koja
predstavlja dužinu najkraćeg poznatog puta
od čvora 1 do čvora i.
Mreža u kojoj treba utvrditi
najkraće puteve od čvora 1 do
svih ostalih čvorova
d(1,2) d
2 2
1 d d
1 i
n
i
d(1,3) d(i,j)
3
d 3
j d j
U okviru generičkog algoritma koji je
predlozio Bertsekas (1998) se tzv. lista
čvorova-kandidata V i vrednosti vektora
(d 1 , d 2 ,..., d n)
neprestano modifikuju. Na početku
procesa iznalaženja najkracih puteva je:
V ={1}
d1 = 0 di = ∞ ∀i ≠ 1
Odstraniti čvor i iz skupa čvorova-kandidata V. Za svaku granu (i, j ) ∈ A koja
izlazi iz čvora i za koju je d j > d i + d (i, j ) modifikovati vrednost veličine d j na
sledeci način: d j := d i + d (i, j ) . Uključiti čvorove j u skup čvorova-kandidata V u
slučaju da jos uvek nisu uključeni u ovaj skup.
Utvrditi najkraće puteve od čvora
1 do svih ostalih čvorova
6
2
5
1
8
4
7
8
5
3
Početak procesa iznalaženja
najkraćih puteva
V={1}
d 1= 0
d 2= d 3= d 4 =
∞
Vektor dužima najkraćih puteva glasi:
{0, ∞, ∞, ∞}
Iteracija 1:
Iz skupa čvorova-kandidata V
isključujemo čvor 1. Iz čvora 1 izlaze
grane (1,2), (1,3) i (1,4). Za ove grane je
ispunjeno:
∞ = d 2 > d 1 + (1,2) = 0 + 6 = 6
∞ = d 3 > d 1 + (1,3) = 0 + 7 = 7
∞ = d 4 > d 1 + (1,4) = 0 + 8 = 8
Vrednosti veličina d 2 , d 3 i d 4 treba da budu promenjene. Nove vrednosti ovih veličina
su:
d 2 := d 1 + d (1,2) = 0 + 6 = 6
d 3 := d 1 + d (1,3) = 0 + 7 = 7
d 4 := d 1 + d (1,4) = 0 + 8 = 8
Čvorove 2, 3 i 4 uključujemo u skup V s obzirom da do sada nisu bili uključeni u ovaj
skup. Skup V glasi:
V = { 2,3,4}
Vektor duzina najkracih puteva glasi:
{ 0,6,7,8}
Iteracija 2:
Iz skupa čvorova-kandidata V isključujemo čvor 2. Iz čvora 2 izlazi grana (2,4).
Za ovu granu je ispunjeno:
8 = d 4 < d 2 + (2,4) = 6 + 5 = 11
Vrednost veličine d 4 ne treba da bude promenjena.
Skup V glasi:
V = { 3,4}
Vektor duzina najkracih puteva glasi:
{ 0,6,7,8}
Iteracija 3:
Iz skupa čvorova-kandidata V isključujemo čvor 3. Iz čvora 3 izlazi grana (3,4).
Za ovu granu je ispunjeno:
8 = d 4 < d 3 + (3,4) = 7 + 5 = 12
Ovo znači da ne treba da modifikujemo vrednost veličine d 4 . U skup V u ovom trenutku
ne uključujemo nijedan novi čvor. Skup V glasi:
V = { 4}
Vektor duzina najkracih puteva glasi:
{ 0,6,7,8}
Iteracija 4:
Iz skupa čvorova-kandidata V isključujemo čvor 4. Iz čvora 4 izlazi grana (4,1).
Za ovu granu je ispunjeno:
0 = d 1 < d 4 + (4,1) = 11 + 8 = 19
5
3
Algoritam Dijkstra-e
Algoritam Dijkstra-e (1959)
predstavlja specijalni slučaj generičkog
algoritma.
U Dijkstra-inom algoritmu se iz liste
landidata V u svakoj iteraciji uklanja čvor
i kome odgovara najmanja vrednost
dužine najkraćeg poznatog puta (iz liste
V se uklanja cvor i za koji je ispunjena
sledeća relacija:d i = min d j
j∈V
U algoritmu se pretpostavlja da su
dužine svih grana d(i, j) u mreži
G = (N, A) nenegativne.
daa = 0
qa = +
dai = ∞
qi = - i≠ a
c=a
Da bi neke od privremenih oznaka
transformisali u stalne ispitajmo sve
grane (c, i) koje izlaze iz poslednjeg
čvora koji je u zatvorenom stanju (čvor
c). Ukoliko je i čvor i u zatvorenom
stanju predjimo na ispitivanje sledećeg
čvora. Ukoliko je čvor i u otvorenom
stanju, njegovu prvu oznaku dai
d ai = min { d ai , d ac + d (c, i )}
dobićemo na osnovu relacije:
Uporedimo veličine dai svih čvorova
koji se nalaze u otvorenom stanju.
d
(∞ , − )
Izgled mreže posle prvog
prolaza kroz algoritam
(4 , a ) ¢ (∞ , − )
b 9 f
(∞ , − ) (∞ , − )
10
h j
5
4 2 7
4 9 2
2 6 8 2
a c e l
(0 , + )′ (∞ , − ) (∞ , − ) (∞ , − )
3
6 3 6
g 7 i 6 k
8 (∞ , − ) (∞ , − ) (∞ , − )
d
(6 , − )
Izgled mreže posle drugog
prolaza kroz algoritam
(4 , a )¢ (1 3 , − )
b 9 f
(∞ , − ) (∞ , − )
10
h j
5
4 2 7
4 9 2
2 6 8 2
a c e l
(0 , + )′ (6 , b ) ¢ (∞ , − ) (∞ , − )
3
6 3 6
g 7 i 6 k
8 (∞ , − ) (∞ , − ) (∞ , − )
d
(6 , − )
Izgled mreže posle trećeg
prolaza kroz algoritam
(4 , a )¢ (1 3 , − )
b 9 f
(∞ , − ) (∞ , − )
10
h j
5
4 2 7
4 9 2
2 6 8 2
a c e l
(0 , + )′ (6 , b ) ¢ (8 , − ) (∞ , − )
3
6 3 6
g 7 i 6 k
8 (∞ , − ) (∞ , − ) (∞ , − )
d
(6 , a )¢
Najkraći putevi od čvora a do
svih ostalih čvorova
(4 , a ) (1 3 , b )
b 9 f
(2 3 , f) (2 8 , h )
10
h j
5
4 2
2
2
a c e l
(0 , + ) (6 , b ) (8 , c ) ( 3 0 , j)
6
g 7 i 6 k
8 (1 4 , d ) (2 1 , g ) ( 2 7 , i)
d
(6 , a )