GENETSKI ALGORITMI
June 17, 2019 | Author: Marija Živić | Category: N/A
Short Description
Veštačka inteligencija...
Description
GENETSKI ALGORITMI
1. UVOD
Algoritam je Algoritam je opis za rešavanje nekog problema.
Reč se koristi još od srednjeg veka i tada je označavala nešto sasvim drugo. Izvorno, algoritam je izraz koji opisuje način računanja decimalnim brojevima uvedenim oko 1600. godine u Evropi. Algoritmičari su se ranije zvali oni matematičari koji su se koristili, (indijskim ili arapskim) sistemom znakova za brojeve (od XVI veka raširenim u Evropi). U novije vreme, algoritam je pojam koji se gotovo isključivo vezuje za informatiku i, mada ne
postoji jedinstvena opšteprihvaćena definicija, podrazumeva se da je u pitanju nekako opisana procedura za obavljanje posla. U tu svrhu se definišu algoritamski jezici. jezici. To su formalizovani jezici kojima se relativno lako opisuju postupci rešavanja problema predstavljenih algoritmom. Genetika zadnjih par godina dobija na značaju.Ova tema nije mlada već stara,ali problem
geneckih algoritama je bio u tome što nemaju matematicku potporu zahvaljujući računarima oni rade ali nemogu se objasniti. Zadnjih desetak godina pojačani je proučavanje i razvoj genetskoh algoritama.Genetski algoritmi počeli su se sve više primjenjivati u raznim područjima kao što su neuronske mreže, pri traženju najkraćeg puta, problemu rasporedjivanja procesa, traženju maksimuma funkcija, itd
1
2. Definicija Genetski algoritam je heuristička metoda slučajnog i usmerenog pretraživanja prostora rešenja koja imitira prirodni evolucijski proces. Analogija izmedu genetskog algoritma i evoluciskog procesa ogleda se u procesu selekcije. Genetski algoritmi (GA) su deo evolucione obrade,inspirisani su Darwinovom teorijom
evolucije. Problemi se rešavaju korišćenjem evoluciskog procesa koji na kraju daje 'najbolje' rešenje, rešenje evoluira. Genetski algoritmi (Genetic algorithms) su najpopularnija vrsta evolucijskih
algoritama, a predstavljaju model strogog učenja čije ponašanje potiče iz procesa evolucije koji se odvija u prirodi. Postoje dva osnovna pristupa rešavanja problema genetskih algoritama: problem se može prilagoditi genetskom algoritmu ili genetski algoritam problemu.Pre pokretananja genetskog a lgoritma, moraju se definsati dve stvari:
način na koji će se prikazivati rešenja i funkcija cilja. Rešenja se najčešće prikazuju nizom bitova i binarnim brojevima. Na isti način se mogu koristiti i druge, složenije strukture poput matrica ili stabala. Glavna prednost takvog
prikaza je u tome što se njegovi delovi zbog fiksne veličine mogu lako poravnati i uskladiti što omogućuje jednostavnu operaciju ukrštana. Mogu se koristiti i nizovi različite dužine, ali se tada ukrštanje uveliko komplikuje. Nakon definicije prikaza rešenja, definiše se i funkcija cilja (fitness function) koja na odgovarajući način predstavlja ključ selekcije (tj. problem koji se rešava) i meri kvalitet (dobrotu) pojedinog rešenja. Ona uvek zavisi od problemu koji se rešava.
3. Istorijat
Rad na genetskim algoritmima je započeo John H. Holland krajem 60-ih godina u sklopu svojih istraživanja .Tokom posljednje tri godine genetski algoritmi su se pokazali kao moćne i metode za rešavanje različitih problema na područ jima inžinjerske prakse. Razlog tome leži u njihovoj jednostavnosti implementacije i prilagodljivosti velikom broju problema. Uporedno sa širenjem upotrebe genetskih algoritama rastu i napori da se njihov rad pokuša svesti na teoretske osnove.Ali, kako je u osnovi heuristička metoda, analiza rada genetskih algoritama sadrži složene proračune iz područ ja teorije verovatnoće i statistike, pa veliki deo načina rada genetskih algoritama još uvek nije dovoljno kvalitetno teoriski opisan.
Prema načinu rada genetski algoritmi spadaju u metode usmerenog slučajnog
pretraživanja prostora rešenja. U tu grupu spadaju još i metode koje se temelje na sličnim principima kao što su evolucijeske strategije…
2
Snaga genetskog algoritma leži u činjenici da su oni sposobni odrediti položaj globalnog optimuma u prostoru s više lokalnih ekstrema. Klasične deterministicke metode će se kretati uvek prema lokalnom ekstremu, pri cemu on može biti i globalan. U tom radu se obradjuje globalni paraleni genetski algoritam i njegova primena na optimizaciju funkcija realne varijable i rešavanje problema.Osnovna ideja globalnog paralelnog genetskog algoritma je da se poslovi genetskog algoritma koji se mogu izvoditi uporedno, rasporede na nekoliko procesora, koje kontroliše i zadaje im zadatke jedan glavni procesor, koji ujedno izvršava delove genetskog algoritm.
3.1 Borba za opstanak Iak o se teorija evolucije u biologiji formira tek u 19.veku, već se sredinom 18-og. javljaju ideje koje se protive tadašnjem shvaćanju sveta. Tako s jedne strane se strogo zastupa načelo: “Vrsta ima onoliko koliko ih je od početka stvoreno”, dok s druge strane iznosi ideju o postupnoj promeni vrsta. Najpoznatija teorija evolucije je Ch. Darwinova sredinom 19. veka.On je za razvoj svoje teorije tada imao mnogo povoljniji teren, jer u to vrieme biologija raspolaže velikim brojem činjenica koje potkrepljuju teoriju evolucije živoga sveta. Tako su postignuti značajni rezultati u oblastima anatomije, embriologije. Darwin je teoriju evolucije predstavio u svom glavnom djelu, O poreklu vrsta posredstvom prirodne .Njegova se teorija evolucije prvenstveno oslanja na prirodni odabir, selekciju, koja podupire jedinke bolje prilagodjene uslovima okoline, dok slabije prilagodjene jedinke izumiru. Faktori koji utiču na proces selekcije Darwin deli na spoljašne (okolina) i unutaršnje (kasnije nazvane genetičkima). Darwin je takodje dokazao da evolucija ima adaptivni karakter, te da su karakteristike organizama uslovljene razvojem uslova u okolini. Savremene evoluciske teorije se najvećim delom oslanjaju na darvinizam, uz manje izmene koje su rezultat novijih istraživanja. Osnovni evolucijski procesi se odvijaju unutar populacije odredjene vrste. Proces
evolucije započinje kada se poremti genetska ravnoteža unutar populacije, zbog promena u okolini, ili unutar same populacije. Osnovne sile evolucije danas se dele u tri dela: Mutacija Prirodno odabiranje Genetski proces. Mutacijom se mijenjaju nasljedni faktori u populaciji, te se razlikuju četiri osnovna izvora: mutacija gena, mutacija hromozoma, rekombinacija gena i rekombinacija hromozoma. Mutacijom gena i mutacijom hromozoma (promena broja ili građe hromozoma) se proširuje genetska raznolikost populacije. Rekombinacija gena je ukrštanje medju dvema vrstama homozigotnih roditelja i stvaranje heterozigotnog potomstva, rekombinacija hromozoma poznata je pod nazivom crossing-over. Druga sila evolucije, selekcija, predstavlja prirodni izbor izmedju jedinki – nosilaca
3
različito vrednih naslednih informacija u okvirima zahteva okoline Upravo je princip selekcije najveći Darwinov doprinos teoriji evolucije, koji je koristio pojam preživljavanje najsposobnijih za borbu za opstanak medju pojedinih organizmima unutar populacije. Savremene teorije posmatraju prirodnu selekciju kao silu koja deluje na cele populacije (Darwin je selekciju primjenjivao na jedinke), te je smatraju osnovnom snagom koja uzrokuje promene u genetskoj ravnoteži, a vrši se kroz uticaj f aktora iz okoline (temperature, prirodni neprijatelja, odavnina takmičanja oko hrane i životnog prostora, itd.). Genetski proces, kao treća osnovna sila evolucije deluje na malim populacijama i uzrokuje ustaljivanje neutralnih ili neadaptivnih svojstava. Kao primjer ove pojave se uzimaju Darwinove zebe na malom području živi 13 različitih vrsta zeba, sa velikom raznolikošću oblika i veličina kljunova, zavisno prehrambenim navikama pojedine vrste.
3.2. Molekuk DNK kao nosilac informacija
Slika 3.2.1. Struktura molekula DNK
4
Osnovni nosilac geneckih informacije je molekul (DNK) . DNK ima oblik dvostruke spirale gradjene od fosforne kiseline i šećera (slika 3.2.1.) a
vertikalno na smer protezanja lanca vezana je duzična veza,na osnovu koje se ostveruje veza sa drugim lencem.
Zapravo svi živi organizmi se sastoje iz ćelija, u svakoj ćeliji se nalazi isti skup hromozoma. Hromozomi sadrže DNK lance i prestavljaju 'opis' celokupnog organizma. Hromozomi se sastoje iz gena, koji prestavljaju blokove DNK. Svaki gen opisuje pojedini
protein. U suštini može se reći da svaki gen opisuje pojedinu osobini organizma npr. boja očiju... Svaki gen ima svij polozaj u hromozomu koji se naziva lokus. Ukupan skup geneckog materijala se naziva grnom, odredjen skup gena u genomu se naziva genotip. U živom svetu geni su nasledne osobine, a u programskom jeziku zovi se (propertis) Osim osobina-karakteristika ima i ponašnje odnosno metode u programskom svetu.Za svako svojstvo i za ponašanje i karakteristike postoje geni.Upravo zato sto za naše
svojstvo postoji gen,tako možemo to i da preslikamo u svetu računara. Zapravo svaki od objekata ima svojstvo tj.metode – nare bde u programu(svi dugmići imaju svoj aski kod).Naredbe su u memoriji sačuvane kao 0 i 1.
3.3. Osnovna srtuktura genetskog algoritma
Genetski algotitmi imitiraju osnovne procese prirodne evolucije.Problem koji se rešava (nalaženje minimum/maksimiu funkcije,optimiranje radnog plana...) prestavlja okolinu u kojoj živi populacija jedinki. Sve jedinke neke populacije su prestavljene odredjenom strukturom podataka (broj, niz, matrica, stablo...) koja predstavlja kodirano potencijalno rešenje datog problema,što je analogno geneckoj informaciji živog organizma. Svakom hromozomu se proverava mera kvaliteta,kojom se iskazuje koliko je taj hromozom blizi traženog rešenja.Ta mera kvaliteta se naziva dobrota (eng.fitness),kao što je pomenuto,a funkcija za odredjivanje dobrote naziva se funkcija dobrote. Funkcija dobrote može biti vrednost finkcije koja se optimira-profit kod optimizovanja radnog plana...Nakon toga se iz stare populacije stvara nova,tako da se postupkom koji se imitira prirodna selekcija odabiraju jedinke koje ce preživati. Na pripadnicima nove generacije se primenjuju genetski operatori, koji se dele na unarne, koji deluju na genetski materijal jednog hromozoma,i operatere višeg reda, koji stvaraju nive hromozome kombinacijom nekoliko starih hromozoma (roditelja) Taj ceo postupak tj.ocena kvaliteta hromozoma, selekcija i primena generskoh operatora, se ponavlja sve dok nije zadovoljen uslov zaustavljanja algoritma.Ova osnovna struktura genetskog algoritma se može prikazati slikovito tj. (slika. 3.3.1.)
5
Genetski algoritam
početak g=0 kreiraj početnu populaciju P (0) dok nije zadovoljen uslov zausravljanja početak g=g+1 selektiraj generaciju P’ (g) iz P (g – 1) generiši generaciju P (g) iz P' (g) koristeći genetske operatere kraj kraj
slika 3.3.1. Osnovna struktura geneckog algoritma
Pri pokretanju genetskog algoritma,kreira se i početna populacija jedinki.Hromozomi se obično kreiraju slučajnim odabirom iz domena problema.Kao što je gore navedeno genetski algotitam se izvršava sve dok nije zadovoljen uslov zaustavljanja. A on se odredjuje u zavisnosti od problema koji se rešava i od problema u kojim a se problem rešava. Kod implemetacije genetkog algoritma osnovni je provlem pravilan izbor načina
predstavljnja hromozoma, načina dekodiranja hromozoma ,čime se dobijaju ulazni podaci za funkciju dobrote.
Kako genetski algoritam izvodi veliku količinu operacija, sekvencijalni pristup se pokazao suvise sporim u primeni na zahtevnim problemima.U osnovnoj strukturi
genetasog algoritma moguće je izdvojiti pojedine delove koji se mogu izvršavati nezavisno, pa je razvojem višeprocesotskih računara stvorena mogučnost paralelizacije, na osnovu koga genetski algoritmi znatno dobijaju na brzini. Jedan od delova genetskog algoritma koji može imati koristi od paraleizacije je evolucija jedinke. Zapravo evolucija odradjene jedinke,je potpuno nezavisna od evolucije neke druge jedinke,tako da je moguće raspodeliti evoluciju cele populacije na nekoliko raspoloživih
procesora. Time se znatno dobija na brzini izvodjenja algoritama, naročito kad ja funkcja dobrote reltivno složena.
Postoji mnogo šema za paralelizaciju rada genetskog algoritma, zavisno od različita procesorske i memoriske konfiguracije višeprocesorskih računara.
6
4.Fukcija dobrote Funkcija dobrote ili funkcija ocene kvaliteta jedinke u literaturi se još naziva fitness funkcija, funkcija sposobnosti, funkcija cilja ili eval funkcija i u najednostavnijoj implemetaciji ekvivalent je finkcija f koju treba optimizirati,pretražiti: dobrota( v ) = f ( x ) Gde binarni vektor v prestavlja realni broj.Što je dobrota jedinki veća to je jedinka ima
veću verovatnoču preživljavanja i ukrštanja.Funkcija dobtore je ključ za proces selekcije. Postoji više načina definisanja, funkcije dobrote, upravo to i čini problem tj.za podrazumevano traženje-optimizaciju problema največe poteškoće predstavlja definisanje funkcije dobrote koja treba verno da podržava problem koji pešava. Tokom procesa evolucije 'dobar' genetski algoritam se generiše iz generaciju u
generaciju,populacije čija je ukupna dobrota i prosečna dobrota sve bolja i bolja.Ukupna dobrota populacije D i prosečna D' dobrota se može definisati formulom, gde N predstavlja veličinu populacije . N D = dobrota(Vi) i=1
N D' = —— D
4.1.Selekcija Uloga procesa selekcije u genetskom algoritmu je očuvanje i prenošenje dobrih svojstava
jedinki u novu populaciju. Selekcijom se (imitirajući prirodnu selekciju) odabiru dobre jedinke-roditelje koje će u novoj generaciji učestvovati u reprodukciji, čime se čuva dobar genetski materijal, prenosi se na novu populaciju, a loš genetski materijal odumire.
Prvi, način na koji bi se selekcija mogla realizovati bio bi da se jedinke u trenutnoj populaciji sortiraju po dobroti, da se odabere N – M (N je veličina populacije, a M je bro j jedinki koji će izumreti) najboljih jedinki koje će se preneti u novu populaciju,i koje će reprodukcijom stvoriti M potomaka. U praksi se pokazalo da takav postupak selekcije rezultira prebrzom radu algoritma – proces optimizacije se završi u svega nekoliko koraka, te postoji opasnost od “zaglavljivanja” procesa u nekom lokalnom optimumu. Razlog za to je što i loše jedinke mogu posedovati kvalitetne delove
genetske informacije. Stoga je potrebno osigurati proces selekcije koji će i lošim jedinkama dati šansu (naravno, manju u odnosu na dobre jedinke) da prežive i da
učestvuju u reprodukciji. Postupci selekcije se dele na dve osnovne grupe: generacijska selekcija i eliminacijska selekcija. Prema vrsti selekcije se i genetski algoritmi dele na generacijske i eliminacijske. Kod generacijskog genetskog algoritma se procesom selekcije iz stare generacije stvara nova, a u slucaju eliminacijskog genetskog algoritma se “rupa” u populaciji nastala eliminacijom loših jedinki popunjava novim jedinkama.
7
4.1.1. Jednostavna selekcija Jednostavna selekcija je osnovni primer generacijske selekcije. Procesom selekcije se iz stare populacije P(t-1) stvara nova populacija jedinki P(t) sa jednakim brojem jedinki, a odabir roditelja se provodi tako da je verojatnost odabira proporcionalna nihovoj dobroti. Postupak se provodi u 4 osnovna koraka: 1. izracunaju se vrednosti dobrota(vi) sa sve jedinke u populaciji
2. izračuna se ukupna dobrota 3. za svaki kromosom se izračuna kumulativna dobrota qk tako da verovatnoća selekcije za pojedini hromozom vk iznosi pk , iz cega sledi da je verovatnoća selekcije proporcionalna njegovoj dobroti: k qk = ∑dobrota vi i=1
dobrota (vk ) pk = ——————— D 4. generiše se slučajni realni broj r є [0,D] i potraži se i-ti hromozom za koji važi da je r є [qi-1, qi], tako da se taj hromozom prenosi u novu generaciju. Ovakvim pocrupkom selekcije dobri hromozomi mogu se pojaviti više puta u novoj populaciji. U ovoj jednostavnoj selekciji pojavljuju se nekoliko nedostataka:
Sobzirom da vereovatnoća odabira jedinke proporcijalna njenoj dobtoti, funkcija dobrote dobrota(vi) nesme poprimiti negativne vrednosti. Ovaj problem može se rešiti translakcijom funkcije dobrote.Kreira se nova funkcija dobrote kija od vrednosti dobrote hromozoma odizima ninimalnu vrednost dobrote u celoj populaciji: dobrota' (vi ) = dobrota(vi ) – min [dobrota(vk )],gde je k= 1,2....N k
Vrednost min [dobrota(vk )], mora se pronaći za svaku generaciju.
Na ovaj način izbegava se negativna vrednost funkcije dobrote.
Drugi nedostatak je pojavljivanje dupliranih hromozoma,na osnovu istraživanja došlo je do saznanja da i do 50% populacije mogu biti duplikati hromozoma,što
značajno smanjuje efikasnost genetskih algoritama.
8
4.1.2. Eliminacijska selekcija Eliminacijska selekcija radi upravo suprotno generacijskoj selekciji tj. umesto biranja dobrih jedinki koje će preživeti, biraju se loše jedinke koje će izumreti. Zato se umesto funkcije dobrote definiše funkcija kazne, pa je verovatnoća odabira pojedine jedinke obrnuto proporcionalna njenoj dobroti: kazna(vi ) = max [dobrota ( vk )] – dobrota(vi ) k
Ovakvim načinom selekcije rešava se problem očuvanja najbolje jedinke (elitizam),zato što je kod elminističke selekcije verovatnoća odabira najbolje jedinke jednaka je nuli,pa u procesu selekcije nije portebno dodavanje dodatanih mehanizama za oda bir najbolje jedinke. Izračunavanje funkcije kazne potrebno je izvršiti pre svakog odabira jedinki za eliminaciju,jer se jednom eliminisani hromozomi nemogu ponov o vratiti.
4.1.3.Turnirska selekcjija Najjednostavnije turinska selekcija kreira novu populaciju tako da sa jednakom verovatnoćom bira dve jedinke iz populacije i bolju od njih kopira u novu populaciju, to obavlja više puta tj. N puta.Ovaj oblik turnirske selekcije spada u generaciske selekcije.
Primenjuje se idrugi način selekcije kako bi se eliminisao nedostatak generaciske i eliminaciske selekcije: računanje kumulativnih dobrota(kazni) i njihovo i sortiranje u svakoj generaciji.
Sa jednakom verovatnoćom se biraju 3(ili više) jedinke iz populacije.Na dve najbolja jedinke primenjuju se operatori ukrštanja,i njihov potomak stavlja se na mesto naj lošije odabranje jedinke.Takva selekcij naziva se 3-turnirska selekcija, i u njoj nema vidljive granice izmedju generacija jer se selekcija i reprodukcija obavljaju kontinuirano. Dobre strane ove selekcije su:
Dobrota jedinke se računa samo za nove jedinke,nema potrebe za računanje kumulativnih dobata,kao i njihovo sortiranje,samim tim se znatno dobija na brzini izvodjenja algoritama. Svojstvo elitizma je zadovoljeno,zato što se selekcijom i reprpdukcijom nemože obrisati najbolja jedinka. Još jedna prednost turinske selekcije je paraleriziranje procesa selekcije i
reprodukcije, jer je moguće nezavisno izvoditi nekoliko uporednih turinskih selekcija nad populacijom jedinku.
9
5.Drugi genetski operateri Još jedna važna karakteristika genetskih algoritama jesu operateri rekombinacijaukrštanja i mutacije. Delovanjem ovih genetskih operatera menja se genetski materijal jedinke,pa se vrši njegova razmena medju jedinkama, a njihov zadatak je da stvore potomstvo iz izabrane populacije reoditelja.Zato genetski operateri u melikoj meri odredjuju kvalitet rada
genetskih algoritama.Operateri deluju tokom reprodukcije, u kojoj učestvuju jedinke koje su preživele selekciju: ukrštanjem se dovodi do razmene genetskog materijala roditelja,da bi se stvorilo potomstvo.A mutacijom dolazi do slučajne izmene gena.
5.1.Rekombinacija-ukrštanje Ukrstanje je proces u kome dolazi do razmene genetskog materijala izmedu dve jedinke – roditelja.Ukrštanjem nastaju jedna ili dve nove jedinke koje se nazivaju deca. Sobzirom da dolazi do mešanja genetskog materijala, deca nasljedjuju svojstva svojih roditelja, pa ako su roditelji dobri, velika je vjerovatnoća je da ce i deca biti dobra, ako ne i bolja od svojih roditelja. Postupak ukrštanja je potrebno posebno definirati za svaki prikaz hromozoma. Najjednostavniji operator ukrštanja je,ukrštanje s jednom točkom prekida, je prikazan na
(slici5.1.1): slučajno se odabere jedna točka prekida unutar hromozoma,zatim se sadržaji roditeljskih hromozoma zamene. Time se dobijaju dva potomka.
1010011100 0010110111 1010011100 0010110111
011011 010100 010100 011011
Roditelji Deca
tačka prekida
sl.5.1.1.Ukrštanje sa jednom tačkom prekida U suštini ukrštane može biti definisano s proizvoljnim brojem tačaka.Krajnji slučaj ukrštanja sa n-1 prekidnih tačaka (broj n predstavlja broj bitova u hromozomu),ovakvo ukrštanje se naziva uniformno ukrštanje .Kod ovog ukrštanja nastaje jedno dete,takvo
verovatnoča nasledjivana po jednog bita od odredjenog roditeljea 0.5,zapravo verovatnoća nasledjivana po jednog gena je jednaka za oba roditelja.Kod uniformnog ukrštaja možemo videti na (slici 5.1.2)
10
Ako se verovatnoća nasledjivanja razlikuje,tada se ukrštanje naziva puniformno ukrštanje .Npr. ako je p = 0.4, onda je verovatnoća nasledjivanja prvog gena jednaka 0.4, a drugog 0.6. Verovatnoće nasledjivanja se mogu razlikovati i za pojedine gene unutar samih hromozoma .Tada se definiše maska sa verovatnoćom nasledjivanja gena.kao na (slici.5.3)tj .prvi gen će biti uzet od prvog roditelja jedinka 0.2,a od drugog 0.8. Treći gen će biti uzet sigurno od prvog, a gen n-2 će biti uzet od drugog roditelja. Unifomno_ukrštanje početak za i = 0 do n –1 dete [ i ] = bilo_koji (roditelj1 [ i ], roditelj2[ i ] ) kraj
slika.5.1.2. Kod uniformnog ukrštanja
gen p
1 0,2
2 0,5
3 1
4 0,6
5 0,7
... ...
n-2 0
n-1 0,3
n 0,5
Slika.5.1.3. Maska sa verovatnoćom odabira gena Na računaru se uniformno ukrštanje najlakše prikazuje kao logička operacija, jer su logičke operacije sastavni deo jezika rčunara. Prvi korak je kreiranje slučajne binarne maske M .Bitovi i maski odredjuju od kojeg se roditelja uzima pojedini gen: 1 znači da će gen biti uzet od prvog roditelja, a 0 da će gen biti uzet od drugog roditelja.
Pomoću logičke operacije I maskiraju bitovi prvog roditelja: A Λ M .Bitovi drugog roditelja se maskiraju pomoću maske B Λ ¬ M. Tako maskirani bitovi se pomoću operacije ILI kombinuju u detetov hromozom.tj:
Dete = ( A ΛM ) v ( B Λ¬ M )
1001011101100100 0111100100011101 1101100011010010 1011000101001101
Roditelji Maska Dete
slika.5.1.4. Primer uniformnog ukrštanja
11
Postoje i druge varijante ukrštanja to su : segmentno ukrštanje i mešajuče ukrštanje. U procesu ukrštanja korisni je vršiti proveru da li su hromozomi roditelja identični. Ako jesu obično se kreira slučajni hromozom za jednog od roditelja (npr.mutacijom),pa se onda sprovodi ukrštanje.Ovim portupkom kontrološe se pojavljivanje duplikata, jer oni samo usporavaji rad genetskog algoritma, a i proširuje se prostor pretraživanja.
5.2.Mutacija Mutacija je drugi operator koji deluje na jedinke tokom reprodukcije.Mutacija deluje na jednu jedinku i sastoji se od slučajne pronenjive jednog ili više gena. Dva parametra koji odredjuju mutaciju u genetskom algoritmi su: vrsta mutecije i verovatnoća mutacije jednog bita Pm.
Verovatnoća mora biti u intervalu (0,1). Ako verovatnoća mutacije teži ka 1, tada se genetski algoritam pretvara u postupak slučajne pretrage prostora rešenja, a kako verovetnoća mutacije teži ka 0, onda će manje da se unose sveže genetske informacije u populaciju.Tako da postoji velika verovatnoća da će genetski algoritam stati u nekom lokalnom optimumu. Jednostavna mutacija je najjednostavniji oblik mutacije, što je prikazano na (slici 5.2.1)
1101011010111010
pre mutacije
1101011010101010
posle mutacije
slika5.2.1. Jednostavna mutacija
Ako genetski algoritam ne koristi binarni prikaz hromozoma, onda neće imati smisla verovatnoća mutacije jednog bita Pm, zato je potrebno definisati verivatniću mutacije jednog hrpmozoma PM (n predstavlja broj bitova u hromozomu) n PM = 1 – ( 1 – Pm )
Na primer ako ja Pm = 0.01, i n = 40.Onda je PM = 0.331, što znači da će na svakih 100 hromozoma, 33 biti mutirana.
12
Mutacija ima zadatak da unese novi,odnosno obnovi izgubljeni genetski materijal.Samim tim se proširuje prostor rešenja koji se pretražuje.Kao primer moze opet posluziti binarni prikaz : ukoliko se desi da svi hromozpmi u populaciji na odredjenom mestu u
hromozomu imaju istu vrednist gena, taj se gen neće moći promeniti (iz 0 u 1 ili iz 1 u 0) kroz ukrštanje, tako da je izgubljeno pola prostora pretraživanja. Isto tako ako populacija završi u nekom lokalnom optimumu, samo pomoću mutacije postoji mogućnost da neka
od jedinki ' iskoči ' iz prostora lokalnog optimuma.Tada je,tj.u tom slučaju je dozvoljeno da samo jedna jedinka kroz mutaciju postane bolja od ostalih, pa se tada cela populacija preseli u područje gde bi se moglo naći bolje rešenje.
6. Kodiranje hromozoma Tehnike koje se koriste za rekombinovanje i mutaciju uglavnom zavise od načina kodiranja hromozoma.Zapravo kodiranje hromozoma je prvo pitanje kojim se susrećemo pri pokušaju da problem rešimo genetskim algoritmom.
Postoje više načina kodiranja:
Binarno kodiranje Permutaciono kodiranje Kodiranje vrednostima Kodiranje stablom
6.1.Binarno kodiranje Binarno kodiranje se najčešće koristi zbog svoje jednostavnosti. Zapravo hromozom se kodira nizom bitova (0 i 1 ) npr.
Hromozom A : 01101011 Hromozom B : 11000010
Problem kod binarnog kodiranja je u tome što ono nije prirodno za odredjene
primene,zato su često neophodne korekcije nakon rekonbinacije ili mutacije. Primer binarnog kodiranja: Problem popune ranca
Postoji lista stvari za koje se zna vrednost i veičina i ranac odredjenog kapaciteta. Cilj je da se napuni ranac što vrednijim stvarima iz date liste. Samo kodiranje se vrši na taj način što se svakoj stvari iz date liste dodeljuje po jedan bit. Vrednost 1 predstavlja stvar koja se nalazi u rancu, a vrednost 0 predstavlja da stvar nije u rancu, to izgleda ovako:
0110100110
13
6.2.Permutaciono kodiranje Ovo kodiranje se koristi kod problema uredjivanja. Svaki hromozom predstavlja
sekvencu elemenata čije se optimalno uredjenje traži npr.
Hromozom A : 2 7 4 1 3 5 8 6 Hromozom B : 5 3 7 2 8 1 4 6
Prilikom rekombinacije i mutacije hromozoma mora se voditi računa o očuvanju konzistencije hromozoma . Primer permutacionog kodiranja: Problem trgovačkog putnika U ovom primeru dat je skup gradova i njihova medjusobla rastojanja,koje trgovački putnik treba da obidje.
Zapravo cilj je da se nadje redosled gradova, ali tako da se predje najkraći put. Ovde kodiranje se vrši tako što hromozom opisuje redosled obilaska gradova, koje izgleda ovako: 856723149
6.3. Kodiranje vrednostima Kodiranje vrednosti se koristi kod problema, gde se koriste složenije vrednosti.U ovom
slučaju korišćenje binarnog kodiranja može biti nezgodno. Kod kodiranja vrednisti hromozomi predstavljaju sekvencu vrednosti odredjenog tipa npr. Hromozom A: 1.25, - 5.24, -0.23, 0.01, -3.32, 2.74 Hromozom B: AHGKATWEM Hromozom C: (nazad),(nazad),(levo),(napred)
Ovaj tip kodiranja zahteva da se razviju specijalizovane operacije i mutacije koje odgovaraju konkretnom problemu koji se rešava. Primer kodiranja vrednostima: Problem nalaženje težina za neuronsku mrežu U ovom primeru je data neuronska mreža sa predefinisanom arhitekturom.Cilj je da se nadju težine neurona tako da data mreža daje zadovoljavajući izlaz. Kodiranje se vrši tako,jer se hromozom sastoji iz niza realnih vrednosti,koje definišu vrednosti težina neurona u mreži , kao: 1.25, -5.24, -0.23, 0.01, -3.32, 2.74
14
6.4.Kodiranje stablom Kodiranje stablom se uglavnom koristi za razvoj programa ili izraza .Genetsko
programiranje tj. Svaki hromozom predasavlja stablo koje u čvorovima sadrži odredjene objekte kao (funkcije, operatore, konstante, promenjive, komande programskog jezika i dr.) Genetsko programiranje je najjednostavije u LISP-u jer se u njemu programi i podaci predstavljeju isto tj. pomoću stabla (ugnježdene lista). Primer kodiranja stablom: Problem nalaženja funkcije koja će da aproksimira zadati skup uredjenih parova (X1,..., X n, f ( X1 , ...., Xn)) .
U ovom primeru dat je skup ulaznih i izlaznih vrednosti.A cilj je nači matematičku funkciju koja ce najbolje opisati zadati skup.Samo kodiranje se vrši na taj način što hromozomi opisuju funkcije koje se zadaju stablom,kao na slici 6.1.
f (X1, X2)
( + ( X1 ( / 5 X2 ))) slika 6.1. Prikaz stabla
7.Dobre strane genetskog algoritma
Funkcija (f) koju treba optimizirati je potpuno proizvoljna tj. Nema posebnih zahteva kao što su neprekidnost... 15
Primenjiv je na veliki broj problema
Struktura algoritma nudi velike mogućnosti nadogradnje i povećanja efikasnosti algoritama jednostavnim zahvatima (veći stepen slobode)
Jednostavnim ponavljanjem postupaka se može povećati pouzdanost rezultata
Ako već ne nadje rešenje (globalni optimum), daje neko dobro rešenje kojim se može zadovoljiti
Kao rezultat daje skup rešenja, a ne jedno rećenje
Rešava sve probleme koji se mogu predstaviti kao optimizacija, bez obzira da li funkcija (f) koju treba optimizirati ima za argumente realne brojeve ili bitove, znakive ili bilo koju vrstu informacije
Vrlo jednostavno je primenjljiv na višemodalnim (višedimenziskim ) problemima
Jednostavnost ideje i dostupnost programske podrške
7.1.Loše strane genetskog algoritma
Teško se definise dodra funkcija dobrote na temelju (f)
Portebno je prilagoditi (GA ) zadatim ograničenjima
Često je potrebno prilagodjavane problema algoritmu
Teško je postaviti dobre parametre (veliki je uticaj parametra na efikasnost)
Ne može se postići 100% pouzdanost rešenja
Potrebno je posebno definisati genetski operatore za posebne vrste prikaza
Zbog stohastičnosti nikad neznamo prirodu nadjenog tešenja
Zbog izvodjenja velikog broja računarskih operacija (GA) , je spor traži se velika procesorska snaga
16
Zaključak
Iz svega ovoga možmo zaključiti, da ako želimo neki problem da rešimo pomoću genetskih algoritama mofamo prvo da odredimo: Funkciju dobrote ili kazne Selekciju (jednostavna, turnirska, eliminaciska...) Predstavljanje(binarno...) Definisati uslov završetka eviluciskog procesa (vreme ) Generaciski procep (koliko se jedinki direktno prenosi iz generacije u generaciju) Genetske operatore
Ukrštanje (s jednom ili više tačka prekida, uniformno...) Mutaciju (jednostavna, mešajuća...)
Parametre
veličina populacije verovatnoća ukrštanja verovatnoća mutacije
broj
jedinki za eliminaciju kod eliminaciske selekcije
17
Literatura i linkovi
1. http://www.zemris.fer.hr/~golub/ga/studenti/bozikovic_gpga.pdf 2. Lovrečić, V. Genetski algoritam u primjeni. URL: http://www.zemris.fer.hr/~golub/ga/studenti/lovrecic/Genetski%20algo ritam%20u%20primjeni.htm, 3. http://sr.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80 %D0%B8%D1%82%D0%B0%D0%BC 4. http://www.zemris.fer.hr/~golub/ga/studenti/seminari/2008_djuretec/genalg o.html
18
Sadržaj
1. Uvod...…………………………………………………………………………….1 2. Definicija……...…………………………………………………………………..2 3. Istorijat…...……………………………………………………………………….2 3.1. Borba za opstanak….………………………………….…………...…………3 3.2. Molekul DNK kao nosilac informacija……..………………………...………4 3.3. Osnovna struktura GA….……………………………………………...……..5 4.
Funkcija dobrote..……………………………………………………………….7 4.1. Selekcija….………………………………....…………………………...……7 4.1.1. Jednostavna selekcija ….………………………………………...……...8 4.1.2. Eliminaciska selekcija……...……………………………………..….….9 4.1.3. Turnirska selekcij………...………………………………………….…..9
5. Drugi genetski operateri….……………………………………………………...9 5.1. Rekombinacija-ukrštanje……...……………………………………….……10 5.2. Mutacija…… ………………...………………………………………..…..12 6. Kodiranje hromozoma.…………………………………………………………13 6.1. Binarno kodiranje……………………………………………………………13 6.2. Permutaciono kodiranje………………………………………………….….14 6.3. Kodiranje vrednostima……………………………………………………....14 6.4. Kodiranje stablom……………………………………………………….…..15 7. Dobre i loše strane GA.………………………………………………………....15 7.1. Dore strane GA…...………………………………………………………....15 7.2. Loše strane GA……………………………………………………………..16 Zaključak …..…..……………………………………………………………………17 Literarura & linkovi…..…… ……………………………………………………...18 Sadržaj………………………………………………………………………………19
19
View more...
Comments