Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
Grafosfski algoritmi
-
Upload
marko-adam -
Category
Documents
-
view
214 -
download
2
description
Transcript of Grafosfski algoritmi
-
Algoritmi za trazenje optimalnog puta
Veliki broj problema optimizacije na realnim mrezama, kao sto su elek-tricne, telekomunikacione, putne, moze da se modelira nekim od karakter-isticnih problema na grafovima za koje postoje razvijeni efikasni algoritmi.Problem nakraceg puta je jedan od osnovnih i najjednostavnijih optimiza-cionih problema.
Neka je G orjentisani graf (multigraf) i : E(G) R . Uredeni par(G,) je tezinski graf. Svakoj grani funkcija pridruzuje tezinu (e). Akoje H G podgraf grafa G, tada je tezina podgrafa H definisana sa (H) =
eE(G) (e).Grane orjentisanog grafa su uredeni parovi njegovih cvorova, pa se u ge-
ometrijskoj reprezentaciji graficki pedstavljaju strelicama. Ako je (u, v) E(G) i (v, u) E(G), tacke pridrizene cvorovima u i v se spajaju neorjenti-sanom linijom. Ako je (u, v) E(G) i (v, u) / E(G), linija koja spaja tackeu i v orjentisana je od u ka v.
Mnogi problemi optimizacije svode se na to da se u zadatom tezinskomgrafu nade podgraf odredenog tipa sa najmanjom ili najvecom tezinom.Jedan od njih je problem najkraceg puta: U tezinskom grafu (G,) za fik-sirane cvorove u, v G, naci (u v)- put najmanje tezine.
Jednostavnosti radi, umjesto ,,tezina puta govoricemo ,,duzina ili ,,ci-jena puta. Koristicemo i sljedece oznake:cij - duzina (cijena) grane (i, j),(i) = {j V (G)|(i, j) E(G)} - skup cvorova koji slijede iz i,1(i) = {j V (G)|(j, i) E(G)} - skup cvorova koji prethode cvoru i,s - pocetni i t - zavrsni ili ciljni cvor.
Najveci broj algoritama najkraceg puta sastoji se u pridruzivanju, usvakom algoritamskom koraku, privremenih oznaka d(v), za svaki cvor v.Promjenjiva d(v) predstavlja gornju granicu tezine najkraceg puta od po-lazista s do v. Promjenjivu d(v) nazivamo procjenom najkraceg (s v)-puta. Algoritmi se razlikuju po nacinu kako ,,poboljsavaju privremene oz-
1
-
nake iz koraka u korak i kako ,,konvergiraju ka najkracim rastojanjima.Label-setting algoritmi u svakom koraku odreduju po jednu stalnu oznaku.Label-correcting algoritmi sve oznake smatraju privremenima, do posled-njeg koraka, kada sve oznake postaju konacne. Label-setting algoritmi suprimjenjivi samo za trazenje najkracih puteva na tezinskim grafovima sanenegativnom tezinskom funkcijom i aciklicnim grafovima sa proizvoljnomtezinskom funkcijom. Label-correcting algoritmi su opstiji, primjenjivi nasve tezinske grafove. Ipak, label-setting algoritmi su efikasniji, u smislu daimaju manju slozenost u najgorem slucaju.
Dijkstrin algoritam
Dijkstrin algoritam rjesava problem najkraceg puta iz jednog polazistau usmjerenom tezinskom grafu u slucaju kada su sve tezine nenegativne.Smatra se najefikasnijim za odredivanje najkraceg puta izmedu dva cvora,za ovakvu klasu tezinskih grafova.
1.U inicijalnom koraku, cvorovima dodjeljujemo pocetna obiljezja na sledecinacin:
- pocetnom cvoru s dodjeljujemo stalno obiljezje d+(s) = 0- svim ostalim cvorovima dodjeljujemo privremena obiljezja d(v) = ,
v V (G)\{s}-stavljamo i = s
2. Odredimo skup Ai = {v|v (i) d(v) = d(v)} cvorova v kojinemaju stalno obiljezje i slijede iz i.
3. Za svako v Ai odredimo nova privremena obiljezja
d(j) = min{d(j), d(j) + ci,j}
4. Od svih cvorova na grafu sa privremenim obiljezjima trazimo onaj zakoji je privremeno obiljezje minimalno. Oznacimo ga sa j.
d(j) = minvV (G){d(v)}
2
-
Cvor j dobija stalno obiljezje d+(j) = d(j).
5. Provjeriti da li je j zavrsni cvor t. Ako nije, staviti i = j i vratitise na korak 2. Ako jeste, odredena je duzina najkraceg (s t)-puta i ona jejednaka d+(t).
6.Najkraci (s t)-put P = (s, v1, v2, . . . , vk, t) rekonstruisemo vracajucise unazad od t ka s tako da vazi:
vk : d+(t) = d+(vk) + cvkt
vk1 : d+(vk) = d+(vk1) + cvk1vk. . .. . .s : d+(v1) = d
+(s) + csv1
Ovaj poslednji korak rekonstrukcije najkraceg puta obicno se pojednos-tavljuje tako sto se u koraku 4. uz stalno obiljezje pamti i cvor na osnovukog je to stalno obiljezje dobijeno.
Flojdov algoritam
Flojdov algoritam nalazi najkrace puteve izmedu svaka dva cvora u grafu.Primjenljiv je i kada su duzine grana negativne, ali u grafu ne smije postojatikontura negativne duzine.
Neka je G tezinski graf sa n cvorova. Matrica rastojanja cvorova grafa G jenn matrica C = (cij)i,j=1,n ciji elementi predstavljaju duzine odgovarajucihgrana grafa G, to jeste:
cij =
(ij) 6= 0 , (i, j) E(G) , (i, j) / E(G)0 , i = j
U Flojdovom algoritmu formira se niz matrica C0, C1, . . .Cn, tako da zasvako k {1, 2, . . . , n} element ckij matrice Ck predstavlja duzinu najkraceg(i j)-puta za sve cvorove i, j {1, 2, . . . k}.
3
-
1. Neka je k = 0 i C0 = C
2. k = k + 1
3. Odredujemo skupove
I = {i|i 6= k, ck1ik 6=} i J = {j|j 6= k, ck1kj 6=}
4. Formiramo matricu Ck na sledeci nacin:
ckij = min{ck1ij , ck1ik + ck1kj }
za sve i I i j J. Ostali elementi ostaju nepromijenjeni, t.j. ckij = ck1ij .
5. (1) ako je k = n i cnii 0 za svaki cvor i, elementi matrice Cn su duzinenajkracih puteva
(2) ako je k < n i ckii 0 za svaki cvor i, vratiti se na korak 2.(3) ako je k n i ckii < 0 za neki cvor i, u grafu postoji kontura negativne
duzine, pa ne postoji najkraci put.
4