Pretraživanje prostora stanja 2. GA, SA Vježbe iz umjetne inteligencije Matko Bošnjak, 2010
Genetski algoritam Što ako trebamo pretražiti potpuni prostor stanja koji je toliko velik (možda i beskonačan) da je to neizvedivo u realnom vremenu? Tražimo rješenje u prirodi evolucija informacija zakodirana u genima, mijenja se tijekom evolucije u početku imamo neku populaciju populacija je pod utjecajem okoliša [SELEKCIJA] bolji opstaju (samo bolji?) neke jedinke iz populacije se razmnožavaju i dobivaju potomke [KRIŽANJE] a tu i tamo uleti i neka mutacija (virus, radijacija, kozmičke zrake, božja ruka?) [MUTACIJA] i onda sve ispočetka...
PSEUDOKOD: Genetski algoritam GA { generiraj početnu populaciju potencijalnih rješenja sve dok nije zadovoljen uvjet završetka evolucijskog procesa { selektiraj jedinke iz skupa potencijalnih rješenja prema nekoj funkciji cilja križaj jedinke mutiraj jedinke } ispiši rješenje }
Genetski algoritam Reprezentacija rješenja Binarni prikaz konačan broj mogućih rješenja (određen broj bitova) u intervalu [dg, gg] svaki kromosom je niz od n bitova jedna vrijednost iz [dg, gg] (ukupno 2 n vrijednosti) preslikavanje binarni broj b realni broj x x dg n b b = ( 2 1) x = dg + ( gg dg) n gg dg 2 1 željena preciznost rješenja na p decimala određuje duljinu kromosoma n p n ( gg dg) *10 < 2 1 n p log ( gg dg) *10 + 1 log 2 funkcije više varijabli više brojeva u jednom kromosomu Grayev kod Prikaz permutiranim nizom (kasnije u primjeru) ulogu imaju i pozicija broja u nizu i vrijednost tog broja i još mnogo drugih...(stabla)
Genetski algoritam Funkcija cilja/dobrote ocjena kvalitete pojedine jedinke najčešće za svaki problem definiramo preslikavanje optimizacijske funkcije u funkciju dobrote F najveća f u populaciji =f max, dobrota F i =f MAX -f i Generiranje početne populacije obično slučajno odabrana rješenja (npr. slučajne vrijednosti iz intervala [dg, gg]) parametar VEL_POP (veličina populacije)
Selekcija Genetski algoritam preživljavanje dobrih, odumiranje loših jedinki (svaka ima vjerojatnost preživljavanja) generacijski nova populacija se stvara od elemenata stare eliminacijski neke jedinke se eliminiraju, nove ih nadoknađuju parametar (postotak eliminacije)
Genetski algoritam Jednostavni odabir (eng. roulette wheel selection) generacijski izračunaju se dobrote svih jedinki D i te ukupna dobrota populacije D D = izračunaju se kumulativne dobrote q k za svaki kromosom q k VEL _ POP D i i= 1 k = i= 1 D dobrote se poslažu na pravac i, k = 1,2,..., VEL _ POP 0 q 1 q 2 q 3 q i-1 q i q VEL_POP-1 D 1 D 2 D i D 3 D generira se slučajni broj r [0, D] i odabere se jedan kromosom za sljedeću generaciju ponavlja se VEL_POP puta eliminacijski mjera nekvalitete (kazna) D -1 = D max - D i opet se gradi pravac, ovaj puta s kaznama
Genetski algoritam Turnirski odabir (eng. tournament selection) generacijski slučajni odabir k jedinki, najbolja od njih se kopira u novu generaciju eliminacijski slučajni odabir k jedinki, najlošija se eliminira i zamjenjuje novom
Genetski algoritam Križanje binarni operator ( roditelji prenose svojstva na dijete ) križanje s k točaka prekida roditelj1: 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 roditelj2: 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 1 1 dijete1: 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 dijete2: 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 uniformno križanje DIJETE = AB + R( A B) roditelj1: roditelj2: maska: 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 dijete1: 1 0 0 0 1 1 0 0 1 0 0 1 1 0 1 1 0 1 0 1 1 0 0 1 (vjerojatnost križanja) samo generacijski odabir!
Genetski algoritam Mutacija jednostavna mutacija slučajna promjena jednog bita unutar kromosoma roditelj: dijete: 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 parametar p m (vjerojatnost mutacije jednog bita) vjerojatnost mutacije kromosoma: p M = 1 - (1 - p m ) n uloga mutacije izbjeći lokalni optimum obnoviti izgubljeni genetski materijal
Genetski algoritam Uvjet završetka procesa (uvjet zaustavljanja) dostignut broj iteracija konvergencija (nema promjena u zadnjih k iteracija)...
Genetski algoritam zadatak Zadatak 7. Genetskim algoritmom tražimo minimum funkcije f(x)=(x-1) 2 u intervalu x [0, 2]. Koristi se binarni prikaz kromosoma uz željenu preciznost rješenja od 2 decimale. Potrebno je prikazati početna rješenja (kromosome) 0.15, 0.45, 0.65, 1.25 i 1.9 i izvršiti postupak eliminacijske selekcije 3- turnirskim odabirom. Eliminirajte jedinku s najvećom vjerojatnošću eliminacije i nadomjestite je novom, nastalom križanjem s jednom točkom prekida između dvije slučajno odabrane jedinke te izračunajte realnu vrijednost i dobrotu nove jedinke. Izvršite operator jednostavne mutacije nad proizvoljno odabranom jedinkom.
Genetski algoritam primjer Problem trgovačkog putnika TSP (eng. Traveling salesman problem) uz dani broj gradova i trošak puta između njih, koji je najkraći put koji prolazi kroz svaki grad točno jedamput i završava u početnom gradu u potpunom težinskom grafu pronaći najkraći hamiltonov ciklus (teorija grafova) Formulirajmo problem: Početno stanje proizvoljni početni grad Stanja n!, ½(n-1)! hamiltonovih ciklusa Funkcija prijelaza prijelaz do drugog grada bez ponavljanja Ciljna funkcija pronaći najmanji mogući put Trošak puta trošak puta do ciljanog grada NP-težak problem želimo optimalno rješenje (pretražiti čitav prostor rješenja) faktorijelna složenost neizvedivo u realnom vremenu (svedivo na eksponencijalnu složenost, svejedno izuzetno težak problem) 15 gradova 43 sekunde 20 gradova 2 godine!!! (pretpostavka od milijardu operacija po sekundi) odustajemo od optimalnog želimo suboptimalno rješenje
Genetski algoritam primjer Početna populacija Reprezentacija rješenja 1 2 8 3 7 1 2 3 4 5 6 7 8 4 6 5
Genetski algoritam primjer Uvjet završetka evolucijskog procesa broj iteracija Funkcija dobrote duljina ciklusa (šetnje) Selekcija poredamo rješenja po vrijednosti funkcije dobrote i uzmemo prvih n najboljih jedinki Genetski operatori...
Genetski algoritam primjer Križanje 1 PMX križanje (eng. Partially Matched Crossover) 1 2 7 5 3 4 5 6 7 8 4 1 8 3 6 2 Križanje 2 1 2 3 4 5 6 7 8 7 5 4 1 8 3 6 2...isto tako i s drugom jedinkom
Genetski algoritam primjer Mutacija 2opt metoda okreće poredak gradova u podstazi 1 1 2 8 2 8 3 7 3 7 4 6 4 6 5 5 1 2 3 4 5 6 7 8
Genetski algoritam komentari Prednosti mogu rješavati proizvoljne optimizacijske probleme rezultat je skup rješenja postupak rješavanja se može proizvoljno ponavljati jednostavna implementacija velike mogućnosti nadogradnje i povećanja učinkovitosti Nedostaci vrlo često je potrebno prilagoditi problem rješenje uvelike ovisi o odabiru parametara priroda rješenja nepoznata nije optimalan (ne garantira pronalazak globalnog rješenja) sporo izvođenje
Simulirano kaljenje Optimizacijska metoda koja oponaša proces kaljenja fizikalni proces zagrijavanja i hlađenja tvari na kontrolirani način željeni rezultat je jaka kristalna struktura ukoliko se hladi brzo, struktura postaje defektivna i krta rezultantna struktura je naše zakodirano rješenje, a temperatura se koristi da bi se odredilo koliko se entropije treba uvesti u pretragu
PSEUDOKOD... Simulirano kaljenje SA { } } (nasumično) inicijaliziraj početno_rješenje trenutno_rješenje = početno_rješenje procjeni trenutno_rješenje sve dok temperatura > konačna_temperatura { ponavljaj X puta{ radno_rješenje = trenutno_rješenje (nasumično) modificiraj radno_rješenje procijeni radno_rješenje ako radno_rješenje bolje od trenutno_rješenje trenutno_rješenje = radno_rješenje inače E izračunaj vjerojatnost rješenja P( E) = exp( ) T ako radno_rješenje prihvaćeno pod vjerojatnošću P trenutno_rješenje = radno_rješenje } smanji temperaturu T i+1 = α*t i //inicijalno rješenje //početna procjena rješenja //metropolis monte-carlo simulacija //modificiranje rješenja (veliko->malo) //procjena rješenja //metropolis kriterij za prihvaćanje //redukcija temperature
Simulirano kaljenje primjer Opet TSP... Reprezentacija rješenja ista kao kod GA Modificiranje rješenja 2opt mutacija
Primjena Koncept pretraživanja primjenjiv je kod raznih (razreda) problema: igre optimizacijski problemi (SA i GA neprocjenjivi) razmještaj komponenata u VLSI sklopovima autonomna navigacija, navigacija robota preusmjeravanje telekomunikacijskih paketa (routing problemi) problemi obilaska pretraživanje WWW-a automatic assembly sequencing protein design......
Što dalje? Genetski algoritam (tek smo zagrebali površinu) Ant Colony Optimization Bees algorithm... Constraint satisfaction problems...
Literatura Umjetna inteligencija S. Russel, P. Norvig, Artificial Intelligence: A Modern Approach, 2Ed M. T. Jones, AI Application Programming, 2Ed Algoritmi R. Sedgewick, Algorithms in C/C++/Java, Part 5 (Graph Algorithms) T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduction to Algorithms, 2Ed Teorija grafova D. Veljan, Kombinatorna i diskretna matematika R. Diestel, Graph Theory Genetski algoritam http://www.zemris.fer.hr/~golub/ga/ga.html
Dodatni zadatak Zadatak Zadana je slijedeća funkcija za koju želimo naći maksimalnu vrijednost korištenjem genetskog algoritma: f = 2(a + b) 2 (c d + 2e)+3 gdje su a-e Boole-ve varijable (0,1). a) Izračunaj f za svaki od članova populacije genetskog algoritma u niže navedenoj tablici i pretpostavi da je f istovremeno i dobrota rješenja. Izračunaj vjerojatnost za svakog od članova da bude odabran za reprodukciju ukoliko se koristi selekcija prema kriteriju proporcionalne selekcije (fitness-proportional selection). a b c d e dobrota(fitness) vjerojatnost reprodukcije 1 1 0 1 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 0 b) Uz pretpostavku da su u procesu selekcije slučajno odabrana prva dva člana za rekombinaciju, te uz uniformni oblik rekombinacije odredi rezultirajuće potomke. Isto to napravi za rekombinaciju u jednoj točki između b i c.