ANALIZA TRANSPORTNIH MREŽA PREDAVANJE VII 1
PREDAVANJE VII Problem trgovačkog putnika Računarska složenost i kvalitet algoritama za rešavanje problema trgovačkog putnika Heuristički algoritmi za rešavanje problema trgovačkog putnika Proždrljivi (Greedy) heuristički algoritmi Algoritam najbližeg suseda za konstrukciju rute trgovačkog putnika Algoritam najbližeg ubacivanja za konstrukciju rute trgovačkog putnika 2
1. Problem trgovačkog putnika Pretpostavimo da trgovački putnik želi da obidje izvestan broj gradova. Kojim redosledom trgovački putnik treba da obilazi gradove, tako da svaki grad obidje jedanput, da se po obilasku svih gradova vrati upočetnigrad i da pri tome predje najmanje moguće rastojanje? Naznačeni problem poznat je u literaturi kao problem trgovačkog putnika. 3
1. Problem trgovačkog putnika Neka trgovački putnik treba da obiñe n gradova. Kada zeli da napusti početni čvor trgovački put se susreće sa dilemom u koji od (n-1) gradova da se uputi. U sledećem koraku trgovački putnik treba da se odluči za jedan od preostalih (n-2) gradova, i td. Ukupan broj različitih ruta koje može da generiše trgovački putnik je jednak (n-1)!/2 4
1. Problem trgovačkog putnika Sa problemom trgovačkog putnika susrećemo se pri vršenju distribucije, sakupljanja ili neke druge opsluge na transportnoj mreži. Pod trgovačkim putnikom mogu da se podrazumevaju avioni, brodovi, kamioni, autobusi, posade itd. U čvorovima koje posećuju saobraćajna sredstva mogu se isporučivati ili preuzimati roba ili putnici itd. 5
1. Problem trgovačkog putnika Dantzig, Fulkerson i Johnson su 1954 godine rešili problem trgovačkog putnika koji je imao 49 gradova. Pedeset godina kasnije (2004 godine), D. Applegate, R. Bixby, V. Chvátal, W. Cook i K. Helsgaun su uspeli da reše problem trgovačkog putnika sa 24978 gradova. 6
1. Problem trgovačkog putnika Problem TP je jedan od najznačajnijih problema kombinatorne optimizacije. Problem kombinatorne optimizacije podrazumeva nalaženje minimuma funkcije f na skupu S, tj.: min x S f ( x gde je S diskretan, konačan ili prebrojivo beskonačan skup. Skup S se naziva dopustivim skupom, funkcija f kriterijumskom funkcijom, a tačke x dopustivim rešenjima. ) 7
1. Problem trgovačkog putnika Razmotrimo asimetrični problem TP-a (U asimetričnom problemu TP-a rastojanje d(i,j) izmeñu čvorova i i j je različito od rastojanja d(j,i)). Neka je broj gradova koje treba da poseti TP jednak m. Redosled kojim TP obilazi gradove naziva se rutom trgovačkog putnika. Prilikom konstruisanja rute TP neophodno je sprečiti stvaranje ciklusa koji ne predstavljaju potpunu rutu TP-a. 8
1. Problem trgovačkog putnika Uvedimo u razmatranje promenljivu x ij koju ćemo definisati na sledeći način: xij = 1 0 ukoliko grana ( i, j) u sup rotnom slucaju pripadaoptimalnoj turi trgovackog putnika 9
1. Problem trgovačkog putnika Minimizirati m m i = 1 j = 1 d ij x ij pri ograničenjima: m j= 1 xij = 1 i = 1,2,..., m m i= 1 xij = 1 j = 1,2,..., m 10
1. Problem trgovačkog putnika i S, j S { 1,2 m} xij S 1 S,..., = 0 ili 1 i, xij j gde je S bilo koji podskup gradova 1,2,,m. 11
1. Problem trgovačkog putnika Prva dva ograničenja vode računa o kretanju TP-a i ukazuju da iz svakog čvora koji poseti TP može da izlazi samo jedna grana, odnosno da u svaki čvor u ruti TP-a moze da dolazi samo jedna grana. Ograničenje { } xij S 1 S 1,2,..., m sprečavai S, stvaranje j S ciklusa koji ne predstavljaju potpunu rutu TP. 12
2. Računarska složenost i kvalitet algoritama za rešavanje problema trgovačkog putnika Sve algoritme kojima se rešavaju problemi kombinatorne optimizacije možemo u osnovi podeliti na egzaktne i heurističke. Uz pretpostavku da imamo na raspolaganju dovoljno računarskog vremena, primenom nekog od egzaktnih algoritama dobićemo uvek optimalno rešenje. 13
2. Računarska složenost i kvalitet algoritama za rešavanje problema trgovačkog putnika Naziv heuristički ima koren u grčkoj reči (`ευρισκω) koja znači otkriti ili pronaći. Heuristički algoritam podrazumeva pronalaženje metoda koji će da u okviru prihvatljivog vremena rada računara proizvede dobro rešenje blisko optimalnom. 14
2. Računarska složenost i kvalitet algoritama za rešavanje problema trgovačkog putnika Heuristički algoritmi se primenjuju za rešavanje problema u slučajevima kada bi, zbog dimenzija problema, egzaktni algoritam doveo do eksponencijalnog vremena rada računara. Ukoliko, na primer, u razmatranom problemu imamo 1000 binarnih promenljivih (koje mogu da uzmu vrednost 0 ili 1), ukupan broj svih mogućih resenja je jednak. 2 1000 15
2. Računarska složenost i kvalitet algoritama za rešavanje problema trgovačkog putnika U odreñenim situacijama troškovi korišćenja egzaktnog algoritma znatno veći od potencijalnih koristi od iznalaženja optimalnog rešenja. Samim tim, u ovakvim situacijama istraživači koriste različite heurističke algoritme. 16
2. Računarska složenost i kvalitet algoritama za rešavanje problema trgovačkog putnika Neka je, na primer, broj čvorova u odrñenoj mreži jednak n. Broj čvorova n je najčešći reprezentant dimenzija razmatranog problema. Pretpostavimo da je ukupan broj elementarnih operacija E, koje je potrebno obaviti prilikom primene odreñenog algoritma jednak: 4 3 E = 4 n + 5 n + 2 n + 7 17
2. Računarska složenost i kvalitet algoritama za rešavanje problema trgovačkog putnika Za veće vrednosti n najveći uticaj na ukupan broj elementarnih operacija ima n 4. Računarska složenost algoritma je proporcionalna n 4, odnosno da je algoritam O(n 4 ) (čita se kao o od n na četvrti ). Uz pretpostavku da svaka elementarna operacija zahteva jednu jedinicu vremena možemo da kažemo da algoritam zahteva O(n 4 ) vremena. 18
2. Računarska složenost i kvalitet algoritama za rešavanje problema trgovačkog putnika Pod lošim algoritmima podrazumevaju se eksponencijalni (ne-polinomijalni) algoritmi. (algoritmi koji zahtevaju O(3 n ) ili O(n!) vremena). Kvalitet generisanih rešenja i vreme rada računara predstavljaju dva dominantna kriterijuma na osnovu kojih se vrednuju svi heuristički algoritmi. 19
3. Heuristički algoritmi za rešavanje problema trgovačkog putnika Trgovački putnik koji započinje i završava svoju turu u odredjenom čvoru, mora da poseti n-1 čvor. Transportna mreža koja povezuje ovih n čvorova je potpuno povezana. Drugim rečima, u ovoj mreži je moguće iz svakog čvora stići u bilo koji čvor, direktno bez prolaženja kroz ostale čvorove. Najkraća rastojanja izmedju pojedinih čvorova jednaka su dužini grana izmedju tih čvorova. 20
3. Heuristicki algoritmi zasnovani na slučajnom izboru Korak 1: Proizvoljno odabrati početni čvor rute. Korak 2: Na slučajan način odabrati sledeći čvor i uključiti ga u rutu. Korak 3: Ponavljti korak 2 sve dok se svi čvorovi ne uključe u rutu. Spojiti prvi i poslednji čvor rute. 21
3. Heuristicki algoritmi zasnovani na slučajnom izboru
4. Proždrljivi (Greedy) heuristički algoritmi Proždrljivi (Greedy) algoritmi generišu rešenje uočenog problema u proceduri korak po korak. U svakom koraku greedy algoritama se jednoj od promenljivih dodeljuje vrednost. 23
4. Proždrljivi (Greedy) heuristički algoritmi Ovi algoritmi biraju u svakom koraku odgovarajuću promenljivu i odgovarajuću vrednost tako da maksimalno moguće u okviru tog koraka povećaju (u problemima maksimizacije), odnosno smanje (u problemima minimizacije) trenutnu vrednost definisane kriterijumske funkcije. 24
5. Algoritam najbližeg suseda za konstrukciju rute trgovačkog putnika KORAK 1: Proizvoljno odabrati početni čvor rute. KORAK 2: Pronaći čvor najbliži poslednjem čvoru uključenom u rutu. Ovaj najbliži čvor uključiti u rutu. KORAK 3: Ponavljti korak 2 sve dok se svi čvorovi ne uključe u rutu. Spojiti prvi i poslednji čvor rute. 25
Primer: Odrediti rutu TP primenom algoritma najbližeg suseda 3 2 1 7 4 5 6 26
Primer: Odrediti rutu TP primenom algoritma najbližeg suseda Matrica rastojanja: 1 2 3 4 5 6 7 1 0 75 135 165 135 180 90 2 75 0 90 105 135 210 150 3 135 90 0 150 210 300 210 4 165 105 150 0 135 210 210 5 135 135 210 135 0 90 105 6 180 210 300 210 90 0 120 7 90 150 210 210 105 120 0 27
Primer: Odrediti rutu TP primenom algoritma najbližeg suseda 3 2 1 7 4 5 6 28
6. Algoritam ubacivanja za konstrukciju rute trgovačkog putnika Rosenkrantz, Stearns i Lewis (1977) su razvili veći broj heurističkih algoritama za rešavanje problema trgovačkog putnika. U k-tom prolazu algoritma ubacivanja ovi autori su razmatrali delimičnu rutu trgovačkog putnika sastavljenu od k čvorova i odredjivali sledeći čvor koji treba ubaciti u rutu i poziciju u ruti gde ovaj čvor treba da bude ubačen. 29
6. Algoritam ubacivanja za konstrukciju rute trgovačkog putnika KORAK 1: Konstruisati podgraf koji se sastoji samo od čvora i. KORAK 2: Naći čvor k za koji je veličina c ik najmanja (c ik predstavlja rastojanje izmeñu čvora i i čvora k). Drugim rečima, pronaći čvor k najbliži čvoru i. Formirati delimičnu rutu trgovačkog putnika. Ova ruta glasi (i, k, i). 30
6. Algoritam ubacivanja za konstrukciju rute trgovačkog putnika KORAK 3: Pronaći čvor k koji nije uključen u delimičnu rutu trgovačkog putnika koji je najbliži delimičnoj ruti. (Čvor je najbliži delimičnoj ruti ukoliko je rastojanje izmeñu njega i njemu najbližeg čvora već uključenog u rutu manje od bilo kog rastojanja izmedju čvorova koji nisu uključeni u rutu i njima najbližih čvorova uključenih u rutu). 31
6. Algoritam ubacivanja za konstrukciju rute trgovačkog putnika KORAK 4: Pronaći granu (i, j) koja je deo delimične rute za koju je najmanja vrednost veličine c ik + c kj - c ij. Ubaciti čvor k izmedju čvorova i i j. KORAK 5:Završiti sa algoritmom kada su svi čvorovi uključeni u rutu. U slučaju da postoji još čvorova koji nisu uključeni u rutu trgovačkog putnika vratiti se na korak 3.
Primer: Odrediti rutu TP primenom algoritma najbližeg ubacivanja 5 6 2 1 3 4 14 30 20 14 58 54 28 30 58 28 20 54 33
Primer: Odrediti rutu TP primenom algoritma najbližeg ubacivanja 6 5 1 2 4 14 30 20 14 58 54 28 30 58 28 20 54 3 Delimična ruta (1, 2, 1) 34
Primer: Odrediti rutu TP primenom algoritma najbližeg ubacivanja Posmatra se čvor najbliži čvorovima 1 i 2. 3 - min {, } = sledi 3-2 4 - min {, } = sledi 4-1(2) 5 - min {30, } = 30 sledi 5-1 6 - min {20, } = 20 sledi 6-1 14 30 20 14 58 54 28 30 58 28 20 54 min {,,30,20} = 20 sledi da je sledeći čvor koji se ubacuje u rutu čvor 6. 35
Primer: Odrediti rutu TP primenom algoritma najbližeg ubacivanja 6 5 1 2 4 14 30 20 14 58 54 28 30 58 28 20 54 3 Delimična ruta (1,2,6,1). Ovde se bira proizvoljan smer, tj. moguće je i (1,6,2,1).
Primer: Odrediti rutu TP primenom algoritma najbližeg ubacivanja Posmatra se čvor najbliži čvorovima 1,2 i 6. 3 - min {,,54} = sledi 3-2 4 - min {,,} = sledi 4-1(2) 5 - min {30,,} = 30 sledi 5-1 14 30 20 14 58 54 28 30 58 28 20 54 min {,,30} =, sledi da je sledeći čvor koji se ubacuje u rutu čvor 3. 37
Primer: Odrediti rutu TP primenom algoritma najbližeg ubacivanja (1,2,6,1) C ik 3 + C kj C ij = C 13 + C C 12 = + 14 = 44 C 23 + C C 26 = + 54 = 44 14 30 20 14 58 54 28 30 58 28 20 54 C 63 + C 31 C 61 = 54 + 53 20 = 70 min {44,44,70} = 44, sledi da se uključuje izmeñu čvorova 1 i 2. 38
Primer: Odrediti rutu TP primenom algoritma najbližeg ubacivanja 6 5 1 2 4 14 30 20 14 58 54 28 30 58 28 20 54 3 Nova delimična ruta (1,3,2,6,1) 39
Primer: Odrediti rutu TP primenom algoritma najbližeg ubacivanja 6 5 1 2 4 14 30 20 14 58 54 28 30 58 28 20 54 3 Konačna ruta (1,5,4,3,2,6,1) 40