Teˇ zinski grafovi. Algoritmi najkra´ ceg puta

5.7 Teˇ zinski grafovi. Algoritmi najkra´ ceg puta

Cilj ove toˇcke je definirati i teorijski istraˇziti teˇzinske grafove, ali i povezati dobivene rezultate s praktiˇcnim problemima i naznaˇciti njihove primjene. Istaknimo na poˇcetku da je glavna domena primjene teˇzinskih grafova na probleme optimizacije. U tu svrhu poˇcinjemo motiviraju´cim problemom trgovaˇckog putnika.

Problem 5.2 (Problem trgovaˇ ckog putnika) Trgovaˇcki putnik treba obi´ci odredene gradove i vratiti se na polaziˇste. Ako je dano vrijeme putovanja izmedu gradova, kako treba putovati tako da se svaki grad obide samo jedanput i da na putu provede ˇsto kra´ce vrijeme?

Da bismo rijeˇsili probleme sliˇcne problemu trgovaˇckog putnika, proma- tramo grafove ˇciji su bridovi ”oteˇzani”, tj. bridovima su pridruˇzene teˇzine koje mogu oznaˇcavati udaljenost u kilometrima, vrijeme provedeno na putu u satima, cijenu goriva u kunama. itd. Zadatak je u takvim primjerima prona´ci u potpunom teˇzinskom grafu, Hamiltonov ciklus najmanje teˇzine, tzv. optimalni ciklus. Nije poznat efikasni algoritam (koji se izvrˇsava u poli- nomnom vremenu) za rjeˇsavanje tog problema, tzv. NP-potpuni problem. Medutim, neki drugi problemi, sliˇcni problemu trgovaˇckog putnika, ipak se daju rijeˇsiti u polinomnom vremenu. Takav je i sljede´ci problem najkra´ceg puta u ˇzeljezniˇckoj mreˇzi.

5.7. TE ˇ ZINSKI GRAFOVI. ALGORITMI NAJKRA ´ CEG PUTA Problem 5.3 U danoj ˇzeljezniˇckoj mreˇzi kojom su povezani neki gradovi,

treba odrediti najkra´cu rutu izmedu dva zadana grada iz te mreˇze. Definicija 5.19 Teˇzinski (weighted) graf je graf G ˇcijem je svakom bridu

e pridruˇzen nenegativni broj w (e), kojeg zovemo teˇzinom brida e. Teˇzine bridova u problemu 5.3 predstavljaju duljine pruge izmedu dva

grada. Teˇzina podgrafa grafa G je suma teˇzina svih bridova u grafu. Najkra´cim putem izmedu dva vrha u teˇzinskom grafu smatramo put najmanje teˇzine.

5.7.1 Dijkstrin algoritam Postoji dosta algoritama koji sluˇze za pronalaˇzenje najkra´ceg puta u teˇzin-

skom grafu, a najpoznatiji medu njima je Dijkstrin algoritam otkriven 1959. Otkrio ga je nizozemac Edsger Dijkstra (1930 - 2002.), vode´ci informatiˇcar danaˇsnjice, koji je izmislio veliki broj algoritama na grafovima. Dijkstrin algoritam pronalazi najkra´ci put ili signalizira da on ne postoji.

On otkriva najkra´ci put iz odredenog vrha (koji je izabran da bude poˇcetni vrh) do krajnjeg vrha, koji je cilj. Uz ”osnovni” Dijkstrin algoritam postoji joˇs i takozvani poboljˇsani Dijkstrin algoritam (engl. improved), koji takoder rjeˇsava problem najkra´ceg puta u teˇzinskom grafu (vrhovi imaju znak beskonaˇcno ( ∞) kao trenutnu oznaku u tijeku raˇcunanja).

Ideja algoritma je sljede´ca: oznaˇcavamo svaki vrh oznakom (label) naj- kra´ceg puta od poˇcetne toˇcke (izvora) do tog vrha. Privremena oznaka se mijenja kad god je naden kra´ci put od izvora do tog vrha. Kad smo sigurni da nema kra´ceg puta, vrhu pridruˇzujemo trajnu oznaku. Evo procedure algoritma:

Algoritam 5.2 (poboljˇsani Dijkstrin algoritam) ULAZ: Graf G = (V, E) i dva vrha u, v ∈V. IZLAZ: Najkra´ci put od vrha u do vrha v

1. Oznaˇcite poˇcetni vrh (izvor) sa (-,0).

2. Promatrajte vrh X kojemu je posljednjem dodijeljena trajna oznaka

D (engl. permanent label). Promatraj sve susjedne vrhove od X, kojima joˇs nije pridruˇzena trajna oznaka. Za takav vrh Y, privremena vrijednost (oznaka) bit ´ce manja od dviju vrijednosti: D+(teˇzina luka XY) i postoje´ce privremene oznake (ukoliko postoji).

3. Uoˇcite najmanju privremenu oznaku na grafu i uˇcini je trajnom (uo- kvirite je).

POGLAVLJE 5. TEORIJA GRAFOVA 211

4. Ponavljajte korake 2 i 3 dok krajnja toˇcka (cilj) ne dobije trajnu oz- naku.

5. Krenite unatrag po grafu i oznaˇcite put minimalne teˇzine, od cilja (ponora) prema poˇcetku.

Zadatak 5.19 Broje´ci osnove operacije zbrajanja i usporedivanja u Dijk- strinom algoritmu pokaˇzite da je sloˇzenost Dijkstrinog algoritma jednaka

f (n) = n − n + 1.

Dakle, O(n 2 ) je gornja meda. Uz Dijkstrin algoritam, za traˇzenje najkra´ceg puta priliˇcno je popularan

i Floyd-Warshallov algoritam. U ve´cini odredenih aplikacija, ovaj je algo- ritam brˇzi od Dijkstrinog algoritma. Jedna od prednosti ovog algoritma je njegova sposobnost lakog prilagodavanja, ukoliko dode do promjene vri- jednosti teˇzina bridova. Naime, tada je dovoljno promijeniti parametre u matrici, koja sadrˇzi teˇzine bridova, a daljnji postupak ostaje isti.

Sloˇzenost Floyd-Warshallovog algoritama je O(n 3 ), kao i sloˇzenost os- novne verzije Dijkstrinog algoritma.

Zadatak 5.20 Upotrebom Dijkstrinog algoritma nadite najkra´ci put od A do K na grafu na sljede´coj slici:

(P,2)

(P,8)

(P,3)

3 5 (-,0) (B,8)

B E (A,7)

9 (A,13)

A K (E,12)

(P,4) Slika 5.10

Vidimo da je najkra´ci put od P do K, put P AEK duljine 12.

5.7. TE ˇ ZINSKI GRAFOVI. ALGORITMI NAJKRA ´ CEG PUTA

5.7.2 Problem kineskog poˇ stara U ovoj toˇcki razmotrit ´cemo primjene traˇzenja Eulerove staze i ture u grafu

na rjeˇsavanje problema kineskog poˇstara. Problem 5.4 (Problem kineskog poˇ stara)

Poˇstar uzima poˇstu u poˇstanskom uredu, dijeli je i vra´ca se u ured. Kod dijeljenja poˇste svakom ulicom treba pro´ci barem jednom. Naravno da pri tome ˇzeli prije´ci ˇsto manju udaljenost.

Problem je dobio ime po tome ˇsto ga je 1962. godine op´cenito obra- dio i prouˇcio kineski matematiˇcar Mei-ko Kwan. Prvo rjeˇsenje specijalnog sluˇcaja tog problema dao je H. E. Dudeney 1917. godine. U ovom problemu ulice predstavljaju bridove, a raskrˇs´ca vrhove grafa. Dakle, dan je teˇzinski povezani graf i traˇzi se najkra´ca zatvorena ˇsetnja, koja pokriva sve bridove barem jednom.

Ako je G Eulerov graf, svaka je tura na G optimalna, jer Eulerova tura prijede svaki brid samo jednom. U teˇzinskom je grafu teˇzina ture suma teˇzina svih bridova u turi. Problem kineskog poˇstara sastoji se u pronalaˇzenju ture najmanje teˇzine

u povezanom teˇzinskom grafu s pozitivnim teˇzinama. Takvu turu zovemo optimalna tura.

Problem je teˇzi ako graf nije Eulerov, tj. ako postoje vrhovi neparnog stupnja. Kwan je predloˇzio da se rjeˇsenje dobije tako da se od originalnog grafa prijede na pseudograf na kojem je Eulerova tura mogu´ca, udvostruˇca- vanjem odredenih bridova originalnog grafa. Cilj je na´ci bridove koje treba udvostruˇciti, ali tako da se dobije optimalna tura. Udvostruˇcene bridove zapravo treba pro´ci dva puta u traˇzenoj Eulerovoj turi.

Spomenimo da postoji algoritam koji traˇzi optimalnu turu i koji se izvodi u polinomnom vremenu. Upotrijebimo Fleuryjev algoritam za pronalaˇzenje Eulerove ture u neu- smjerenom grafu. Evo algoritma koji koristi Kwanovu ideju da ”eulerizira” graf.

Algoritam 5.3 ULAZ: Graf G = (V, E). IZLAZ: Pseudograf G ′ = (V, E ′ )

1. Nadimo sve vrhove neparnog stupnja u grafu G.

2. Za svaki par vrhova neparnog stupnja nadimo put minimalne teˇzine, koji ih povezuje.

3. Uparimo sve takve parove na naˇcin da suma teˇzina puteva iz koraka 2 bude minimalna.

POGLAVLJE 5. TEORIJA GRAFOVA 213

4. U originalnom grafu, udvostruˇcimo puteve minimalne teˇzine nadene u koraku 3, tako da sada dobiveni graf nema vrhova neparnog stupnja.

5. Nadimo turu koja spaja svaki brid novog (Eulerovog) pseudografa. Algoritam podrazumijeva da originalni graf ima paran broj vrhova ne-

parnog reda. To je istina za svaki graf ( P v ∈V d(v) = 2ǫ). Ukoliko se radi o grafu s velikim brojem vrhova (primjer londonske podzemne ˇzeljeznice), ovaj algoritam zahtjeva mnogo vremena.

Primjer 5.10 Nadite zatvorenu minimalnu turu koja sadrˇzi sve bridove danog grafa.

Slika 5.11

1. Neparni vrhovi: A, B, C i D

2. Minimalne teˇzine puteva koji spajaju pojedine vrhove: AB 8, BC 8, AC 7, BD 7, AD 6, CD 5.

3. AB+CD 13; AC+BD 14; AD+BC 14

4. Ubacimo bridove AB i CD, koje ´ce optimalna Eulerova tura prelaziti dva puta.

5. Eulerova tura minimalne teˇzine je na primjer ABAEBCECDEDA. Teˇzina ture = duljina svih ulica + duljina ulica koje se ponavljaju =

5.8. STABLA

Pokazuje se da minimalna tura nikad ne prolazi bilo kojim bridom viˇse od dva puta (algoritam najviˇse udvostruˇcuje brid). Nekoliko godina nakon Kwanovog problema kineskog poˇstara u literaturi se pojavio sliˇcan problem koji se tumaˇci na usmjernom grafu (bridovi imaju naznaˇcene smjerove). Problem je nazvan problemom ˇcistaˇca ulica u New Yorku, jer je opisivao situaciju s kojom se suoˇcavaju ˇcistaˇci ulica u New Yorku, koje su uglavnom jednosmjerne.

Na kraju ponovimo uvjete pod kojima neusmjereni graf ima Eulerovu turu ili stazu i istaknimo uvjete koji moraju zadovoljiti usmjereni graf da bi imao Eulerovu turu i stazu.

Neusmjereni graf ima Eulerovu turu ako i samo ako je povezan i svaki vrh je parnog stupnja. Neusmjeren graf sadrˇzi Eulerovu stazu ako i samo ako je povezan i ako su svi, osim dva vrha, parnog stupnja. Ta dva vrha su poˇcetak i kraj puta. Usmjereni graf sadrˇzi Eulerovu turu ako i samo ako je povezan i svaki vrh ima jednak broj ulaznih i izlaznih lukova. Usmjereni graf sadrˇzi Eulerovu stazu ako i samo ako je povezan i svi, osim dva vrha, imaju jednak broj ulaznih i izlaznih lukova. Nadalje, kod ta dva vrha se broj ulaznih i izlaznih bridova razlikuje za jedan.

U usmjerenom grafu se za pronalaˇzenje Eulerove ture upotrebljava Ed- monds-Johnsonov algoritam (1973) (vidi [9]). Sluˇcaj usmjerenog grafa, primjene, kao i pseudokod algoritma moˇzete na´ci u [9].