Usporedba heuristikih algoritama za rjeavanje optimizacijskih problema Tomislav
Usporedba heurističkih algoritama za rješavanje optimizacijskih problema Tomislav Novak voditelj: doc. dr. sc. Domagoj Jakobović
Sadržaj • heuristički algoritmi ▫ ▫ penjanje uzbrdo simulirano kaljenje tabu pretraživanje genetski algoritam • problem naprtnjače • problem trgovačkog putnika • usporedba različitih implementacija
Heuristički algoritmi • velikih broj problema za koje ne postoji učinkovito rješenje (klasa NP) • npr. problem trgovačkog putnika • heuristički algoritmi – najčešće daju dobra rješenja u prihvatljivom vremenu, no ne može se dokazati da će uvijek biti tako • aproksimacijski algoritmi
Heuristički algoritmi • optimizacijski problem – uređena četvorka (I, f, m, g), gdje je ▫ I skup instanci problema ▫ za instancu x iz skupa I, f(x) je skup mogućih rješenja (prostor rješenja) ▫ za instancu x i rješenje y iz skupa f(x), m(x, y) je mjera tog rješenja ▫ g je funkcija cilja (min ili max) • susjedstvo rješenja, N(y)
Penjanje uzbrdo • početak: slučajno odabrano rješenje problema y • u svakoj iteraciji to se rješenje poboljšava – zamjenjuje se s najboljim y’ iz N(y) • primjer: pronalaženja maksimuma funkcije
Penjanje uzbrdo - primjer • početno rješenje x = -2
Penjanje uzbrdo - primjer • prelazak u točku x = -1
Penjanje uzbrdo - primjer • konačno, pronađen je optimum u točki x = 0
Penjanje uzbrdo – primjer • primjer funkcije s dva ekstrema
Penjanje uzbrdo – primjer • pronađen je lokalni ekstrem, koji u ovom slučaju nije i globalni
Simulirano kaljenje • poboljšanje u odnosu na penjanje uzbrdo • inspiracija: proces kaljenja u metalurgiji • mogućnost prelaska u lošije rješenje s određenom vjerojatnošću, najčešće • parametri: ▫ temperatura ▫ brzina hlađenja α
Simulirano kaljenje - pseudokod
Tabu pretraživanje • memorijska struktura (tabu lista) – sadrži rješenja koja nisu dopuštena • najčešće su to prethodno posjećena rješenja (izbjegavanje ciklusa) • tzv. aspiracijski kriterij – ukoliko je rješenje bolje od trenutno najboljeg, ono se dopušta bez obzira na tabu listu
Genetski algoritam • algoritam koji oponaša mehanizme prirodne selekcije • jedinka – potencijalno rješenje; genom – računalna reprezentacija jedinke (najčešće niz nula i jedinica) • kroz niz generacija vrše se genetske operacije – selekcija, mutacija, rekombinacija
Problem naprtnjače • neka je S skup predmeta, a C kapacitet naprtnjače • definira se: ▫ težina predmeta: w(x) ▫ vrijednost predmeta: p(x)
Problem naprtnjače • cilj: odabrati podskup P predmeta iz S tako da se maksimizira pod uvjetom da je
Problem naprtnjače • iscrpno pretraživanje – O(2 N) • dinamičko programiranje – O(N∙W), prostorne složenosti O(W)
Problem naprtnjače • rješenje je predstavljeno vektorom x = (x 1, x 2, . . . , xn) • xi jednako je jedinici ukoliko je u rješenju sadržan predmet s indeksom i • rješenja x i x’ su susjedna ako postoji samo jedan j takav da je xj ≠ xj’
Problem naprtnjače – rješenje tabu pretraživanjem • tabu lista sadrži indekse predmeta koje nije moguće dodavati ili uklanjati iz trenutnog rješenja • u svakoj iteraciji radi se jedno od sljedećeg: ▫ odabire se onaj indeks j koji nije na tabu listi, za koji je xj = 0 te je omjer pj/wj maksimalan; xj se postavi na 1 ▫ u protivnom, odabire se indeks j takav da je xj = 1, a pj/wj minimalno; xj se postavi na 0
Problem naprtnjače – rješenje tabu pretraživanjem (primjer) Težina Vrijednost 1. 3 5 2. 2 3 3. 2 3
Problem naprtnjače – usporedba rezultata • tablica prikazuje prosječan rezultat izvršavanja heurističkih algoritama na problemu naprtnjače W N opt. HC SA TS GA 4 3 6 5. 7 6 6 6 100 10 2677 1594. 8 2677 2469. 4 2546. 2 100 20 2748 1940. 2 2748 2687. 8 2748 1000 30 2562 1452. 5 2541 2538. 8 2545 1000 50 4533 2392. 9 4293. 4 4335. 6 4358. 8
Problem trgovačkog putnika • u potpunom grafu G = (V, E) traži se Hamiltonov ciklus (ciklus koji prolazi svim vrhovima grafa) najmanje duljine
Problem trgovačkog putnika • iscrpna pretraga – O(N!) • dinamičko programiranje – O(N 2∙ 2 N)
Problem trgovačkog putnika • rješenje označimo vektorom v = (v 1, v 2, . . . , vn) koji predstavlja redosljed obilaska vrhova • susjedno rješenje v’ je svako rješenje koje se može dobiti iz v odabirom bilo koja dva vrha te zamjenom redosljeda obilaska ta dva vrha • dobrota rješenja – duljina puta
Problem trgovačkog putnika • početno rješenje – pohlepnim algoritmom • genetski algoritam – križanje s jednom točkom prekida nije moguće
Problem trgovačkog putnika – usporedba rezultata • tablica prikazuje prosječan rezultat izvršavanja penjanja uzbrdo i simuliranog kaljenja na problemu trgovačkog putnika N opt. HC SA 4 12 12 12 4 195 195 6 179 179 6 223 252 223 10 172 228 174. 2 20 207 305 239. 4
Zaključak • velik broj problema čije se optimalno rješenje ne može pronaći u razumnom vremenu (npr. problem N kraljica, ispitivanje izomorfnosti grafova, n-SAT itd. ) • zadovoljavajuće i ono rješenje koje je približno jednako optimalnom • heuristički algoritmi – pametni način pretrage prostora problema u ograničenom vremenu
Zaključak • ključni dio konstrukcije algoritma: definicija zapisa rješenja • velik utjecaj parametara (npr. temperature kod SA, veličine tabu liste kod TS itd. ), koji se podešavaju ovisno o instanci problema • primjenjivost na velikom broju optimizacijskih problema • uz dobru implementaciju i zapis rješenja mogu dati iznenađujuće dobre rezultate
Literatura 1. 2. 3. 4. 5. 6. 7. T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein: Introduction to Algorithms, The MIT Press, 2001. A. Nakić: Heuristički algoritmi za 0 -1 problem naprtnjače, http: //e. math. hr/heuristicki/ M. Golub: Genetski algoritam, http: //www. zemris. fer. hr/~golub/ga/ga. html (10. 3. 2008. ), Fakultet elektrotehnike i računarstva, 2004. J. S. Cameron: An Overview Of Artificial Life With A Focus On Gen etic Algorithm And Genetic Programming, http: //www. alesdar. org/old. Site/IS/ (10. 3. 2008. ) C. Nilsson: Heuristics for the Traveling Salesman Problem, http: //www. ida. liu. se/~TDDB 19/reports_2003/htsp. pdf (10. 3. 2008. ) S. Jayaswal: A Comparative Study of Tabu Search and Simulated Annealing for Traveling Salesman Problem, http: //www. eng. uwaterloo. ca/~sjayaswa/projects/MSCI 703_project. pdf (10. 3. 2008. ) Code. Project: Genetic Algorithms and the Traveling Salesman Problem, http: //www. codeproject. com/KB/recipes/tspapp. aspx (10. 3. 2008. )
- Slides: 29