23
MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA 3. ČAS EKSTREMALNI PUTEVI U MREŽAMA Određivanje ekstremalnih puteva spada u jedan od najčće razmatranih problema u teoriji grafova. Najčća primena ovih problema je u oblasti saobraćaja i transporta, u oblasti komunikacija, telekomunikacija i informatike kao i u oblasti proizvodnje i drugih delatnosti. Problem određivanja ekstremalnih puteva u mreži je u velikoj meri uslovljen potrebama za rešavanje različitih praktičnih problema poput problema koji se sreću u oblasti transporta, gde se za kriterijume, pored „dužine“ grana date mreže, mogu uzeti i cene transporta, vreme transporta, utrošak goriva, bezbednost puta i dr. U okviru kursa MPIO rešavaćemo sledeće probleme određivanja ekstremalnih puteva u težiniskim grafovima i digrafovima (mrežama): 1. Određivanje ekstremalnog puta u datoj mreži između dva zadata čvora 2. Određivanje ektremalnih puteva između jednog ogdređenog i svih preostalih čvorova date mreže 3. Određivanje ektremalnih puteva između svaka dva čvora date mreže 4. Određivanje prvih K ekstremalnih puteva između dva zadata čvora date mreže 5. Određivanje ektremalnog puta između dva zadata čvora ali tako da prolazi kroz neke unapred zadate čvorove ili grane 6. Određivanje ektremalnog puta između dva zadata čvora, ali tako da put sadrži unapred određen broj grana ili čvorova. 7. Određivanje ekstremalnog puta po više različitih kriterijuma optimalnosti. Problemi se mogu posmatrati u slučajevima kada su dužine grana samo pozitivni ili pozitivni i negativni brojevi Najduže puteve je moguće odrediti određenim modifikacijama algoritma za određivanje najkraćih puteva Da bi se odredio ekstremalni put u datoj mreži potrebno je proveriti egzistenciju takvih puteva, odnosno definisati potrebne i dovoljne uslove za postojanje ekstremalnih puteva u mreži. Teorema: Da bi postojao najkraći put između dva čvora u mreži, potrebno je i dovoljno da je ta mreža konačna i povezana i da ne sadrži ni jednu (orijentisanu) konuturu negativne dužine, gde se pod pojmom kontura podrazumeva i petlja.

MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA

3. ČAS

EKSTREMALNI PUTEVI U MREŽAMA

• Određivanje ekstremalnih puteva spada u jedan od najčešće razmatranih problema u teoriji grafova. Najčešća primena ovih problema je u oblasti saobraćaja i transporta, u oblasti komunikacija, telekomunikacija i informatike kao i u oblasti proizvodnje i drugih delatnosti.

• Problem određivanja ekstremalnih puteva u mreži je u velikoj meri uslovljen potrebama za rešavanje različitih praktičnih problema poput problema koji se sreću u oblasti transporta, gde se za kriterijume, pored „dužine“ grana date mreže, mogu uzeti i cene transporta, vreme transporta, utrošak goriva, bezbednost puta i dr.

U okviru kursa MPIO rešavaćemo sledeće probleme određivanja ekstremalnih puteva u težiniskim grafovima i digrafovima (mrežama):

1. Određivanje ekstremalnog puta u datoj mreži između dva zadata čvora 2. Određivanje ektremalnih puteva između jednog ogdređenog i svih

preostalih čvorova date mreže 3. Određivanje ektremalnih puteva između svaka dva čvora date mreže 4. Određivanje prvih K ekstremalnih puteva između dva zadata čvora date

mreže 5. Određivanje ektremalnog puta između dva zadata čvora ali tako da

prolazi kroz neke unapred zadate čvorove ili grane 6. Određivanje ektremalnog puta između dva zadata čvora, ali tako da put

sadrži unapred određen broj grana ili čvorova. 7. Određivanje ekstremalnog puta po više različitih kriterijuma

optimalnosti.

• Problemi se mogu posmatrati u slučajevima kada su dužine grana samo pozitivni ili pozitivni i negativni brojevi

• Najduže puteve je moguće odrediti određenim modifikacijama algoritma za određivanje najkraćih puteva

• Da bi se odredio ekstremalni put u datoj mreži potrebno je proveriti egzistenciju takvih puteva, odnosno definisati potrebne i dovoljne uslove za postojanje ekstremalnih puteva u mreži.

Teorema: Da bi postojao najkraći put između dva čvora u mreži, potrebno je i dovoljno da je ta mreža konačna i povezana i da ne sadrži ni jednu (orijentisanu) konuturu negativne dužine, gde se pod pojmom kontura podrazumeva i petlja.

Page 2: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

Teorema: Ako najkraći put , između čvora s i t neke mreže, prelazi preko čvorova i i j, onda je deo tog puta , između čvorova i i j, takođe najkraći put između ova dva čvora.

*stp*ijp

Određivanje najkraćeg puta između dva zadata čvora u mreži

Neka je data mreža i neka je svakoj grani ( ,G N L= ) ( ),i j L∈ dodeljena veličina

koja uzima vrednosti 1 ako grana ijx ( ),i j pripada traženom najkraćem putu i

vrednost 0 ako grana ( ),i j ne pripada najkraćem putu. Problem nalaženja najkraćeg puta između čvorova s i t u datoj mreži se može odrediti rešavanjem sledećeg celobrojnog 0-1 programiranja:

minF (1)

( ),ij ij

i j LF c

= ∑ x

=

t≠

p.o. (2) 1sj jsj N j N

x x∈ ∈

−∑ ∑ (3) 0, , , ij ji

j N j Nx x i N i s i

∈ ∈

− = ∈ ≠∑ ∑ (4) 1ij jt

j N j Nx x

∈ ∈

− =∑ ∑ ( )0 1, ,ijx i j L= ∨ ∈ (5) Uslovi (2)-(5) predstavljaju sledeće: - uslov (2) obezbeđuje da iz čvora s izlazi samo jedna grana - uslov (4) obezbeđuje da u čvor t ulazi samo jedna grana - uslov (3) obezbeđuje neprekidnost puta (u svaki čvor , i j ,i s t s t≠ ≠ ulazi samo

po jedna i izlazi samo jedna grana) - uslov (5) obezbeđuje da svaka grana može ili da pripada najkraćem putu ili da mu

ne pripada • Dati problem se može rešiti korišćenjem metodama za rešavanje celobrojnog

programiranja, ali se sa povećanjem broja čvorova povećava i broj početnih ograničenja što dodatno usložnjava zadatak. U nastavku su izloženi algoritmi za određivanje najkraćeg puta između dva zadata čvora.

Page 3: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

Algoritam Dijkstra-e Algoritam Dijkstra-e je razvijen 1959. i smatra se jednim od najefikasnijih i najpogodnijih algoritama za određivanje najkraćeg puta između dva zadata čvora. Neophodan uslov za primenu ovog algoritma je da je dužina svake grane ijc ( ),i j L∈ nenegativna. Prva tri koraka određuju dužinu najkraćeg puta dok poslednji korak identifikuje traženi put Korak1: Svim čvorovima mreže dodeliti sledeće oznake: čvoru s dodeliti oznaku

koju ćemo smatrati nepromenljivom, a svim ostalim čvorovima, uključujući

i čvor t, dodeliti promenljive oznake ( ) 0d s+ =

( )d i− = −∞ a zatim preći na korak2. Korak2: Staviti s , a zatim odrediti skup čvorova i= ij A∈ sa promenljivim oznakama gde predstavlja skup čvorova sledbenika čvora i. Za takve čvorove j odrediti nove, takođe promenljive oznake na sledeći način:

iA

( ) ( ) ( ){ }min , ijd j d j d i c−= + (6) Od svih novodobijenih oznaka samo jedna oznaka je nepromenljiva i određuje se iz uslova ( ) ( ){ }mind j d j+ = (7) Dok su sve ostale promenljive. Nakon određivanja ovih oznaka preći na korak3. Korak3: Proveriti da li je čvor t označen nepromenljivom oznakom i u zavisnosti od toga postoje sledeće dve mogućnosti:

K 3.1: Čvor t je označen nepromenljivom oznakom , koja u stvari predstavlja dužinu traženog najkraćeg puta, pa se postupak obeležavanja čvorova završava i potrebno je preći na postupak izdvajanja najkraćeg pita, odnosno preći na korak4.

( )d t+

K 3.2: Čvor t nije označen nepromenljivom oznakom. Staviti da je i j= , gde je j čvor koji u prethodnom postupku dobio nepromenljivu oznaku

( )d j+ i vratiti se na korak3. Korak4: Ovim korakom se izdvaja najkraći put. Postupak počinjemo iz čvora t . U poslednjoj iteraciji čvoru t dodeljena je neporomenljiva oznaka dok su u prethodnim iteracijama preostalim čvorovima mreže

( )d t+

i N∈ dodeljene ili promenljive oznake ili nepromenljive oznake ( )d i− ( )d i+ . Od svih čvorova susednih čvoru t odredimo čvor kj sa nepromenljivom oznakom ( )kd j+ za koji je

( ) ( )d t dkk j tj c+ +− = . (8)

Vidimo da čvor kj sigurno postoji, jer se pomoću takvog čvora i određuje nepromenljiva oznaka čvora t. Isto tako je jasno da za sve ostale čvorove susedne

Page 4: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

čvoru t, koje možemo označiti sa i koji mogu imati promenljive ili nepromenljive oznake, važi

rq

rqc≤ d t . (9) ( ) ( )rd q+ − t

Ponavljanjem ovog postupka, to jest određivanjem čvora 1kj − , susednog čvoru kj , koji ima nepromenljivu oznaku ( 1kd )j+

− , za koji je

, (10) ( ) ( 1 k kk kd j d j c−

+ +−− =)

1

Na kraju se dolazi do čvora j j

1j , kome je susedni čvor s, i za koji je d ( ) ( )1 1sjj d s+ +− c= . (11) Sada smo dobili put koji ide preko čvorova 1 2 1, , ,..., , ,k ks j j j j t− . Sabiranjem relacija (8), (10) i (11) za sve čvorove na tom putu (vodimo računa o tome da je ) dobijamo da je dužina puta jednaka nepromenljivoj oznaci čvora t, to jest dobijamo da je dužina puta

( ) 0d s =

(12) ( )1 1 ksj j j j td t c c c+ = + +

2...+

Dobijeni put je i najkraći put između zadataih čvorova s i t. Primer: Koristeći algoritam Dijkstra-e naći najkraći put između čvorova i bilo kog drugog čvora date mreže.

1x

• Mreža može imati više najkraćih puteva između dva čvora i to se može uočiti u

toku same postavke algoritma (postoji više čvorova koji zadovoljavaju relaciju 7).

Page 5: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

Modifikacija algoritma Dijkstra-e • Prva dva koraka se spoje i prilikom određivanja oznaka čvorova pored svake

nepromenljive oznake se upisuje i indeks čvora na osnovu kojeg je, u prethodnom koraku, dobijena ta oznaka, onda se time može i rešiti i problem izdvajanja najkraćeg puta. Dakle, svaki čvor i j N j s∈ ≠ umesto ranije nepromenjene oznake ( )d j+ sada bi imao isto tako nepromenljivu, oznaku koja se, po konvenciji, može pisati na jedan od sledećih načina:

( ),i d j+⎡ ⎤⎣ ⎦ ili ( ) ,d j i+⎡ ⎤⎣ ⎦ ili ( ),i d j⎡ ⎤⎣ ⎦ ili ( ) ,d j i⎡ ⎤⎣ ⎦ . gde je i susedni čvoru j pomoću kojeg se, primenom relacije (7) određuje oznaka ( )d

čvorj+ . Na ovaj način bi čvor t dobio novu oznaku, recimo ( ) , kd t j⎡ ⎤⎣ ⎦ , što

znači da najkraći a t ide preko čvora kput do čvor j . Čvor je već ranije ozna

novom oznakom ( ) 1,k kd j j −⎡ ⎤⎣ ⎦ , što znači da najkraći put ide i preko čvora 1k

čen

j − . Produžavajući ovaj postupak na kraju se dolazi do čvora s. Ovim postupkom se problem izdvajanja najkraćeg puta jednostavno rešava, bez ikakvih dopunskih izračunavanja.

Page 6: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

Rešenje: Zadata mreža sa početnim oznakama je data na slici. Prelazimo na iterativni deo primene obeležja:

Page 7: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti
Page 8: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

PRIMER:

Page 9: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti
Page 10: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

Belman-ov algoritam - modifikovana verzija – pamte se indeksi čvorova kroz koji prolazi najkraći put Korak1: Staviti da je gde k predstavlja redni broj iteracije, i r a zatim odrediti skup R čvorova do kojih se može doći iz čvora r po nekoj grani. Čvorovima mreže dodeliti oznake:

1k = s=

( )( )( )

1

1

1

0 za

za

za i si

d r r s

d i c i R

d i i R i s

= =

= ∈

= ∞ ∉ ≠A zatim preći na korak2. Korak2: Neka su k-toj iteraciji svi čvorvi i N∈ označeni sa ( )k

ed i , gde je sa e označen

čvor na osnovu kojeg je određena oznaka ( )iked onda se u k+1-oj iteraciji oznake

menjaju i određuju iz sledećeg uslova:

( ) ( ) ( ){ }1 min ,mink k ke e hj

d i d i d j c+ij⎡ ⎤= +⎣ ⎦ (14)

gde je ij B R∈ ∩ a predstavlja skup čvorova koji prethode čvoru i, dok su sa g i h označeni čvorovi na osnovu kojih su određene oznake

iB( )1k

gd i+ i ( )khd j . Preći na

korak3. Korak3: K 3.1: Ako se za neko k n≤ (n broj čvorova digrafa) dobije da je za svako

, i N∈ ( ) (1k kg ed i d i+ = ) , tada je dužina najkraćeg traženog puta između

čvorova s i t određena, a ( )tkqd predstavlja dužinu tog puta, gde je sa q

označen broj čvora na osnovu kojeg je dobijena osznaka . Preći na korak4.

( )kqd t

K 3.2: Ako se za neko k n< dobije da je ( )1k

g ed i d i+ ≠ ( )k , samo za neke čvorove i , tada formiramo novi skup R na sledeći način: N∈

( ) ( ){ }1| k kg eR i d i d i+= ≠

A zatim stavimo da je k=k+1 i idemo na korak2.

K 3.3: Ako se za k=n dobije da je ( ) ( )1k kg ed i d i+ ≠ , samo za neke čvorove

, tada postoji kontura negativne dužine i ne postoji rešenje postavljenog problema, čime se algoritam završava. i N∈

Korak4: U ovom koraku se idfentifikuje najkraći put između zadatih čvorova s i t. Obzirom da je u prethodnom koraku određena veličina pored koje je upisan čvor q, na osnovu kojeg je izračunata, to znači da najkraći put do čvora t vodi preko čvora q . Čvor q je na osnovu neke od prethodnih iteracija takođe označen, i pored te oznake je upisan čvor na osnovu koga je izračunata ta oznaka, što znači da i taj čvor pripada

Page 11: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

najkraćem putu između čvorova s i t. Produžavajući postupak dobijamo niz čvorova koji čini najkraći put. • Bellman-ov algoritam predstavlja modifikaciju algoritma Dijkstra-e. • Ovim algoritmom se dobijea najkraći put od jednog do svih preostalih čvorova date

mreže. Primer:

Primer je uzet iz knjige Graph theory. PRIMER:

Rešenje:

Page 12: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti
Page 13: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

Određivanje najkraćih puteva između svaka dva čvora date mreže - Problem određivanja najkraćeg puta između svaka dva čvora date mreže može da

se reši primenom algoritma Dijkstra-e ili primernom Bellmanovog algoritma kroz n ponavljanja (n – broj čvorova mreže) ali bi tada broj računskih operacija bio veliki. Iz ovog razloga razvili su se neki drugi algoritmi, jedan od njih je Floyd-ov algoritam.

- Primenom Floyd-ovog algoritma mogu se odrediti samo dužine najkraćih puteva

između svih parova čvorova date mreže ali se ne dobijaju informacije o idetifikaciji puteva. Dakle, dobija se dužina najkraćeg puta ali ne i sam put.

- Modifikacijom Floyd-ovog algoritma dobijamo Floyd-Warshall-ov algoritam pomoću

koga se pored oderđivanja dužine najkraćeg puta identifikuje i sam put. - Koristimo sledeće oznake:

o Dužine puteva uzmeđu dva čvora su realni brojevi ( ), ,ijc i j L∈ o N 0, iic i= ∈

o ( ), ,ijc i j L= ∞ ∉

Page 14: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

Floyd-ov algoritam Korak1: Posmatramo matricu 0

ijC c 0⎡ ⎤= ⎣ ⎦ na sledeći način:

( )( )

0

0

0

,

,

0

ij ij

ij

ii

c c i j N

c i j L

c i N

= ∈

= ∞ ∉

= ∈

Na osnovu matrice formiramo zatim matricu 0 0ijC c⎡ ⎤= ⎣ ⎦

0ijD d0⎡ ⎤= ⎣ ⎦ čiji su elementi

0 0

0 0

0

ako je

0 ako je

0

ij ij

ij ij

ii

d j c

d c

d i N

= ≠

= =

= ∈

Preći na korak2. Korak2: Staviti da je k=1 (u opštem slučaju k=k+1) i odredtiti skupove čvorova I i J na sledeći način:

{ }{ }

0

0

| ,

| ,

ik

kj

I i i k c

J j j k c

= ≠ ≠ ∞

= ≠ ≠ ∞

a zatim za svako i i I∈ j J∈ izračunati elemente matrice pomoću sledeće relacije:

1kC +

{ }1, 1 1,min ,k k k

ij ij i k k jc c c c++ += + k

dok su svi preostali elememnti matrice 1kC + jednaki odgovarajućim elementima matrice . kCNa osnovu matrica 1kC + i određuju se i elementi matrice kC 1kD + na sledeći način

1 1

1 1

1 ako je

ako je

k kij ij ij

k k kij ij ij ij

d k c c

d d c

+ +

+ +

k

kc

= + ≠

= =+ +

Postupak određivanja matrica 1 1k kijC c⎡ ⎤= ⎣ ⎦ i 1k k

ijD d+ 1+⎡ ⎤= ⎣ ⎦ se završava. Prelazi se na korak3. Korak3: Proveriti da li je k a zatim preći na korake K 3.1-K 3.3. n≤ K 3.1: Ako se za neko k n< i ako su svi 1 0k

ic ≤ staviti da je k=k+1 i ići na korak 2. K 3.2: Ako se za bilo koje k n≤ dobije da je 0k

iic < , to znači da postoji kontura negativne dužine koja sadrži čvor i. Ako se ovaj slučaj dogodi sledi da rešenje ne postoji i algoritam se završava.

K 3.3: Ako se ustanovi da je k=n i da su svi , tada se proces izračunavanja i određivanja elemenata matrice i završava, a elementi n , matrice nC predstavljaju tražene dužine najkraćih puteva

0niic >

KC KDijc

Page 15: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

između svaka dva čvora date mreže, dok se na osnovu elemenata

matrice vrši indentifikacija tih puteva pto se obavlja u koraku br4.

nijd

nijd

nD

C

Korak4: U ovom koraku se identifikuje najkraće puteve između čvorova i i j čije su dužine date u matrici : n

U posebnu tabelu upišemo broj jednak indeksu j a zatim uočimo elemenat

matrice . Neka je taj elemenat jednak nekom broju . Ovaj broj upišemo u tabelu ispred broja jednakog indeksu j, a zatim proveravamo da li je broj jednak indeksu i. U zavisnosti od toga imamo dve mogućnosti:

nD 1s

1s

K 4.1: Ako je tada je postupak identifikacije najkraćeg puta između čvorova i i j završen, a čvorovi preko kojih ide taj put su dati u tabeli i time se algoritam završava.

1s = i

i

K 4.2: Ako je onda uočimo elemenat , matrice , i neka je taj elemenat jednak nekom broju a zatim proveravamo da li je taj broj jednak indeksu i ili nekom od ranije upisanih brojeva u tabeli. U zavisnosti od ove provere razlikujemo sledeće mogućnosti:

1s ≠11

nsd nD

2s

K 4.2.1: Ako je onda se upisuje u tabelu ispred broja I dalje se

posupa kao u slučaju opisanom u kopraku K4.1. 2s

K 4.2.2: Ako je jednak bilo kome od ranije upisanih brojeva u

tabeli, onda se u tabelu ispred broja upisuje broj jednak indeksu i , a dalje identifikacija najkraćeg puta je ista kao u koraku K4.1.

2s

1s

K 4.2.3: Ako je broj različit i od indeksa i i od svih brojeva

ranije upisanih u tabelu, onda uočimo elemenat matrice . Neka je

taj elemenat jednak broju . Proverimo da li je broj jednak indeksu i ili nekom od ranije upisanih brojeva i u zavisnosti od te provere koristi se neka od mogućnosti opisana u koracima K 4.2.1, K4.2.2 i K 4.2.3.

2s

21nsd nD

3s 3s

Korak 4.2.3. se ponavlja se dok ne nastupi situacija iz koraka 4.2.1 ili 4.2.2 kada se posupak identifikacije najkraćeg puta između čvorova i i j završava a brojevi upisani u tabelu predstavljaju oznake (idekse) čvorova preko kojih ide najkraći put sa dužinom ijp ( ) n

ij ijd p c= . Ovaj postupak identifikacije najkraćih puteva može se izvesti za svako i svako i N∈j N∈ i na taj način mogu se identifikovati najkraći putevi između svaka dva čvora i i j date mreže.

Page 16: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

PRIMER:

Rešenje:

Page 17: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti
Page 18: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti
Page 19: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

PRIMER:

Rešenje:

Page 20: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

Poslednja matrica je rešenje zadatka.

Page 21: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

Određivanje k najkraćih puteva u mreži - Pored problema nalaženja najkraćeg puta između dva čvora, rešavamo problem

nalaženja i alternativnih rešenja (npr. Kod transportnog problema je privremeno zatvoren deo puta za saobraćaj, pa je potrebna rekalkulacija maršute i nalaženje novog najkraćeg puta).

- Možemo posebno da posmatramo probelem nalaženja K najkraćih puteva između konkretno jednog čvora i svih preostalih čvorova u mreži ili nekih određenih čvorova umreži, zatim nalaženje K najkraćih puteva između dva zadata lvora ili između svaka dva čvora u mreži.

- Postoji više različitih algortiama za rešavanje navedenih problema, neki od njih su algoritam Hoffmano-a i Pavley-a (algoritam nalazi drugi najkraći put), zatim algoritam Bellmana-a i Kalaba-e (algoritam se koristi za nalaženje drugog i trećeg najkraćeg puta), a najpogodniji je algoritam Yen-a koji se koristi za nalaženje K najkraćih puteva.

Algoritam Yen-a Korak1: Staviti da je k=1 i primenom nekog od poznatih algoritama odrediti najkraći put između čvorova s i t date mreže, a zatim:

K 1.1: Ako je jedini najkraći put između čvorova s i t upisati ga u listu I. Staviti da je k=k+1 i preći na Korak2.

kp

K 1.2: Ako postoji više, npr. najkraćih puteva između čvorova s i t tada:

1 2, ,...,k kgp p p k

k

1q −

1

K 1.2.1: Ako je g<K, bilo koji od puteva upisati u listu I a zatim staviti da je k=k+1 i preći na Korak2.

1 2, ,...,k kgp p p

K 1.2.2: Ako je , tada bilo koji od K puteva upisati u listu I čime je postavljeni problem rešen i algoritam se završava.

g K≥

Korak2: Za svako se određuju sve devijacije u odnosu na najkraći put . Postupak se izvodi na sledeći način:

1 12 ,3 ,...,k k ki − −= 1kp

1kp −

K 2.1: Ispitati da li se prvi deo puta poklapa sa bilo kojim od puteva

. Ako se to ustanovi za neki čvor i, koji pripada putu

kiv

1 2, ,..., ki i iv v v − 1kp − , uneti

sledeće promene: ( )1, za bilo koje 1,2,..., 1k rc i j r k− = ∞ = − (*)

gde ( 1,k rc i )j− predstavlja dužinu grane ( )1,k ri j− . Čvor je bilo koji čvor na

najkraćem putu , a čvorovi

1ki −

1kp − rj , za 1,2,...,r 1k= − predstavljaju neposredno sledeće čvorove čvorovima 1 2 1, ,i i ..., ki − na svim prethodno odrešenim najkraćim

Page 22: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

putevima . Time promene (*) obezebeđuju da se na kraju dobijena devijacija bude devijacija u odnosu na sve puteve

1 2, ,..., kp p p −

kip

1

11 2, ,..., kp p p − istovremeno. Dužine svih preostalih grana ostaviti nepromenjene i preći na korak K 2.2.

ijc

K 2.2: Primenom nekog od algoritama za određivanje najkraćeg puta između dva čvora, odrediti najkraći put između čvorova 1ki − i t i označiti ga sa . Ako postoji više, recimo r najkraćih puteva između čvorova i t i onda sve ove puteve označiti sa i preći na korak K 2.3.

kiz

1ki −

1 2,...,

r

k kiz k,i iz z

ki

Put ne može da sadrži ni jedan od čvorova koji se nalaze na najkraćem putu

i prethode čvoru jer bi se u tom slučaju kao najkraći put dobio put sa petljom što je nemoguće.

kiz

1kp − 1−

K 2.3: Formirati prvi deo puta

( )1 11 ,2 ,iv s i 1k...,kk k− − −= =

i spojiti ga sa drugim delom , odnosno putevima z z ako ih ima

više. Na taj način se fomira put

kiz

1 2, ,...,

r

k ki i

kiz

( )1 1,2ip s 1,..., , ,...,k k ki1k k ,kj q t− −= = − odnosno

putevi koje ćemo upisati u II listu i preći na korak K 2.4. 1 2

, ,...,r

k k ki i ip p p

K 2.4: Svim granama koje su u koraku K 2.1. dobile dužinu jednaku ∞ , vratiti njihove početne dužine i vratiti se na korak 2.1. Ovaj postupak (čine ga koraci K2.1-K 2.4) ponavljati sve dok se ne pretraže svi čvorovi na najkraćem putu

1k− čime se završava i proces određivanja svih devijacija k a zatim preći na korak3. p ip

Korak3: Od svih devijacija , određenih u prethodnim koracima algoritma upisanih u listu II, treba pronaći najkraću devijaciju to jest treba odrediti najkraći put k i prebaciti ga u slitu I, pri čemu postoje dve mogućnosti :

kip

p K 3.1: Ako je k=K tada se u listi I nalazi tačno K najkraćih puteva. Dakle, početni problem je rešen i algoritam se završava K 3.2: Ako je k<K , staviti da je k=k+1 i preći na korak 2. K 3.3: Ako se u listi II nalazi više, recimo h najkraćih puteva, tada: K 3.3.1: Ako je k+h<K, samo jedan od ovih puteva prebaciti u listu

I, a zatim staviti da je k=k+1 i vratiti se na prethodni korak. K 3.3.2: Ako je k h K+ ≥ onda K-k puteva prebaciti u listu I. Dati

problem je rešen i algoritam se završava, a traženo rešenje se nalazi u listi I.

Page 23: MATEMATIČKO PROGRAMIRANJE I OPTIMIZACIJA - math.rsnalaženje_najkraćeg_rastojanja_u_grafu).pdf · pozitivni ili pozitivni i negativni brojevi • Najduže puteve je moguće odrediti

PRIMER:

Rešenje: