Professional Documents
Culture Documents
Genetski Algoritam
Genetski Algoritam
Genetski Algoritam
GENETSKI ALGORITAM
Seminarski rad
U ovom seminaru ćemo se baviti genetskim algoritnom. U oblasti veštačke inteligencije genetski
algoritam (GA) je pretraživačka heuristika1 koja oponaša proces prirodne selekcije. Ova
heuristika (takođe ponekad nazivana metaheuristika) se rutinski koristi da generiše korisna
rešenja za optimizaciju i probleme pretrage . Genetski algoritmi pripadaju većoj klasi evolucionih
algoritama (EA) koji generišu rešenja za optimizaciju problema korišćenjem tehnika insprisanih
prirodnom evolucijom, kao što su nasleđivanje, mutacija, selekcija, krosing-over…
1
Postupak koji vodi prema otkriću ili ga potiče
Sadržaj
1. UVOD ...................................................................................................................................... 5
2. PRINCIP RADA ...................................................................................................................... 6
3. METODOLOGIJA ................................................................................................................... 7
3.1. Problemi optimizacije ........................................................................................................ 7
3.2. Inicijalizacija ..................................................................................................................... 8
3.3. Selekcija............................................................................................................................. 8
3.4. Genetski operatori.............................................................................................................. 8
3.5. Završetak ........................................................................................................................... 9
4. HIPOTEZA GRADIVNOG BLOGA .................................................................................... 10
5. OGRANIČENJA .................................................................................................................... 11
6. VARIJANTE .......................................................................................................................... 13
6.1. Reprezentacija hromosoma .............................................................................................. 13
6.2. Elitizam ............................................................................................................................ 14
6.3. Paralelna implementacija ................................................................................................. 14
6.4. Prilagodljivi Genetski Algoritmi ..................................................................................... 14
7. DOMENI PROBLEMA ......................................................................................................... 15
8. KOMERCIJALNI PROIZVODI ............................................................................................ 16
9. SRODNE TEHNIKE.............................................................................................................. 16
9.1. Roditeljske oblasti ........................................................................................................... 16
9.2. Srodne oblasti .................................................................................................................. 16
9.2.1. Evolucioni algoritmi ................................................................................................. 16
9.2.2. Inteligencija roja ....................................................................................................... 17
9.2.3. Drugi evolucioni kompjuterski algoritmi ................................................................. 17
9.2.4. Druge metode metaheuristike................................................................................... 18
10. ZAKLJUČAK ..................................................................................................................... 19
LITERATURA ............................................................................................................................... 20
Slika 1 - Prikaz genetskog algoritma................................................................................................ 5
1. UVOD
Genetski ili genetički algoritam (GA) je heuristička metoda optimiranja koja imitira prirodni
evolucijski proces. Evolucija je robustan proces pretraživanja prostora rješenja. Živa bića se
tijekom evolucije prilagođavaju uvjetima u prirodi, tj. životnoj okolini. Analogija evolucije kao
prirodnog procesa i genetskog algoritma kao metode optimiranja, očituje se u procesu selekcije i
genetskim operatorima. Mehanizam odabira nad nekom vrstom živih bića u evolucijskom procesu
čine okolina i uvjeti u prirodi. U genetskim algoritmima ključ selekcije je funkcija cilja, koja na
odgovarajući način predstavlja problem koji se rješava. Slično kao što su okolina i uvjeti u prirodi
ključ selekcije nad nekom vrstom živih bića, tako je i funkcija cilja ključ selekcije nad populacijom
rješenja u genetskom algoritmu. Naime, u prirodi jedinka koja je najbolje prilagođena uvjetima i
okolini u kojoj živi ima najveću vjerojatnost preživljavanja i parenja, a time i prenošenja svojega
genetskog materijala na svoje potomke. Za genetski algoritam jedno rješenje je jedna jedinka.
Selekcijom se odabiru dobre jedinke koje se prenose u slijedeću populaciju, a manipulacijom
genetskog materijala stvaraju se nove jedinke. Takav ciklus selekcije, reprodukcije i manipulacije
genetskim materijalom jedinki ponavlja se sve dok nije zadovoljen uvjet zaustavljanja evolucijskog
procesa. Konačan rezultat je populacija jedinki (potencijalnih rješenja). Najbolja jedinka u zadnjoj
iteraciji predstavlja rješenje optimiranja.
U genetskom algoritmu, populacija rešenja kandidati (tzv. pojedinaca, bića ili fenotipa)
problema optimizacije evoluira ka boljim rešenjima. Svako rešenje kandidat ima skup osobina
(svojih hromozoma ili genotipa) koji može da bude mutiran ili izmenjen; tradicionalno rešenja
su predstavljena binarno, kao nizovi nula i jedinica, ali i druga kodiranja su takođe moguća.
Standardna reprezentacija svakog rešenja kandidata je niz bitova. Nizovi drugih tipova i
struktura se u suštini mogu koristiti na isti nači. Glavna osobina koji čini ove genetske
reprezentacije pogodne je da su njihovi delovi jako usklađeni zbog fiksne veličine što olakšava
jednostavne operecije krosing-overa. Promenljiva dužina reprezentacije se takođe može
koristiti, ali je implementacija krosing-overa u ovom slučaju složenija. Reprezentacije poput
stabla su istražene u genetskom programiranju i reprezentacije forme grafa su istražene u
evolucionom programiranju; mešavina oba, linearnih hromozoma i stabala je istražena u
programiranju zasnovanom na prikazu gena.
Veličina populacije zavisi od prirode problema, ali obično sadrži nekoliko stotina ili hiljada
mogućih rešenja. Često se početna populacija generiše nasumično, čime se omogućava čitav
niz mogućih rešenja (prostor pretrage). Povremeno, rešenja mogu biti „posejana“ u oblastima
gde je moguće naći optimalna rešenja.
3.3.Selekcija
Tokom svake sledeće generacije deo postojeće populacije je izabran da odgoji novu generaciju.
Individualna rešenja su izabrana pomoču procesa baziranog na fitnesu(zdravlju), gde više
fit(zdravija, sa boljom kondicijom) rešenja(merena fitnes funkcijom) imaju veće šanse da budu
izabrana. Određene metode selekcije ocenjuju kondiciju svakog rešenja i prvenstveno će
izabrati najbolja rešenja.
U nekim slučajevima, teško je ili nemoguće odredititi fitnes. Ako je tako, može se iskoristiti
simulacija da odredi vrednost fitnes funkcije za fenotip (npr. Računarska dinamika fluida se
koristi da se utvrdi otpor vazduha automobila čiji je oblik kodiran kao fenotip) ili se čak koristi
interaktivni genetički algoritam.
Sledeći korak je generisati drugu generaciju populacije rešenja od onih izabranih kroz
kombinaciju genetskih operatora: krosing-overa(naziva se i rekombinacija) i mutacije.
Za svako novo rešenje koje će se proizvesti, bira se par „roditeljskih“ rešenja za razmnožavanje
iz bazena prethodno izabranih.
Stvaranjem rešenja „deteta“ korišćenjem gore navedenih metoda krosing-overa i mutacije
kreirano je novo rešenje koje obično ima mnoge karatkeristike svojih „roditelja“. Za svako
novo dete se biraju novi roditelji i proces se nastavlja sve dok nova populacija rešenja ne
dostigne odgovarajuću veličinu. Iako su metodi reprodukcije koji se zasnivaju na korišćenju
dva roditelja „biološki podstaknuti“ neka istraživanja sugerišu da se korišćenjem više od dva
„roditelja“ generiše kvalitetnije hromozome.
Ovi procesi na kraju doode do sledeće generacije populacije hromozoma koja se razlikuje od
početne generacije. Generalno, prosečna kondicija će porasti ovim procesima za populaciju, jer
su izabrani samo najbolji organizmi iz prve generacije za razmnožavanje, zajedno sa malim
procentom manje podobnih rešenja. Ova manje fit rešenja garantuju genetsku raznolikost
unutar genetskog bazena roditelja i stoga garantuju genetsku raznolikost narednih generacija
dece.
Mišljenje je podeljeno oko važnosti krosing-overa naspram mutacija. Postoje mnoge reference
u Fogelovom radu (2006) koje podržavaju značaj pretraga baziranih na mutacijama. Iako su
krosing-overi i mutacije poznati kao glavni genetski operatori, moguće je koristiti i druge
operatore kao što su pregrupisanje, kolonizacije-istrebljenja ili migracije u genetskim
algoritmima.
Vredi podesiti parametre kao što su verovatnoća mutacije, verovatnoća krosing-overa i veličina
populacija da bi se pronašla razumna podešavanja za klasu problema na kojoj se radi. Veoma
mala stopa mutacija vodi do genetičkog drifta (koji nije ravnomerno raspoređen u prirodi).
Stopa rekombinacije koja je previsoka može dovesti do prerane konvergencije genetskog
algoritma. Stopa mutacija koja je previsoka može dovesti do gubitka dobrih rešenja, osim ako
je iskorišćen elitistički izbor.
3.5. Završetak
Ovaj generacijski proces se ponavlja sve dok se ne postigne uslov prekida. Opšti uslovi
završetka su:
• Fitnes rešenja koje je najviše rankirano dostiže ili je dostigao plato takav da uzastopne
iteracije ne daju bolje rezultate
• Ručno proveravanje
4. HIPOTEZA GRADIVNOG BLOGA
1. Opis heuristike koja obavlja adaptaciju tako što identifikuje i kombinuje gradivne blokove,
npr. shema niskog reda sa fitnesom iznad proseka.
2. Hipoteza kojom genetički algoritam vrši implicitnu adaptaciju i efikasno implementira ovu
heuristiku.
„Kratke sheme niskog reda i sa visokim fitnesom se uzorkuju (uzimaju uzorci), kobinuju i
ponovo uzorkuju kako bi napravili stringove potencijalno većeg fitnesa. Radeći sa ovim
shemama (tj. gradivnim blokovima), smanjili smo složenost našeg problema; umesto da
pravimo vrlo efikasne stringove pokašavajući sa svakom mogućom kombinacijom, mi pravimo
sve bolje i bolje stringove koristeći najbolja parcijalna rešenja prethodnog uzorkovanja.“
"Kako kratke sheme niskog reda sa visokog fitnesa igraju veoma bitnu ulogu u genetskim
algoritmima, dali smo im specijalno ime: gradivni blokovi. Baš kao što dete pravi veličanstvene
tvrđave slažući jednostavne blokove drveta, tako i genetski algoritam postiže skoro optimalne
performanse slažući krate sheme niskog reda i visokih performansi, tj. gradivne blokove."
5. OGRANIČENJA
Postoje ograničenja upotrebe genetskog algoritma u odnosu na alternativne algoritme za
optimizaciju:
• Genetski algoritmi ne rade dobro srazmerno složenosti. To jest, kada je broj elemenata koji
su izloženi mutaciji veliki često postoji eksponencijalni porast u veličini prostora za pretragu.
Zbog toga je izuzetno teško koristiti tehniku na problemima kao što su projektovanje motora,
kuće ili aviona. Kako bi takvi problemi bili povodljivi evolucionoj potrazi oni moraju biti
razbijeni na što jednostavnije moguće reprezentacije. Stoga obično vidimo evolucione
algoritme za kodiranje dizajna za lopatice ventiatora umesto motora, modelovanje oblika
umesto detaljnih planova konstrukcije, krila aviona umesto dizajna čitavih aviona. Drugi
problem kompleksnosti je kako zaštititi delove koji su evoluirali da predstavljaju dobra rešenja
od daljih destruktivnih mutacija, naročito kada njihova procena fitnesa zahteva da se kombinuje
sa drugim delovima.
• Rad na dinamičkom setu podataka je težak, kako genomi počnu da konvergiraju rano prema
rešenjima koja možda više neče važiti za kasnije podatke. Nekoliko metoda je predloženo da
se popravi ovo povečanjem genetske raznolikosti nekako i sprečavanjem rane konvergencije,
bilo povećanjem verovatnoće mutacije kada je rešenje kvalitet kapi (nazivano započeta
hipermutacija), ili povremeno uvođenjem poptuno novih, slučajno generisanih elemeanta u
genomu (nazivaju se i slučajni imigranti). Evolucione strategije i evoluciono programiranje
mogu se implementirati sa takozvanom „zarez strategijom“ u kojoj roditelji nisu održavani i
novi roditelji se biraju samo od potomstva. Ovo može biti efikasnije na dinamičkim
problemima.
• Genetski algoritmi ne mogu efikasno rešiti probleme u kojima je jedina mera za fitnes
tačno/netačno (kao problemi odluke), kako ne postoji način da se koncentrišu na rešenja (nema
brda da se popne). U ovim slučajevima, slučajna pretraga može naći rešenje brzo kao i genetski
algoritam. Međutim, ako situacija dozvoljava uspeh/neuspeh suđenje da se ponovi, davajuću
(eventualno) različiti rezultat, onda odnos uspeha neuspeha pruža određenu meru fitnesa.
6.1.Reprezentacija hromosoma
Najjednostavniji algoritam predstavlja svaki hromozom kao niz bitova. Numerički parametri
se uglavnom mogu predstaviti celim brojevima (eng. integer), ali je moguće korisiti i
reprezentaciju u pokretnom zarezu. Reprezentacija u pokretnom zarezu je prirodna za
evolucione strategije i evoluciono programiranje. Pojam genetskih algoritama realnih vrednosti
je bio predložen, ali je to pogrešan naziv, jer ne prezentuje teoriju gradivnog bloka koju je
predložio John Henry Holland 1970ih. Ova teorija ima podršku, zasnovanu na teoretskim i
eksperimentalnim rezultatima. Osnovni algoritam izvršava prelazak (crossover) i mutaciju na
nivou bitova. Druge varijante tretiraju hromozome kao listu brojeva koji su pokazivači na
povezane liste, asocijativne nizove, objekte ili bilo koje druge zamislive strukture podataka.
Krosing-over i mutacija se izvršavaja tako da poštuju granice tipa elementa. Za većinu tipova
podataka se mogu konstruisati operatori za varijacije. Različiti tipovi podataka kojima se
predstavljaju hromozomi rade bolje ili lošije za različite domene problema.
Kada se korsite reprezentacije u vidu nizova bitova, često se primenjuje Grejev kod. Na ovaj
način, male promene u broju mogu biti prouzrokovane mutacijama i prelascima. Ovako se
sprečava prevremena konvergencija ka takozvanim Hamingovim zidovima (eng. Hamming
walls), gde se vrlo mnogo simultanih mutacija (ili prelazaka) mora desiti da bi se hromozom
promenio na bolje.
Drugi pristupi uključuju korišćenje nizova realnih brojeva umesto nizova bitova za
reprezentaciju hromozoma. Rezultati teorije shema predlažu da što je manji alfabet, bolje su
performanse, ali je na početku istraživačima bilo vrlo neobično da su dobijali dobre rezultate
korsteći ovakav prikaz hromozoma. Ovo je objašnjeno skupom realnih vrednosti u konačnoj
populaciji hromozoma koji formira virtuelni alfabet (kada su selekcija i kombinacija
dominantne) sa manjom kardinalnosti od one očekivane od reprezentacije u pokretnom zarezu.
Proširenje pristupačnog domena problema Genetskog Algoritma se može postići kroz
kompleksno kodiranje skupa rešenja nadovezivanjem nekoliko tipova heterogeno kodiranih
gena u jedan hromozom. Ovaj pristup dozvoljava rešavanje problema optimizacije koji
zahtevaju veoma različite definicije domena za parametre problema.
6.2. Elitizam
Ovo znači da pravila genetske varijacije mogu imati drugačija značenja u prirodi. Na primer -
ako su koraci sačuvani uzastupno - prelazak može da sumira broj koraka majčine DNK
dodavajući korake očeve DNK itd. Štaviše, inverzni operator ima priliku da složi korake
uzastupno ili u nekom drugom pogodnom poretku, radi preživljavanja ili efikasnosti. (Videti
na primer ili primer u problemu trgovačkog putnika, a posebno korišćenje operatora
kombinacije).
Varijanta, gde populacija kao celina evoluira umesto njenih pojedinačnih pripadnika, je poznata
kao kombinacija genetskog bazena.
Razvijen je veliki broj varijanti kako bi se poboljšale performanse genetskih algoritama koji
rade na problemima sa visokim stepenom epistaze fithensa, npr. kada se fitnes rešenja sastoji
od podskupova varijabli koji međusobno interaguju. Ovi algoritmi teže tome da prvo nauče a
tek onda iskoriste ponašanje ovih korisnih fenotipskih interakcija. Kao takvi, slažu se sa
hipotezom gradivnog bloka u prilagodljivom smanjivanju loših kombinacija. Istaknuti primeri
ovog pristupa su mGA, GEMGA i LLGA.
7. DOMENI PROBLEMA
Problemi koje je vrlo prikladno rešavati genetskim algoritmom su problemi pravljenja
rasporeda i mnogi softtver koji radi na pravljenju rasporeda je zasnovan na genetskim
algoritmima. Genetski algoritmi se mogu primeniti i na inženjerstvo. [ Genetski algoritmi se
često primenjuju za rešavanje problema globalne optimizacije.
Kao generalno pravilo, genetski algoritmi mogu biti korisni u domenu problema koji imaju
kompleksan pejzaš fitnesa, kako je mešanje, na primer mutacija i prelazaka, stvoreno da bi se
populacija pomerila od lokalnog optimuma, na kome se algoritam pretrage usponommože
zaglaviti. Može se primetiti da se operatori prelaska koji se često koriste ne mogu promeniti
uniformnu populaciju.
Primeri problema koje rešava genetski algoritam su: ogledala koja su napravljena da skuplja
sunčevu svetlost u solarni kolektor , antene napravljene da primaju radio signale u svemiru, i
metodi za hodanje kod kompjuterskih figura.
U svom Algorithm Design Manual, Skiena je protiv korišćenja genetskih algoritama u bilo koje
svrhe:
„Neprirodno je modelovati aplikacije u pogledu genetskih operatora kao što su mutacije ili
krosing-over nizova bitova. Pseudobiologija dodaje još jedan nivo kompleksnosti između tebe
i tvog problema. Takođe, genetski algoritmi se dugo izvršavaju nad netrivijalnim problemima.
Analogija sa evolucijom — gde značajan napredak zahteva milione godina — može biti vrlo
prikladna.
Nikada nisam naišao na problem za koji su mi genetski algoritmi izgledali kao pravi način za
rešavanje. Takođe, nikada nisam video neke rezultate koji su dobijeni genetskim algoritmima
koji su me oduševili.“
8. KOMERCIJALNI PROIZVODI
Kasnih 1980ih, General Electric su počeli sa prodajom prvog genetskog algoritma, alat baziran
na mainframe-u napravljen za potrebe industrijede. 1989, Axcelis Inc. šalju na tržište Evolver,
prvi komercijalni softver koji koristi genetski algoritam za desktop računare. John Markoff,
kolumnista The New York Times-a zadužen za tehnologije, je pisao o Evolveru, 1990., i
Evolver je bio jedini interaktivni komercijalni genetski algoritam sve do 1995. Evolver je kupio
Palisade 1997. godine, preveden je na nekoliko jezika, i trenutno je u svojoj šestoj verziji..
9. SRODNE TEHNIKE
• Evolucionih algoritama
• Evolucionog računarstva
• Metaheuristike
• Stohastičke optimizacije
• Optimizacije
9.2.Srodne oblasti
• Optimizacija kolonije mrava koristi mnogo mrava da prolaze kroz prostor rešenja i
pronađu lokalne produktivne oblasti. Iako je inače lošiji u odnosu na genetske algoritme i
druge oblike lokalne pretrage, u stanju je da proizvede rešenja za probleme za koje ne
može da se postigne ni globalna ni najnovija perspektiva, pa samim tim ni druge metode
ne mogu biti primenjene.
Funkciju dobrote
Selekciju
Jedinke
Operatore
Uvjet završetka rada
Parametre
o Veličinu populacije
o Vjerojatnost primjene operatora
LITERATURA
1. Mitchell, Melanie (1996). An Introduction to Genetic Algorithms. Cambridge: MA: MIT Press.
стр. 2. ISBN 9780585030944.
2. Haupt i Haupt, pp. 29 i 52
3. Whitley, Darrell (1994). "A genetic algorithm tutorial". Statistics and Computing. стр. 65—85.
4. Eiben, A. E. et al . "Genetic algorithms with multi-parent recombination". PPSN III: Proceedings of the
International Conference on Evolutionary Computation. The Third Conference on Parallel Problem
Solving from Nature: 78-87. 1994. ISBN 3-540-58484-6.
5. Ting, Chuan-Kang . "On the Mean Convergence Time of Multi-parent Genetic Algorithms Without
Selection". Advances in Artificial Life: 403-412. 2005. ISBN 978-3-540-28848-0.
6. Akbari, Ziarati (2010). "A multilevel evolutionary algorithm for optimizing numerical functions" IJIEC 2
(2011): 419-430 [1]
7. Goldberg, David (1989). Genetic Algorithms in Search, Optimization and Machine Learning. Reading:
MA: Addison-Wesley Professional. стр. 41. ISBN 978-0201157673.
8. Taherdangkoo, Mohammad; Paziresh, Mahsa; Yazdi, Mehran; Bagheri, Mohammad Hadi (19
November 2012). "An efficient algorithm for function optimization: modified stem cells algorithm".
Central European Journal of Engineering 3 (1): 36–50. doi:10.2478/s13531-012-0047-8.
9. Wolpert, D.H., Macready, W.G., 1995. No Free Lunch Theorems for Optimisation. Santa Fe Institute,
SFI-TR-05-010, Santa Fe.
10. Goldberg, David E. (1991). „The theory of virtual alphabets”. Parallel Problem Solving from Nature,
Lecture Notes in Computer Science. 496: 13—22. doi:10.1007/BFb0029726. Приступљено 2. 7.
2013.
11. Janikow, C. Z.; Michalewicz, Z. (1991). „An Experimental Comparison of Binary and Floating Point
Representations in Genetic Algorithms” (PDF). Proceedings of the Fourth International Conference on
Genetic Algorithms: 31—36. Приступљено 2. 7. 2013.
12. Patrascu, M.; Stancu, A.F.; Pop, F. (2014). „HELGA: a heterogeneous encoding lifelike genetic
algorithm for population evolution modeling and simulation”. Soft Computing. 18: 2565—
2576. doi:10.1007/s00500-014-1401-y.
13. Baluja, Shumeet; Caruana, Rich (1995). Removing the genetics from the standard genetic
algorithm (PDF). ICML.
14. Srinivas. M and Patnaik. L, "Adaptive probabilities of crossover and mutation in genetic algorithms,"
IEEE Transactions on System, Man and Cybernetics, vol.24, no.4, pp. 656-667, 1994.
15. ZHANG. J, Chung. H and Lo. W. L, "Clustering-Based Adaptive Crossover and Mutation Probabilities
for Genetic Algorithms", IEEE Transactions on Evolutionary Computation vol.11, no.3. стр. 326-335,
2007.