Title: Usporedba%20heuristickih%20algoritama%20za%20rje
1Usporedba heuristickih algoritama za rješavanje
optimizacijskih problema
- Tomislav Novak
- voditelj doc.dr.sc. Domagoj Jakobovic
2Sadržaj
- heuristicki algoritmi
- penjanje uzbrdo
- simulirano kaljenje
- tabu pretraživanje
- genetski algoritam
- problem naprtnjace
- problem trgovackog putnika
- usporedba razlicitih implementacija
3Heuristicki algoritmi
- velikih broj problema za koje ne postoji
ucinkovito rješenje (klasa NP) - npr. problem trgovackog putnika
- heuristicki algoritmi najcešce daju dobra
rješenja u prihvatljivom vremenu, no ne može se
dokazati da ce uvijek biti tako - aproksimacijski algoritmi
4Heuristicki algoritmi
- optimizacijski problem uredena cetvorka (I, f,
m, g), gdje je - I skup instanci problema
- za instancu x iz skupa I, f(x) je skup mogucih
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)
5Penjanje uzbrdo
- pocetak slucajno 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
6Penjanje uzbrdo - primjer
7Penjanje uzbrdo - primjer
8Penjanje uzbrdo - primjer
- konacno, pronaden je optimum u tocki x 0
9Penjanje uzbrdo primjer
- primjer funkcije s dva ekstrema
10Penjanje uzbrdo primjer
- pronaden je lokalni ekstrem, koji u ovom slucaju
nije i globalni
11Simulirano kaljenje
- poboljšanje u odnosu na penjanje uzbrdo
- inspiracija proces kaljenja u metalurgiji
- mogucnost prelaska u lošije rješenje s odredenom
vjerojatnošcu, najcešce - parametri
- temperatura
- brzina hladenja a
12Simulirano kaljenje - pseudokod
13Tabu pretraživanje
- memorijska struktura (tabu lista) sadrži
rješenja koja nisu dopuštena - najcešce su to prethodno posjecena rješenja
(izbjegavanje ciklusa) - tzv. aspiracijski kriterij ukoliko je rješenje
bolje od trenutno najboljeg, ono se dopušta bez
obzira na tabu listu
14Genetski algoritam
- algoritam koji oponaša mehanizme prirodne
selekcije - jedinka potencijalno rješenje genom
racunalna reprezentacija jedinke (najcešce niz
nula i jedinica) - kroz niz generacija vrše se genetske operacije
selekcija, mutacija, rekombinacija
15Problem naprtnjace
- neka je S skup predmeta, a C kapacitet naprtnjace
- definira se
- težina predmeta w(x)
- vrijednost predmeta p(x)
16Problem naprtnjace
- cilj odabrati podskup P predmeta iz S tako da se
maksimizira - pod uvjetom da je
17Problem naprtnjace
- iscrpno pretraživanje O(2N)
- dinamicko programiranje O(NW), prostorne
složenosti O(W)
18Problem naprtnjace
- 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
19Problem naprtnjace rješenje tabu pretraživanjem
- tabu lista sadrži indekse predmeta koje nije
moguce dodavati ili uklanjati iz trenutnog
rješenja - u svakoj iteraciji radi se jedno od sljedeceg
- 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
20Problem naprtnjace rješenje tabu pretraživanjem
(primjer)
Težina Vrijednost
1. 3 5
2. 2 3
3. 2 3
21Problem naprtnjace usporedba rezultata
- tablica prikazuje prosjecan rezultat izvršavanja
heuristickih algoritama na problemu naprtnjace
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
22Problem trgovackog putnika
- u potpunom grafu G (V, E) traži se Hamiltonov
ciklus (ciklus koji prolazi svim vrhovima grafa)
najmanje duljine
23Problem trgovackog putnika
- iscrpna pretraga O(N!)
- dinamicko programiranje O(N22N)
24Problem trgovackog putnika
- rješenje oznacimo 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
25Problem trgovackog putnika
- pocetno rješenje pohlepnim algoritmom
- genetski algoritam križanje s jednom tockom
prekida nije moguce
26Problem trgovackog putnika usporedba rezultata
- tablica prikazuje prosjecan rezultat izvršavanja
penjanja uzbrdo i simuliranog kaljenja na
problemu trgovackog putnika
N opt. HC SA
4 12 12 12
4 195 195 195
6 179 179 179
6 223 252 223
10 172 228 174.2
20 207 305 239.4
27Zakljucak
- velik broj problema cije se optimalno rješenje ne
može pronaci u razumnom vremenu (npr. problem N
kraljica, ispitivanje izomorfnosti grafova, n-SAT
itd.) - zadovoljavajuce i ono rješenje koje je približno
jednako optimalnom - heuristicki algoritmi pametni nacin pretrage
prostora problema u ogranicenom vremenu
28Zakljucak
- kljucni dio konstrukcije algoritma definicija
zapisa rješenja - velik utjecaj parametara (npr. temperature kod
SA, velicine 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 iznenadujuce dobre rezultate
29Literatura
- T.H.Cormen, C.E.Leiserson, R.L.Rivest, C.Stein
Introduction to Algorithms, The MIT Press, 2001. - A. Nakic Heuristicki algoritmi za 0-1 problem
naprtnjace, http//e.math.hr/heuristicki/ - M. Golub Genetski algoritam, http//www.zemris.fe
r.hr/golub/ga/ga.html (10.3.2008.), Fakultet
elektrotehnike i racunarstva, 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_200
3/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/pro
jects/MSCI703_project.pdf (10.3.2008.) - CodeProject Genetic Algorithms and the Traveling
Salesman Problem, http//www.codeproject.com/KB/re
cipes/tspapp.aspx (10.3.2008.)