Tomislav Novak voditelj: doc.dr.sc. Domagoj Jakobović

Slides:



Advertisements
Similar presentations
Programiranje kroz aplikacije
Advertisements

1.6. Pohrana podataka.
Programi zasnovani na prozorima
Uvod u programiranje - matematika – VI predavanje
Završni rad: Postupci za učenje asocijativnih pravila
PONAVLJANJE CheckBox Koristi se za rešavanje zadataka gde je potrebno omogućiti uključivanje ili isključivanje jedne ili više opcija. Važna svojstva: –Checked.
Algoritmi raspoređivanja
B+ stablo Ramakrishnan Raghu, Gehrke Johannes - Database Management Systems (2000)(2nd ed.)
Teorema o 4 boje(Four color theorem)
PROGRAMIRANJE MENIJA.
Liste.
The Present Perfect Continuous Tense
Upitni jezik SQL.
Podatkovni višemedijski prijenos i računalne mreže Speech Recognition
Petlje FOR - NEXT.
REPEAT…UNTIL Naredbe ciklusa.
Metoda zasnovana na rojevima čestica Particle Swarm Optimization - PSO
Komponente izbora i kontejnerske komponente
Uvod u HTML Zoltan Geller 2017
Klauzule GROUP BY i HAVING
Interkulturalni karakter prekogranične medijacije.
Europski dan programiranja
Izrada web-stranica.
Elektrotehnički fakultet – Podgorica Operativni sistemi
LAPLACEOVA TRANSFORMACIJA
Mere položaja z vrednost (ili statndardna vrednost)
Sveučilište u Splitu Medicinski fakultet
SUDOKU Ivo Doko Saša Buzov.
Page Layout Podešavanje stranica.
Element form Milena Kostadinović.
MessageBox.
predavanja v.as.mr. Samir Lemeš
(カックロ ) Ivo Ivanišević Ena Melvan
DISKRETNI DINAMIČKI SUSTAVI –LOGISTIČKI MODEL -KAOS-
Pojmovi digitalnog zapisa
PubMed Osnove pretraživanja Ana Utrobičić, prof.
Izranjajuća Inteligencija
PROGRAMSKI JEZIK PASCAL
PRAĆENJE STATISTIKE POSEĆENOSTI WEB-PREZENTACIJE
MATEMATIČKI FAKULTET, UNIVERZITET U BEOGRADU
Lazarus okruženje TIPOVI UNIT-a
Osnovni simboli jezika Pascal
FAKULTET KEMIJSKOG INŽENJERSTVA I TEHNOLOGIJE
Do While ... Loop struktura
Programiranje – Small Basic
Harmonijsko pretraživanje
Seminar iz predmeta Sustavi za praćenje i vođenje procesa
Strukture podataka i algoritmi 5. VRIJEME IZVRŠAVANJA ALGORITMA
Nizovi.
C++ WORKSHOP Šimec Tino - FOI.
SREĆA.
Analiza varijance prof. dr. sc. Nikola Šakić.
Autor: Marko Pletikosa Mentor: doc.dr.sc. Domagoj Jakobović
Naredbe u php-u.
Programski jezik C++ - Vježbe - 5. dio
Programski jezik Python
Priprema prezentacije
Kratkotrajne veze žena i muškaraca
Izranjajuća Inteligencija
LimeSurvey Uvjetni prikaz pitanja Internetska istraživanja
Pristupni rad KOMPARATIVNI POREZNI SUSTAVI
Podatkovni višemedijski prijenos i računalne mreže Speech Recognition
METODE MJERENJA U BIOMEHANICI JASNA LULIĆ DRENJAK,prof.
7. Baze podataka Postavke MS Accessa.
Ponavljanje Pisana provjera
Programiranje - Naredbe za kontrolu toka programa – 1. dio
INTERPOLACIJA PO DIJELOVIMA POLINOMIMA
Vježbenica 2: struktura grananja – 2.dio
Kako zaštititi privatnost na facebooku
Robot Robby „Growth creates complexity, which requires simplicity.” – A. Stanley.
Presentation transcript:

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.)