Neuronske mreže: Genetički algoritmi Prof. dr. sc. Sven Lončarić Fakultet elektrotehnike i računarstva sven.loncaric@fer.hr http://ipg.zesoi.fer.hr 1
Uvod U mnogim primjenama pojavljuje se problem optimizacije neke veličine (funkcije) koja ovisi o nekim drugim veličinama (varijablama) Funkcija koju treba optimizirati često se ne može prikazati jednostavnim analitičkim izrazom tako da analitičko rješenje nije moguće Često je potrebno ostvariti kombinatornu optimizaciju tj. optimizaciju gdje postoji konačni ali veoma veliki broj kombinacija ulaznih varijabli Zbog velikog broja kombinacija nije moguće napraviti iscrpno pretraživanje 2
Uvod Genetički algoritmi (GA) su efikasan alat za rješavanje kombinatornih optimizacijskih problema GA je jedna alternativa simuliranom hlađenju Prva GA istraživanja 1970-ih godina (Holland) Sve više se koristi i općenitiji pojam Evolucijske strategije i algoritmi koji uključuje i GA Simulirano hlađenje je inspirirano termodinamikom GA su inspirirani procesom prirodne selekcije gdje samo najefikasnije vrste opstaju 3
GA i simulirano hlađenje GA i simulirano hlađenje su slični u smislu da oba algoritma koriste stohastičko pretraživanje optimizacijskog prostora Obje metode s velikom vjerojatnošću nalaze optimalno rješenje (minimum funkcije cijene) Preciznije rečeno, obje metode daju rješenje koje je blisko optimalnom što je često zadovoljavajuće u praksi (nema garancije da je nađeno baš točno optimalno rješenje u matematičkom smislu) 4
Uvod Dvije glavne vrste algoritama u ovoj grupi su: Evolucijske strategije Genetički algoritmi Evolucijske strategije koriste mutacije za pretraživanje optimizacijskog prostora Glavna razlika između genetičkih algoritama i evolucijskih strategija je da genetički algoritmi koriste selekciju, križanje i mutaciju, a evolucijske strategije koriste samo mutacije kao glavni mehanizam pretraživanja 5
Trenutno stanje područja Evolucijske tehnike su područje aktivnog istraživanja Primjene u puno različitih područja Postoje časopisi i konferencije posvećeni isključivo ovim tehnikama 6
Literatura D. E. Goldberg, Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley, 1989 M. Mitchell, An Introduction to Genetic Algorithms, MIT Press, 1998 L. Davis, ed., Handbook of Genetic Algorithms, Van Nostrand Reinhold, 1991 M. Srinivas, L. M. Patnaik, Genetic Algorithms: A Survey, IEEE Computer, Vol. 27, No. 6, pp. 17-26, 1994 7
Pregled predavanja Uvod Prirodna selekcija Osnovni genetički algoritam Kako radi genetički algoritam Modifikacije osnovnog genetičkog algoritma 8
Prirodna selekcija U prirodi preživljavaju samo one individue (jedinke) koje su najbolje u borbi za životne resurse Sposobnost prilagođavanja promjenjivoj okolini je ključna kvaliteta nužna za preživljavanje jedinki pojedine vrste Svojstva svake individue određena su njenom genetičkom slikom 9
Geni i kromosomi Svako svojstvo neke individue određeno je osnovnom jedinicom koja se zove gen Nizovi gena koji određuju svojstva zovu se kromosomi Kromosom je ključ o kojem ovisi preživljavanje jedinke u kompetitivnoj okolini 10
Evolucija Evolucija je niz promjena u svojstvima vrsta U suštini, evolucija je niz promjena u genetskom materijalu neke vrste Evolucija je rezultat prirodne selekcije i rekombinacije genetskog materijala prilikom reprodukcije 11
Evolucija U prirodi, u borbi za hranu, prostor i partnere za reprodukciju, najjače jedinke pobjeđuju i dominiraju nad slabijima Najjači preživljavaju pa tako i njihov genetički materijal ostaje, a slabi izumiru pa nestaje i njihov genetički materijal Na taj način se u prirodi eliminira genetički materijal jedinki koje nisu efikasne 12
Reprodukcija u prirodi Proces reprodukcije generira raznolikost u skupu gena U procesu reprodukcije dolazi do rekombinacije genetičkog materijala (kromosoma) dvaju roditelja Rekombinacija se vrši tako da se dijelovi kromosoma dvaju roditelja zamijene Ovaj proces zove se križanje (engl. crossover) Uzastopnom prirodnom selekcijom i reprodukcijom dolazi do kontinuirane evolucije u skupu gena 13
Koncept genetičkog algoritma Holland je predložio 1970-ih godina algoritam koji imitira proces evolucije u prirodi i nazvao ga genetički algoritam GA manipulira populaciju jedinki koje predstavljaju potencijalna rješenja za neki optimizacijski problem GA radi s kodiranim predstavnicima rješenja koja su ekvivalentna genetičkom materijalu jedinke u prirodi 14
Koncept genetičkog algoritma Hollandov algoritam predstavlja rješenja kao nizove bitova Svakom rješenju pridružena je numerička vrijednost koja opisuje prikladnost (kvalitetu) rješenja u odnosu na ostale jedinke u populaciji (engl. fitness value) 15
Koncept genetičkog algoritma Što je prikladnost veća, veće su šanse za opstanak pa onda i za reprodukciju Rekombinacija gena u procesu reprodukcije simulira se mehanizmom križanja gdje se zamjenjuju dijelovi nizova koji predstavljaju kromosome U procesu reprodukcije nakon križanja koristi se i operacija mutacije koja povremeno slučajno mijenja vrijednost bitova u nizu (tj. gena u kromosomu) Uloga mutacije u prirodi je da regenerira izgubljeni genetički materijal 16
Osnovni genetički algoritam Populacija (ili generacija) se sastoji od binarnih nizova Svaki binarni niz je kodirani kandidat za rješenje optimizacijskog problema Selekcija rješenja za slijedeću generaciju obavlja se na temelju prikladnosti Korištenjem genetičkih operatora križanja i mutacije algoritam pomoću nizova iz sadašnje generacije stvara slijedeću generaciju Generacijski ciklus se ponavlja sve dok nije zadovoljen neki kriterij zaustavljanja 17
Osnovni genetički algoritam Algoritam osnovni_genetički_algoritam () { inicijaliziraj populaciju; evaluiraj populaciju; dok kriterij zaustavljanja nije ispunjen ponavljaj { izaberi individue za slijedeću generaciju; obavi križanje i mutaciju; evaluiraj populaciju; } } 18
Osnovni genetički algoritam Za realizaciju osnovnog genetičkog algoritma potrebno je riješiti slijedeća pitanja: Način kodiranja rješenja u obliku niza bitova Definicija funkcije prikladnosti (engl. fitness function) Način selekcije Način križanja Način mutacije Generacijski ciklus 19
Način kodiranja Način kodiranja je bitan element GA koji određuje kako se rješenje predstavlja pomoću binarnog niza Način kodiranja je specifičan i ovisi o određenom problemu koji se želi riješiti Rješenja nekih problema su kontinuirane varijable, a nekih drugih problema su binarne varijable Kod kontinuiranih problema potrebno je diskretizirati kontinuiranu varijablu i onda je prikazati binarnim brojem Kod problema koji su diskretni prirodno je i lako kodirati varijable binarnim brojem 20
Kodiranje realnih varijabli Mnogi problemi zahtijevaju realne varijable Najčešći način kodiranja je da se realni interval preslika u interval cijelih brojeva koristeći fiksni broj bitova Primjer: Pretpostavimo li da je realna varijabla u intervalu od [- 1,28, 1,27] i da želimo preciznost od dvije decimale onda treba: 1. vrijednost realne varijable pomnožiti sa 100 2. zaokružiti dobivenu vrijednost na cijeli broj koji je u rasponu [-128, 127] 3. predstaviti dobiveni cijeli broj 8-bitovnim binarnim kodom 21
Funkcija prikladnosti engl. fitness function Svaki optimizacijski problem ima funkciju koja se želi optimizirati i koja ovisi o problemu Da bi se postigla uniformnost za razne probleme može se koristiti funkcija prikladnosti normirana na interval [0,1] Takva funkcija prikladnosti može se dobiti linearnim preslikavanjem optimizacijske funkcije danog problema na realni interval [0,1] Vrijednost 0 znači da dano rješenje nije optimalno, a vrijednost 1 znači da je rješenje optimalno 22
Selekcija Proces selekcije imitira prirodnu selekciju u kojoj individue koje su uspješnije preživljavaju dok neuspješne (neprikladne) izumiru Kod osnovnog GA koristi se proporcionalna selekcija Kod proporcionalne selekcije je vjerojatnost preživljavanja i-te individue proporcionalna f i / f av gdje je f i prikladnost i-te individue, a f av srednja prikladnost u populaciji 23
Roulette selekcija Za implementaciju proporcionalne selekcije može se koristiti posebni rulet gdje svakoj individui pripada sektor ruleta s središnjim kutem jednakim 2π/N f i / f av, gdje je N veličina populacije Na taj način je vjerojatnost odabira proporcionalna prikladnosti f i individue Rulet se zavrti N puta i svaki put odabere jedna jedinka za novu generaciju Odabrani broj jedinki približava se željenom samo za veliki broj individua u populaciji 24
Križanje Nakon selekcije obavlja se križanje tako da se slučajno odaberu parovi Osnovni GA koristi najjednostavniji pristup: križanje u jednoj točki (engl. single-point crossover) Odabere se slučajno (s uniformnom razdiobom) broj između 1 i l-1 (l je duljina kromosoma) Dijelovi nizova odabranog para nakon te točke se zamijene 0 l-1 0 l-1 25
Križanje Križanje se ne provodi uvijek Definirana je vjerojatnost p c s kojom se provodi križanje Nakon što se odabere par nizova križanje se provodi samo ako je broj generiran uniformnim slučajnim generatorom u intervalu [0,1] manji od p c Na taj način za velike populacije p c predstavlja dio populacije koji je križan 26
Mutacija Nakon križanja na nizovima se obavlja mutacija Uloga mutacije je da obnovi izgubljeni genetički materijal Npr. ako svi nizovi u populaciji imaju 0 na nekoj poziciji a optimalno rješenje ima 1 na toj poziciji, križanje ne može regenerirati 1 na toj poziciji, a mutacija može 27
Mutacija Mutacija bita u nizu mijenja stanje tog bita u suprotnu vrijednost (0 u 1 ili 1 u 0) Definirana je vjerojatnost p m mutacije nekog bita Bitovi u nizu se mutiraju neovisno (tj. mutacija jednog bita ne utječe na vjerojatnost mutacije drugih bitova) 28
Generacijski ciklus Jedan generacijski ciklus uključuje selekciju, križanje i mutaciju Veličina populacije je obično 30-200, vjerojatnost križanja je 0,5-1,0 a vjerojatnost mutacije je 0,001-0,05 Ovi parametri zovu se upravljački parametri za GA 29
Kriterij zaustavljanja algoritma Potrebno je definirati i kriterij zaustavljanja algoritma Neki mogući kriteriji zaustavljanja: 1. Nakon fiksnog broja iteracija 2. Nakon što je pronađen niz određene prikladnosti 3. Nakon što svi nizovi u populaciji postanu slični 30
Primjer generacijskog ciklusa Početna populacija: 0000011100 0,3 1000011111 0,6 0110101011 0,6 1111111011 0,9 Nakon križanja: 1000011011 0,5 0110101011 0,6 1111111011 0,9 1111111111 1,0 Nakon selekcije: 1000011111 0,6 0110101011 0,6 1111111011 0,9 1111111011 0,9 Nakon mutacije: 1000011011 0,5 0110111011 0,7 1111111011 0,9 0111111111 0,9 31
Modifikacije osnovnog GA Modifikacije osnovnog algoritma moguće su kroz: druge načine selekcije druge načine križanja druge načine kodiranja adaptivnu promjenu kontrolnih parametara skaliranje vrijednosti prikladnosti (engl. fitness scaling) paralelne i distribuirane GA 32
Mane proporcionalne selekcije Kod proporcionalne selekcije vjerojatnost odabira proporcionalna je kvocijentu prikladnosti individue i prosječne prikladnosti u populaciji Mana ovog načina je da ukoliko se u ranoj fazi slučajno pronađe jedan niz s visokom prikladnošću, taj niz će biti jako reproduciran (favoriziran) u odnosu na ostale i doći će do preuranjene konvergencije algoritma U kasnoj fazi kad su sve individue u populaciji slične, sve individue će se podjednako reproducirati pa neće biti mehanizma prirodne selekcije koji će promovirati najbolje 33
Skaliranje prikladnosti Mane proporcionalne selekcije mogu se izbjeći skaliranjem vrijednosti prikladnosti Linarno skaliranje se radi prema izrazu f `=af+b gdje je f originalna prikladnost, f ` nova prikladnost, a a i b konstante Konstante a i b se odrede ta svaku generaciju tako da je maksimalna vrijednost prikladnosti f ` neki mali broj (1,5-2,0) puta prosječna prikladnost generacije i da prosječna prikladnost generacije bude očuvana Na taj način se za svaki niz može očekivati 1,5-2 potomka 34
Drugi načini križanja Križanje treba zadovoljiti dva kontradiktorna zahtjeva: omogućiti istraživanje optimizacijskog prostora tj. stvaranje novih kombinacija (engl. exploration) omogućiti čuvanje tj. korištenje dosad nađenih dobrih rješenja (engl. exploitation) Kod križanja u dvije točke slučajno se odaberu dvije točke i segmenti nizova između točaka se zamijene Slično se križanje može provoditi u više točaka Uniformno križanje zamjenjuje sve bitove u nizu (bit po bit) s nekom vjerojatnošću 35
Kontrolni parametri Pravilnim izborom parametara postiže se ravnoteža između pretraživanja (exploration) i korištenje dotad pronađenih rješenja (exploitation) Veća vjerojatnost križanja pojačava pretraživanje ali smanjuje čuvanje postojećih rješenja Veća vjerojatnost mutacije pretvara genetičko pretraživanje u slučajno pretraživanje ali pomaže uvođenju novog genetičkog materijala Veća populacija smanjuje vjerojatnost prerane konvergencije ali i povećava vrijeme računanja 36
Izbor kontrolnih parametara Izbor parametara je otvoreni problem Neka istraživanja su pokazala dva moguća pristupa: mala populacija (30) i veće vjerojatnosti križanja (0,9) i mutacije (0,01) veća populacija (100) i manje vjerojatnosti križanja (0,6) i mutacije (0,001) 37
Kodiranje Najčešće se koristi binarno kodiranje Mana binarnog kodiranja je postojanje tzv. Hammingovih klifova (engl. Hamming cliffs) Hammingovi klifovi su velike Hammingove udaljenosti između binarnih kodova uzastopnih cijelih brojeva 38
Kodiranje Npr. Hammingova udaljenost nizova 01111 i 10000 koji predstavljaju brojeve 15 i 16 je jednaka 5 Da bi GA promjenio kod sa 15 na 16 mora promjeniti vrijednost svih bitova, što predstavlja problem za GA Da bi se ovaj problem izbjegao može se umjesto običnog binarnog koda koristiti Grayov kod gdje je Hammingova udaljenost susjednih kodova uvijek 1 39
Kodiranje pomoću stabala Prikaz kromosoma odnosno individue pomoću stabla (engl. Tree encodings) Problemi: stabla imaju više slobode u svojoj formi i mogu se nekontrolirano povećavati Još uvijek u fazi istraživanja primjene nisu česte Primjeri: John Koza, genetičko programiranje u LISP-u, 1993 Evoluirajući celularni automati, 1993 40
Adaptivno kodiranje Optimalni način kodiranja ovisi o danom problemu Svaki problem ima neki najbolji/najprirodniji način kodiranja Razmišljanja o najboljem načinu kodiranja dovela su do ideje adaptivnog kodiranja Kod adaptivnog kodiranja duljina i/ili struktura koda ne moraju biti fiksne nego mogu evoluirati Motivacija: u prirodi su prvo nastali jednostavniji organizmi, a tek onda složeniji 41
GA programska podrška Programski paketi za GA mogu se podijeliti na: aplikacijski orijentirane pakete (kriju GA detalje) algoritmički orijentirane pakete (sadrže biblioteke različitih algoritama) GA toolkit-ovi (omogućuju eksperimentiranje s GA, edukacija) Najpoznatiji paket za razvoj i simulaciju GA je Genesis Genesis radi na svim platformama koje imaju C jezik Genesis je dostupan na Internetu 42
Zaključak GA je područje aktivnog istraživanja s puno otvorenih problema GA je postalo posebno područje Ima još puno teoretskih i praktičnih problema koje treba riješiti prije nego što GA može postati alternativa konvencionalnim optimizacijskim tehnikama 43