Grafosfski algoritmi

4
Algoritmi za trazenje optimalnog puta Veliki broj problema optimizacije na realnim mreˇ zama, kao ˇ sto su elek- triˇ cne, telekomunikacione, putne, moˇ ze da se modelira nekim od karakter- istiˇ cnih problema na grafovima za koje postoje razvijeni efikasni algoritmi. Problem nakra´ ceg puta je jedan od osnovnih i najjednostavnijih optimiza- cionih problema. Neka je G orjentisani graf (multigraf) i ω : E(G) R . Ured¯enipar (G, ω) je teˇ zinski graf. Svakoj grani funkcija ω pridruˇ zuje teˇ zinu ω(e). Ako je H G podgraf grafa G, tada je teˇ zina podgrafa H definisana sa ω(H )= eE(G) ω(e). Grane orjentisanog grafa su ured¯eni parovi njegovih ˇ cvorova, pa se u ge- ometrijskoj reprezentaciji grafiˇ cki pedstavljaju strelicama. Ako je (u, v) E(G)i(v,u) E(G), taˇ cke pridriˇ zene ˇ cvorovima u i v se spajaju neorjenti- sanom linijom. Ako je (u, v) E(G)i(v,u) / E(G), linija koja spaja taˇ cke u i v orjentisana je od u ka v. Mnogi problemi optimizacije svode se na to da se u zadatom teˇ zinskom grafu nad¯e podgraf odred¯enog tipa sa najmanjom ili najve´ com teˇ zinom. Jedan od njih je problem najkra´ ceg puta: U teˇ zinskom grafu (G, ω) za fik- sirane ˇ cvorove u, v G, na´ ci (u - v)- put najmanje teˇ zine. Jednostavnosti radi, umjesto ,,teˇ zina puta” govori´ cemo ,,duˇ zina” ili ,,ci- jena” puta. Koristi´ cemo i sljede´ ce oznake: c ij - duˇ zina (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 - poˇ cetni i t - zavrˇ sni ili ciljni ˇ cvor. Najve´ ci broj algoritama najkra´ ceg puta sastoji se u pridruˇ zivanju, u svakom algoritamskom koraku, privremenih oznaka d(v), za svaki ˇ cvor v. Promjenjiva d(v) predstavlja gornju granicu teˇ zine najkra´ ceg puta od po- laziˇ sta s do v. Promjenjivu d(v) nazivamo procjenom najkra´ ceg (s - v)- puta. Algoritmi se razlikuju po naˇ cinu kako ,,poboljˇ savaju” privremene oz- 1

description

Grafofski algoritmi, dijakstra i fermi

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