Univerzitet u Beogradu Matematički fakultet Individualni seminarski rad Metaheuristike - upoređivanje algoritma optimizacije mravljim kolonijama (ACO) sa algoritmom optimizacije rojevima čestica(pco) Student: Stanković Nikola, 1033/2012 Predmet: Nastavnik: O12 Metodologija stručnog i naučnog rada dr Vladimir Filipović Školska godina: 2012/2013. Datum: 23.05.2013.
Sadržaj 1 Uvod... 3 2 Heuristike... 3 3 Metaheuristike... 4 4 Optimizacija mravljim kolonijama (Ant Colony Optimization, ACO)... 5 4.1 Uvod... 5 4.2 Opis algoritma... 6 4.3 Pseudokod... 6 4.4 Prednosti i mane optimizacije mravljom kolonijom... 6 5 Optimizacija rojevima čestica (Particle Swarm Optimization, PSO)... 7 5.1 Uvod... 7 5.2 Opis algoritma... 7 5.3 Pseudokod... 8 5.4 Prednosti i mane optimizacije rojevima čestica... 9 6 Zaključak... 10 7 Reference... 11 2 Metaheuristike - upoređivanje ACO i PCO
1 Uvod Razvojem računarstva i povećavanjem procesorske moći računara, ljudi su počeli rešavati izuzetno kompleksne probleme koji su do tada bili nerešivi.tehnika kojom su dati problemi rešavani je tehnika grube sile. Uobičajeni algoritmi koji su korišćeni: - algoritam pretaživanja u širinu, - algoritam pretraživanja u dubinu ili - algoritam iterativnog pretraživanja u dubinu. Svi navedeni algoritmi ne uzimaju u obzir nikakve informacije vezane za konkretan problem koji rešavaju već slepo pretražuju sve moguće slučajeve. Vremenom, ljudi su shvatili da spomenuti algoritmi nisu dobro rešenje pogotovo za probleme velikih dimenzija. Kako bi se pretraga ubrzala, razvijena je porodica algoritama sa usmerenim pretraživanjem. Algoritmi iz ove porodice prilikom pretraživanja vođeni su informacijama o problemu koji rešavaju kao i o proceni rastojanja trenutnog od ciljnog rešenja. Ove informacije su se uzimale u obzir kako bi se pretraga usmerila i time vreme potrebno za pronalaženje rešenja smanjilo u odnosu na algoritme grube sile. Tipičan primer algoritma usmerene pretrage je A*. S obzirom na današnju brzinu računara, u jednoj sekundi se mogu istražiti milioni ili čak milijarde potencijalnih rešenja i time brzo pronaći najbolje. Problem je u tome što postoji veliki niz problema kojima spomenuti algoritmi ne mogu biti od koristi. Jedan od najpoznatijih problema je problem trgovačkog putnika. Ovaj problem pripada grupi NPteških problema a to su takvi problemi da za njih još uvek ne postoji efikasan algoritam kojim se može naći optimalno rešenje. Na sreću, u ovakvim problemima, nama često i nije potrebno optimalno rešenje već smo zadovoljni i sa rešenjem koje je dovoljno dobro. Algoritmi koji nam omogućavaju da u polinomijalnoj složenosti pronađemo dovoljno dobra rešenja, bez garancije da ćemo pronaći i optimalno rešenje, nazivaju se heuristički algoritmi ili jednostavno heuristike. 2 Heuristike Heuristike veliku ekspanziju doživljavaju poslednjih 40 godina sa razvojem kombinatorne optimizacije, teorije algoritama i posebno računara. Imaju veliku primenu kako u rešavanju standardnih teorijski problema tako i u realnim problemima kombinatorne i globalne optimizacije. Heuristike su nekada i jedini način da se reši problem pošto često polaze od realnijeg modela problema nego egzaktne nauke. Glavna razlika je u tome što egzaktne nauke traže tačno rešenje približnog modela dok se kod heuristika to svodi na približno rešenje tačnog (tačnijeg) modela. 3 Metaheuristike - upoređivanje ACO i PCO
Heuristike koristimo: - za rešavanje slabo struktuiranih problema za koje ne postoji egzaktni algoritmi. Kod ovih problema: - ne može se formirati precizan matematički model - postoje elementi neodređenosti i subjektivne procene - postoje elementi nelinearnosti i pojava više kriterijuma. U ovu grupu spada većina realnih problema kao što su problemi raspoređivanja poslova na mašinama, problem raspoređivanja vozila, problem rasporeda časova i drugi slični problemi. - za rešavanja problema za koje postoje egzaktni algoritmi ali nisu efikasni za velike dimenzije problema (NP-teški problemi za koje ne postoje egzaktni algoritmi polinomijalne složenosti). U ovu grupu spadaju problemi trgovačkog putnika, problem bojenja grafova, problem ranca, problem pokrivanja skupa i drugi. - za traženje zadovoljavajuceg rešenja problema u slučaju ograničenog vremena, prostora i novčanih sredstava. - kao deo egzaktnog algoritma. Heuristike delimo na: - konstruktivne (generišu samo jedno dopustivo rešenje) - metode lokalnog pretraživanja (generišu niz dopustivih rešenja, gde je svako sledeće dobijeno poboljšavanjem prethodnog po nekom lokalnom kriterijumu) - metode dekompozicije (razbijaju problem na više podproblema manjih dimenzija) - evolutivne metode (generišu populaciju dopustivih rešenja u svakoj iteraciji gde je svaka sledeća populacija bolja od prethodne) - metaheuristike 3 Metaheuristike Metaheuristike možemo definisati kao skup algoritamskih koncepata koji koristimo za definisanje heurističkih metoda primenljivih na širok skup problema. Može se reći da je metaheuristika heuristika opšte namene čiji je zadatak da usmeri specifične heuristike prema području, u prostoru rešenja, u kojem se nalaze dobra rešenja. Njihova efikasnost nije teorijski dokazana ali praktično, metaheuristike su uspešno primenjene na skoro sve klasične probleme nelinearnog programiranja i kombinatorne optimizacije, kao i na veliki broj realnih problema. 4 Metaheuristike - upoređivanje ACO i PCO
Dobre strane metaheuristika: 1. Bolje od metode spuštanja i često bolje od specijalnih heuristika. 2. Opšti pristup rešavanja problema. 3. Prilagodljivost specifičnostima realnih problema. 4. Laka implementacija. Loše strane metaheuristika: 1. Efikasnot zavisi od strateških izbora (na primer, definisanja okoline). 2. Veliki broj parametara čije se profinjavanje vrši eksperimentalnim putem. 3. Male promene parametara često dovode do velikih razlika u pretraživanju prostora dopustivih rešenja. Velika grupa metaheurističkih algoritama koji se dobro nose sa teškim problemima nastala je proučavanjem procesa u prirodi pošto je čoveku priroda oduvek bila inspiracija jer prirodni procesi optimizuju život već preko 4 milijarde godina. Proučavanjem ovih procesa i načina na koji živa bića rešavaju probleme, nauka je došla do velikog broja tehnika sa kojima može uspečno rešiti probleme. Neke od tih tehnika su simulirano kaljenje, optimizacija mravljim kolonijama, optimizacija kolonijom pčela, optimizacija rojevima čestica i druge. U nastavku ćemo se fokusirati na optimizaciju mravljim kolonijama i optimizaciju rojevima čestica, na njihvove prednosti i mane kao i probleme gde su se dati algoritmni najbolje pokazali. 4 Optimizacija mravljim kolonijama (Ant Colony Optimization, ACO) 4.1 Uvod O ponašanju mrava snimljen je čitav niz dokumentarnih filmova, o njihovoj saradnji, organizaciji mravinjaka, veličini njihovih kolonija i slično. Nama su mravi posebno zanimljivi iz vrlo praktičnog razloga mravi uspešno rešavaju problem optimizacije. Naime, uočeno je da će mravi uvek pronaći najkraći put između izvora hrane i njihove kolonije što će im omogućiti da hranu dopremaju maksimalno brzo. Mravi prilikom kretanja ne koriste čulo vida već na putu od mravinjaka do hrane, i u suprotnom smeru, svaki mrav ostavlja hemijski trag feromone. Štaviše, neke vrste mrava, po povratku prema mravinjaku ostavljaju jači feromonski trag što je izvor pronađene hrane bogatiji. Tako da mravi prilikom odlučivanja kojim putem treba krenuti, tu odluku donose na osnovu jačine feromonskog traga koji osećaju. Logično, mravi će se opredeliti za put jačeg feromonskog traga. Kao posledica toga, bliži izvor hrane posetiće više mrava dok na putu kojim mravi ređe prolaze feromoni isparavaju. 5 Metaheuristike - upoređivanje ACO i PCO
4.2 Opis algoritma - Osnovni parametar je broj mrava. - Svaki mrav generiše po jedno rešenje sa slučajnim izborom komponenti na osnovu vrednosti feromona. - Rešenja se porede i nalazi se najbolje među njima. - Opciono, može se izvršiti popravka rešenja primenom neke procedure lokalnog pretraživanja. - Svim komponentama se smanji nivo feromona za koeficijent isparavanja. - Komponentama koje pripadaju najboljem rešenju povećava se vrednost feromona. - Pravila za ažuriranje vrednosti feromona mogu biti različita. 4.3 Pseudokod Begin Inicijalizacija; Do KonstruišiRešenjeZaSvakogMrava; PrimeniLokalnoPretraživanje; //opciono GlobalnoAžuriranjeVrednostiFeromona; While(nije zadovoljen kriterijum zaustavljanja) End 4.4 Prednosti i mane optimizacije mravljom kolonijom - Prednosti: 1. Brzo pronalaženje dobrih rešenja. 2. Efikasano rešava problem trgovačkog putnika i slične problem. 3. Može se koristiti u dinamičnim aplikacijama (dobro se prilagođava promenama). - Mane: 1. Teorijska analiza nije jednostavna. 2. Postoje delovi sa slučajnim biranjem putanje. 3. Istraživanje je često eksperimentalno. 4. Vreme pronalaska rešenja je neizvesno (ali je zagarantovano). 6 Metaheuristike - upoređivanje ACO i PCO
5 Optimizacija rojevima čestica (Particle Swarm Optimization, PSO) 5.1 Uvod Algoritam optimizacije rojevima čestica otkriven je sasvim slučajno, pri pokušaju da se na računaru simulira kretanje jata ptica. C.W. Reynolds u svom radu 1987. godine razmatra jato ptica kao skup čestica gde svaka čestica (tj. ptica) svoj let prilagođava sledećim pravilima: - izbegavanje kolizija sa bliskim pticama - prilagođavanje brzine leta bliskim pticama - pokušaj ostanka u blizini ostalih ptica. Inspirisani ovim i sličnim radovima, R.C. Eberhart i J. Kennedy shvataju da se takav algoritam može koristiti kao optimizator. Sam algoritam je u određenoj meri inspirisan i sociološkim interekcijama između pojedinaca u populaciji, gde svaki pojedinac pamti svoje, do tada pronađeno, najbolje rešenje problema, ima uvid u najbolje pronađeno rešenje svojih suseda i pretraživanje usmerava uzimajući u obzir obe komponente. 5.2 Opis algoritma Algoritam roja čestica je populacijski algoritam. Populacija se sastoji od niza jedinki (čestica) koje lete kroz višedimenzionalni prostor koji pretražuju i pri tome svoj položaj menjaju na osnovu vlastitog iskustva i iskustva bliskih suseda (čime se modeliraju socijalne interakcije između jedinki). Prilikom određivanja smera kretanja, svaka jedinka u određenoj meri uzima u obzit svoje, do tada, pronađeno najbolje rešenje (individualni faktor) i najbolje rešenje svoje bliske okoline (socijalni faktor). Uticaj koji svaka od ovih komponenti ima uveliko određuje ponašanje same jedinke: - radi li istraživanje prostora stanja (ukoliko je dominantan individualni faktor) - fino podešavanje pronađenog rešenja (ukoliko je dominantan socijalni faktor). Na ovaj način sam algoritam kombinuje globalno pretraživanje prostora stanja i lokalnu pretragu kojom se obavlja fino podešavanje rešenja. Algoritam započinje inicijalizacijom populacije. Svaka se čestica smešta na neku slučajno odabranu poziciju i dodeljuje joj se neka slučajno odabrana brzina. Glavni deo algoritma se ponavlja dok se ne ispuni uslov zaustavljanja a to može biti ili pronalazak dovoljno dobrog rešenja ili dostizanje maksimalnog broja iteracija. 7 Metaheuristike - upoređivanje ACO i PCO
5.3 Pseudokod // inicijalizacija populacije za i = 1 do VEL_POP za d iz 1 do DIM x[i][d] = random(xmin[d], xmax[d]); v[i][d] = random(vmin[d], vmax[d]); ponavljaj dok nije // evaluiraj populaciju za i = 1 do VEL_POP f[i] = funkcija(x[i]); // ima li čestica svoje bolje rešenje? za i = 1 do VEL_POP ako je f[i] bolji od pbest_f[i] tada pbest_f[i] = f[i]; pbest[i] = x[i]; // ima li čestica globano najbolje rešenje? za i = 1 do VEL_POP ako je f[i] bolji od gbest_f[i] tada gbest_f[i] = f[i]; gbest[i] = x[i]; // ažuriraj brzinu i poziciju čestice za i = 1 do VEL_POP za d iz 1 do DIM v[i][d] = v[i][d] + c 1 *rand()*(pbest[i][d]-x[i][d]) + c 2 *rand()*(gbest[d]-x[i][d]); v[i][d] = iz_opsega(v[i][d], vmin[d], vmax[d]); x[i][d] = x[i][d] + v[i][d]; 8 Metaheuristike - upoređivanje ACO i PCO
Algoritam koristi populaciju veličine VEL_POP i pretražuje DIM-dimenzionalni prostor rešenja. Pri tome x sadrži trenutne pozicije svih čestica a v njihove brzine. Polja x i v su dvodimenzionalna, imaju onoliko redova koliko ima čestica i onoliko kolona koliko rešenje ima dimenzija. Čestice pretražuju ograničen prostor rešenja a granice se čuvaju u poljima xmin i xmax. Brzina čestice ograničena je svojom minimalnom i maksimalnom vrednosti i to se čuva u poljima vmin i vmax. Da bismo pokrenuli opisani algoritam, nužno je odrediti vrednost svih parametara. Ograničenje brzine je potrebno jer bez njega algoritam može doći u divergentno stanje. Stavimo li ograničenje brzine preveliko, čestica može preletiti preko područja dobrih rešenja a ako stavimo ograničenje brzine na premalu vrednost može se dogoditi situacija da čestica ostane zarobljena u lokalnim optimumima. Vrednost vmax se tipično stavlja na 10% do 20% raspona prostora koji se pretražuje. Konstante c 1 i c 2 modeliraju jačinu privlačne sile između najboljih rešenja i čestice - što veći broj, to veća privlačna sila pa će čestica manje istraživati. Veličina populacije tipično se kreće od 20 do 50. Naravno, postoje i problemi kod kojih se do zadovoljavajućeg rešenja dolazi tek sa većim populacijama. 5.4 Prednosti i mane optimizacije rojevima čestica - Prednosti: 1. Može biti primenjen i u naučnom istraživanju i u praktičnoj upotrebi. 2. Brzina izvršavanja je velika. 3. Izračunavanja su veoma jednostavna. - Mane: 1. Lako može doći do parcijalne optimizacije. 2. Ne može rešiti probleme raspoređivanja i optimizacije. 3. Ne može rešiti probleme kao što su rešenja na polju energije. 9 Metaheuristike - upoređivanje ACO i PCO
6 Zaključak Algoritam optimizacije mravljim kolonijama inspirisan je ponašanjem mravljih kolonija. U suštini ovog ponašanja, indirektna komunikacija između mrava omogućava im da pronađu kraću stazu između nihovog skladišta i izvora hrane. Ova karakteristika stvarnih mravljih kolonija iskorišćena je u algoritmu da se reše problemi diskretne optimizacije. Algoritam optimizacije rojevima čestica je tehnika oblikovana prema socijalnom ponašanju životinja ili insekata. Ovaj algoritam dobija sve veću popularnost među istraživačima i praktičarima kao robusna i efikasna tehnika za rešavanje teških problema kao i stohastičkih problema populacije sa n-osnovom. Oba ova algoritma su algoritmi sa grupama podataka tako što se primenjuje ponašanje gomile. Dok je algoritam optimizacije mravljim kolonijama više primenljiv za probleme gde su izvor i odredište unapred određeni. U isto vreme, algoritam optimizacije rojevima čestica je grupni algoritam u oblastima sa više ciljeva koje su dinamične, optimalne i sa ograničenim upravljanjem. Algoritam optimizacije mravljim kolonijama je više primenljiv za probleme koji više zahtevaju jasne rezultate a algoritam optimizacije rojevima čestica je primenljiv za probleme koji su po prirodi nejasni. Zbog ovakvih karakteristika algoritami optimizacije mravljih kolonija primenjeni su na mnoge probleme kombinatorike, od kvadratnih zadataka do upravljanja vozilima i puno je izvedenih metoda adaptirano na dinamične probleme sa realnim promenljivama, stohastičke probleme i paralelne implementacije. Takođe je iskorišćeno da se proizvedu skoro optimalna rešenja za problem trgovačkog putnika. Ovi algoritmi imaju prednost nad genetskim algoritmima u sličnim problemima. Algoritam optimizacije mravljih kolonija može da se adaptira na promene u realnom vremenu. Ovo je od interesa pri upravljanju mrežama i sistemima urbanog transporta. Prva praktična primena algoritama optimizacije rojevima čestica bila je u polju neuronskih mreža. Od tada su istražene još mnoge oblasti primene uključujući telekomunikacije, istraživanje podataka, dizajn, kombinatornu optimizaciju, obrađivanje signala i mnoge druge. Iako se algoritam optimizacije rojevima čestica uglavnom koristi da se reše neograničeni problemi i problemi optimizacije sa jednim ciljem danas su ovi algoritmi razvijeni i da rešavaju ograničene probleme, probleme optimizacije sa više ciljeva i da se pronađu višestruka rešenja. 10 Metaheuristike - upoređivanje ACO i PCO
7 Reference - V. Selvi and Dr.R. Umarani. Comparative Analysis of Ant Colony and Particle Swarm Optimization Techniques. International Journal of Computer Applications Volume 5 No. 4, August 2010. - M. Čupić. Prirodom inspirirani optimizacijski algoritmi. Metaheuristike. 2012. - Particle Swarm Optimization. http://en.wikipedia.org/wiki/particle_swarm_optimization. 3 May 2013. - Ant Colony Optimization Algorithms. http://en.wikipedia.org/wiki/ant_colony_optimization_algorithms. 17 May 2013. 11 Metaheuristike - upoređivanje ACO i PCO