290 likes | 514 Views
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
E N D
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 α
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 jedanj 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 – usporedba rezultata • tablica prikazuje prosječan rezultat izvršavanja heurističkih algoritama na problemu naprtnjače
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
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.)