Tomislav Novak voditelj: doc.dr.sc. Domagoj Jakobović Usporedba heurističkih algoritama za rješavanje optimizacijskih problema Tomislav Novak voditelj: doc.dr.sc. Domagoj Jakobović
Sadržaj heuristički algoritmi problem naprtnjače 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(2N) dinamičko programiranje – O(N∙W), prostorne složenosti O(W)
Problem naprtnjače rješenje je predstavljeno vektorom x = (x1, x2,...,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.
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 100 10 2677 1594.8 2469.4 2546.2 20 2748 1940.2 2687.8 1000 30 2562 1452.5 2541 2538.8 2545 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(N2∙2N)
Problem trgovačkog putnika rješenje označimo vektorom v = (v1, v2, ..., 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 195 6 179 223 252 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 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/oldSite/IS/ (10.3.2008.) C. Nilsson: Heuristics for the Traveling Salesman Problem, http://www.ida.liu.se/~TDDB19/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/MSCI703_project.pdf (10.3.2008.) CodeProject: Genetic Algorithms and the Traveling Salesman Problem, http://www.codeproject.com/KB/recipes/tspapp.aspx (10.3.2008.)