Umjetna inteligencija Algoritmi iterativnog poboljšanja i lokalnog pretraživanja Tomislav Šmuc, 2009 13-Oct-10 Algoritmi lokalnog pretraživanja 1
Algoritmi Hill-Climbing Simulirano kaljenje Genetski algoritmi 13-Oct-10 Algoritmi lokalnog pretraživanja 2
Algoritmi lokalnog pretraživanja Kod mnogih problema pretraživanja prostora ili optimizacijskih problema: put do rješenja je irelevantan, cilj je istovremeno i željeno rješenje (realni primjeri: tzv. routing problemi, logistika, optimiranje rasporeda, itd...) prostor stanja - jednak je skupu svih kompletnih konfiguracija; opis bilo kojeg stanja sam po sebi sadrži sve informacije nužne za nekakvo rješenje opis stanja definira vrijednost rješenja! Opis: raspored stvari, redoslijed aktivnosti, vrijednosti (n) varijabli... U tim slučajevima možemo koristiti algoritme lokalnog pretraživanja: - kod tih algoritama dovoljno je da pamtimo samo trenutno stanje (ili jedan manji broj stanja) i nastojimo ga iterativno popravljati. 13-Oct-10 Algoritmi lokalnog pretraživanja 3
Algoritmi lokalnog pretraživanja Korisna vizualizacija: krajolik s brdima i dolinama stanja su točke u tom prostoru u realnim problemima - tražimo ili najviše brdo ili najnižu dolinu; nekad smo prisiljeni zadovoljiti se sa zaravnima (!?) F(n) funkcija cilja globalni maksimum lokalni maksimum Trenutno stanje Prostor stanja 13-Oct-10 Algoritmi lokalnog pretraživanja 4
Algoritmi lokalnog pretraživanja eng. Hill Climbing HC - Metoda uspona na vrh - HC - poput metode pretraživanja u dubinu s tim da se širi onaj čvor koji je najpogodniji prema vrijednosti heurističke funkcije, dok se sve informacije o ostalim čvorovima brišu! Napomena: - HC zemljopisna analogija koja se odnosi na maksimiziranje vrijednosti. - u realnim problemima često se radi o minimizaciji. U tom slučaju deepest hole search (metoda najdublje rupe?) bi bio bolji naziv. Važno - dobar izbor heurističke funkcije! 13-Oct-10 Algoritmi lokalnog pretraživanja 5
Usmjerena pretraživanja HC je pohlepna metoda (engl. Greedy search) Nedostaci HC: brežuljak / udolina - lokalni ekstrem slijedni čvorovi (djeca) imaju lošije vrijednosti heurističke funkcije od roditelja hrbat nekoliko susjednih čvorova ima veće/manje e/manje vrijednosti nego slijedni čvorovi zaravan svi slijedni čvorovi imaju iste vrijednosti, rješenje: slučajan skok Posljedice pohlepnosti : - obično algoritam zaglavi u lokalnom max ili min! Pitanje: Kako tome doskočiti?! 13-Oct-10 Algoritmi lokalnog pretraživanja 6
Simulirano napuštanje (kaljenje) Simulated annealing N. Metropolis, A.W. Rosenbluth, M.N. Rosenbluth. A.H. Teller and E. Teller, "Equation of State Calculations by Fast Computing Machines," J. Chem. Phys. 21 (1953) 1087-1092. Monte Carlo simulacija velik broj sasvim slučajnih pokušaja Metropolis Monte Carlo simulacija koja je srednja energija sustava na temperaturi T? Parametri/varijable algoritma T temperatura sustava N broj slučajnih pokušaja A sum zbroj svojstava stanja tokom simulacije <A(T)> - očekivana vrijednost fizikalnog svojstva sustava na temperaturi T S0 - početno stanje sustava, S1 novo stanje sustava ε energija stanja 13-Oct-10 Algoritmi lokalnog pretraživanja 7
Simulirano napuštanje (kaljenje) Simulated annealing Algoritam MMCS N=0, A sum =0, T, S0, N max 1. Slučajnim promjenama sustava generiraj novo stanje - S1 2. Izračunaj i usporedi energije ε 0 = ε(s0) i ε 1 = ε (S1) te napravi: Ako ε 1 ε 0 (novo stanje je povoljnije (energetski) od prethodnog) S0 S1; A sum =A sum + a 1 ε 1 > ε 0 (staro stanje je povoljnije (energetski) od novog, ali prijelaz u novo stanje zavisi od (ε 1 - ε 0 )/kt) ako [rand() < e -(ε 1 - ε 0 )/kt onda inače S0 S1; A sum =A sum + a 1 S0 S0; A sum =A sum + a 0 3. N=N+1. Nastavi simulaciju novim korakom 1 13-Oct-10 Algoritmi lokalnog pretraživanja 8
Simulirano napuštanje (kaljenje) Simulated annealing Algoritam MMCS Nakon N max koraka: <A>=A sum /N max To je ustvari aproksimacija Boltzmann-ove distribucije, za bilo koje fizikalno svojstvo na temperaturi T! <A(T)>=SUM(a i *e (- ε i /kt) ) / SUM (e (- ε i /kt) ) A sum /N max Aproksimacija je praktički točna ako: za N max promjene stanja u MC simulaciji trebaju biti fino ugođene! 13-Oct-10 Algoritmi lokalnog pretraživanja 9
Simulirano napuštanje (kaljenje) Simulated annealing Kirkpatrick & co (1983) MMCS može biti iskorištena za optimizaciju! Razlike u odnosu na MMCS: Umjesto fizikalnih svojstava na nekoj T: Zanima nas struktura najboljeg rješenja! Energija => Funkcija cilja koju optimiramo kt je vezano uz landscape funkcije cilja Moramo pamtiti konfiguraciju koja daje najbolju vrijednost funkcije cilja bez obzira na trenutnu konfiguraciju rješenja! Zašto? 13-Oct-10 Algoritmi lokalnog pretraživanja 10
Simulirano napuštanje (kaljenje) Simulated annealing -SA SA je probabilistička adaptacija Hill Climbing algoritma! Algoritam iskače iz lokalnih minimuma na višim temperaturama. SA za T >> 0 F(n) funkcija cilja SA za T ~ 0 Prostor stanja 13-Oct-10 Algoritmi lokalnog pretraživanja 11
Simulirano napuštanje (kaljenje) Simulated annealing - SA SA u praksi: - Metropolisov kriterij e -(ε 1 - ε 0 )/kt je vrlo jednostavno implementirati - Finese su u: generiranju novog stanja iz trenutnog ( pametni operatori rekombinacije iz GA priče mogu poslužiti. No, koji?) određivanju početne temperature T 0 i tzv. krivulje hlađenja (en. cooling schedule) 13-Oct-10 Algoritmi lokalnog pretraživanja 12
Primjer problema Primjer problema N-kraljica Staviti N kraljica na tabli (NxN) tako da se međusobno ne tuku (naravno prema šahovskim pravilima) N=4 13-Oct-10 Algoritmi lokalnog pretraživanja 13
N-kraljica Neka je h(n) broj parova kraljica koji se međusobno tuku (direktno ali i indirektno) Koliki je h? Koliki je maksimalni h za n-kraljica? Kako bi izgledao SA algoritam za N-kraljica? 13-Oct-10 Algoritmi lokalnog pretraživanja 14
Evolucijski i genetski algoritmi - Biološki inspirirana heuristika (populacija jedinki -kromosoma): A) Umjesto jednog trenutnog rješenja imamo populaciju trenutno važećih rješenja (jedinki) B) Koristimo operatore inspirirane prirodnom reprodukcijom (rekombinacija, mutacija) C) Koristimo prirodnu selekciju kao mehanizam preživljavanja jedinki (Darwin - survival of the fittest ) D) Izvršavamo A)-C) veći broj generacija pamtimo najbolje rješenje odnosno ako znamo koji rezultat je ciljni (N-kraljica npr.) prekidamo pretraživanje kada smo došli do cilja! 13-Oct-10 Algoritmi lokalnog pretraživanja 15
Evolucijski i genetski algoritmi Roditelj-1 Roditelj-2 Reprodukcija: - rekombinacija jedinki (en. Crossover) Dijete-1 Dijete-2 13-Oct-10 Algoritmi lokalnog pretraživanja 16
Evolucijski i genetski algoritmi Dijete-1 Mutacija: - mala promjena na jedinki (u prirodi i rijetka!) Mutirano dijete -1 13-Oct-10 Algoritmi lokalnog pretraživanja 17
Evolucijski i genetski algoritmi... f 1 f 2 f 3 f 4 f Generacija i (n komada) Rekombinacija + mutacija n... Djeca generacije i (2n komada) f 1 f 2 f 3 f 4 f 2n Selekcija Nova generacija i+1 (n komada)... f 1 f 2 f 3 f 4 f n 13-Oct-10 Algoritmi lokalnog pretraživanja 18
Jednostavni GA pseudo kod GA(Fitness, n,r,m, e bsf,f(e best )) ) Fitness: evaluacija funkcije cilja n veličina populacije r dio populacije koji treba zamijeniti rekombinacijom m učestalost mutacije e bsf best so far rješenje P <- generiraj inicijalnu populaciju (at random) Evaluiraj svakog člana populacije e i P (fitness(e i )=f(e i )) Dok nije zadovoljen STOP-kriterij Inicijalizacija: Kreiraj novu populaciju P S 1. Selekcija: Probabilistički odredi (1-r)*n članova koji se automatski dodaju P S. Vjerojatnost za odabir člana e i iz P: Pr(e i )=f(e i )/(sum i=1,n (f(e i )) 2. Rekombinacija: Probabilistički odredi r*n/2 parova članova iz P prema Pr (e i ). Za svaki par (e i,e j ) napravi 2 djeteta koristeći operator rekombinacije. Dodaj svu djecu u P S 3. Mutacija: Odaberi m-ti dio članova P at random. Svaki od odabranih mutiraj (binarni kod - promijeni jedan bit!) 4. Zamijeni: P<-P S 5. Evaluiraj: za svaki e i P (fitness(e i )=f(e i )) Rješenje: Vrati najbolji (BSF-e bsf,f(e bsf )) iz zadnje populacije P 13-Oct-10 Algoritmi lokalnog pretraživanja 19
Komponente GA Prvo - definicija problema Potom: Reprezentacija - kodiranje rješenja (geni, kromosomi) Inicijalizacijska procedura (stvaranje prve populacije rješenja) Selekcija (reprodukcija) Genetski operatori (mutacija, rekombinacija/križanje) Evaluacijska funkcija (ocjena jedinke u okolišu) Kriteriji zaustavljanja algoritma 13-Oct-10 Algoritmi lokalnog pretraživanja 20
Reprezentacija Empirijski principi Koristimo kodiranje što je moguće bliže prirodnoj reprezentaciji Na osnovu reprezentacije stvaramo genetske operatore Ako je moguće osiguramo da svi stvoreni genotipovi predstavljaju dozvoljena rješenja Ako je moguće genetski operatori bi trebali osiguravati dozovoljena rješenja 13-Oct-10 Algoritmi lokalnog pretraživanja 21
Reprezentacija rješenja (en. encoding) Moguće reprezentacije Niz bitova (0101... 1100) Realni brojevi (3.2 43.1... 0.0 89.2) Permutacije elemenata (G1 G3 G17... G12 G5) Liste (R1 R2 R3... R22 R23) Dijelovi rač. programa (u genetskom programiranju)... Neka druga struktura podataka... 13-Oct-10 Algoritmi lokalnog pretraživanja 22
Inicijalizacija Slučajno generirane jedinke rješenja, ili - Prethodno spremljena populacija - Skup rješenja generiran ručno (ekspert) - Skup rješenja generiran nekim drugim algoritmom 13-Oct-10 Algoritmi lokalnog pretraživanja 23
Selekcija Darwin - survival of the fittest Svrha: Fokusiranje pretraživanja u dijelovima prostora u kojima evaluacijska funkcija postiže bolje vrijednosti Oprez: Treba naći mjeru između istraživanja prostora i brže konvergencije u prostoru rješenja (opasnost od prebrze konvergencije lokalni optimum) 13-Oct-10 Algoritmi lokalnog pretraživanja 24
Selekcija proporcionalna vrijednosti funkcije cilja Holland kao optimalna ravnoteža između istraživanja prostora (exploration) i konvergencije (exploitation) Nedostatak Super-jedinke mogu izazvati (preranu) konvergenciju p( i) f = = npop i= 1 f f i f i, 13-Oct-10 Algoritmi lokalnog pretraživanja 25
Selekcija prema rang listi Bazirano na sortiranju jedinki prema vrijednosti funkcije cilja Vjerojatnost za selekciju i-te jedinke u rangu: 1 i 1 0.1 p( i) = β 2( β 1),1 2 1 β 0.08 n n 1 0.12 0.06 0.04 β očekivani broj izbora najbolje jedinke kod n izbora 0.02 0 0 5 10 15 20 β 2, n=20 β 1, n=20 13-Oct-10 Algoritmi lokalnog pretraživanja 26
Rekombinacija (en. crossover) Svrha Kombinira dijelove rješenja dobrih roditelja da bi nastala još bolja djeca Rezultat Omogućava kretanje rješenja u smjeru povoljnih dijelova prostora rješenja 13-Oct-10 Algoritmi lokalnog pretraživanja 27
Mutacija Svrha: simuliranje efekata grešaka u prirodnim organizmima koji nastaju kod dupliciranja (s malom vjerojatnosti) Rezultat: Dodatno kretanje u prostoru rješenja Mogući popravak ili vraćanje izgubljene informacije u populaciju 13-Oct-10 Algoritmi lokalnog pretraživanja 28
Evaluacija (en. fitness function) Osnovna pravila Rješenje je dobro koliko je dobra evaluacijska funkcija. Rješenja koja su blizu prema vrijednosti funkcije cilja trebala bi biti blizu i prema izgledu kodiranih rješenja (npr. Prema svom binarnom genotipu) 13-Oct-10 Algoritmi lokalnog pretraživanja 29
Algoritmi lokalnog pretraživanja Približna pravila za evolucijske/genetske algoritme: Rekombinacija i mutacija se dešavaju s određenom vjerojatnosti (p x ~ 1 i p m << 1) Odabir (selekcija) roditelja za rekombinaciju: f (i) > f(j) => p x (i) > p x (j) Odabir jedinke za mutaciju u principu slučajan (Selekcija) za slijedeću generaciju: generacijski princip: novih p x djece i (1-p x ) roditelja steady state GA: novo dijete zamjenjuje trenutno najgoru jedinku u populaciji Svaki problem zahtijeva u principu posebnu: a) konstrukciju kromosoma b) operatora rekombinacije i mutacije (podsjeća li to na ono o čemu smo prije čuli?) 13-Oct-10 Algoritmi lokalnog pretraživanja 30
Kriteriji zaustavljanja Primjeri Unaprijed određen broj generacija ili CPU Rješenje zadovoljava neki unaprijed zadan limit Nema poboljšanja kroz niz generacija (NoImp>Nmax) 13-Oct-10 Algoritmi lokalnog pretraživanja 31
GA Reprezentacija rješenja Klasični pristup Fenotip = rješenje Npr. rješenje: n - cjelobrojnih parametara p i genotip: Binarno kodiranje p i -> b i (0/1) 3 slučaja A) p i {0,1,2,3...2^(N-1)} B) p i {K, K+1,..., K+2^(N-1) } C) p i {0,1,2,... K-1} A) p i - može direktno biti kodiran binarno B) (p i K) može direktno biti kodiran binarno C) Više rješenja 13-Oct-10 Algoritmi lokalnog pretraživanja 32
GA Reprezentacija rješenja C) Moguće rješenje clipping N bit =log(k)+1; kodiraj binarno 0<=p<=K-2 (pre) ostali N-bit stringovi kodiraju samo p=k-1 Primjer: p i {0,1,2,... 6} N=log(7)+1=3 p i genotip 0 000 1 001 2 010 3 011 4 100 5 101 6 110; 111 13-Oct-10 Algoritmi lokalnog pretraživanja 33
GA Reprezentacija rješenja Problem s binarnom reprezentacijom: Bliski brojevi imaju drastično različitu binarnu reprezentaciju (razlikuju se u velikom broju bitova!) To je loše za GA zašto? 13-Oct-10 Algoritmi lokalnog pretraživanja 34
Genetski algoritmi tipovi operatora Operatori rekombinacije 13-Oct-10 Algoritmi lokalnog pretraživanja 35
Genetski algoritmi tipovi operatora Operatori rekombinacije 13-Oct-10 Algoritmi lokalnog pretraživanja 36
Genetski algoritmi tipovi operatora Operatori rekombinacije 13-Oct-10 Algoritmi lokalnog pretraživanja 37
Genetski algoritmi tipovi operatora Mutacija 13-Oct-10 Algoritmi lokalnog pretraživanja 38
Operatori rekombinacije i realni problemi Realni problemi: - Binarna reprezentacija nije uvijek najbolja ili ostvariva - Prikazani operatori rekombinacije se rijetko koriste u generičkom obliku - U realnim problemima kromosomi kodiraju stanja koja moraju zadovoljavati određena ograničenja TSP Traveling salesmen problem A problem in graph theory requiring the most efficient (i.e., least total distance) Hamiltonian circuit a salesman can take through each of cities. No general method of solution is known, and the problem is NP-hard. 13-Oct-10 Algoritmi lokalnog pretraživanja 39
TSP Koji put je najkraći, a obuhvaća sve gradove? TSP crossover problem - u jednom kromosomu jedan grad se može pojaviti samo jednom: - ni jedan od prethodno navedenih operatora ne bi mogao garantirati korektan put nakon rekombinacije! Stoga specijalni operatori za TSP (2-opt, k-opt, PMX, CX) 13-Oct-10 Algoritmi lokalnog pretraživanja 40
TSP primjer operatora rekombinacije P1- jedan od mogućih puteva 13-Oct-10 Algoritmi lokalnog pretraživanja 41
TSP PMX za GA P1, P2 dvije moguće instance puteva u grafu - roditelji odabrani za rekombinaciju u našem genetskom algoritmu 13-Oct-10 Algoritmi lokalnog pretraživanja 42
TSP PMX za GA Partially Mapped Crossover (PMX): (Xover =Crossover) choose a subsequence of a tour from one parent and preserve the order and position of as many cities as possible from the other parent Primjer ( predstavlja točke rekombinacije - 2 point X-over) p1 = (1 2 3 5 4 6 7 8 9) p2 = (4 5 2 1 8 7 6 9 3) Djeca: c1 = (x x x 1 8 7 6 x x) c2 = (x x x 5 4 6 7 x x) Točke rekombinacije određuju i mapiranje xxx se nasljeđuje od roditelja, a dijelovi 1876 i 5467 zamjenjuju mjesta! 1 5, 8 4, 7 6, 6 7. 13-Oct-10 Algoritmi lokalnog pretraživanja 43
TSP PMX za GA Točke rekombinacije određuju i mapiranje xxx se nasljeđuje od roditelja, a dijelovi 1876 i 4567 zamjenjuju mjesta! 1 5, 8 4, 7 6, 6 7. p1 = (1 2 3 5 4 6 7 8 9) p2 = (4 5 2 1 8 7 6 9 3) Sad nastupa tricky part. Moramo dopuniti c1 i c2 s preostalim gradovima no tako da nema ponavljanja! Potom ostavimo gradove koji nisu u konfliktu na mjestima koje su imali u p1 i p2, (2,3,9 za c1(p1) i (2,9,3 za c2(p2)): c1 = (x 2 3 1 8 7 6 x 9) c2 = (x x 2 5 4 6 7 9 3) U zadnjem koraku koristimo mapiranja iz 1. koraka, tj 1 5, 8 4 c1 = (5 2 3 1 8 7 6 4 9) c2 = (8 1 2 5 4 6 7 9 3). 13-Oct-10 Algoritmi lokalnog pretraživanja 44
TSP mutacija Kako izgleda operator mutacije? Napomena: Mutacija izaziva (bi trebala izazivati!) male promjene! c1 = (5 2 3 1 8 7 6 4 9) c1m = (5 3 2 1 8 7 6 4 9) 13-Oct-10 Algoritmi lokalnog pretraživanja 45
Kako (zašto) funkcionira genetski algoritam - shema teorem 13-Oct-10 Algoritmi lokalnog pretraživanja 46
Zašto GA funkcioniraju? - Shema teorem teoretski pogled koji objašnjava zašto GA predstavljaju efikasnu proceduru za pretraživanje prostora stanja - Koristit ćemo binarnu reprezentaciju 13-Oct-10 Algoritmi lokalnog pretraživanja 47
Shema {0,1,#} uz 0,1 - # wild card simbol, ili don t care simbol Shema je uzorak koji je karakterističan za određen broj kromosoma Primjer: Shema [1#1#] pokriva slijedeće kromosome: [1010], [1011], [1110] i [1111] 13-Oct-10 Algoritmi lokalnog pretraživanja 48
Red sheme Red sheme S - o(s) je određen brojem fiksiranih pozicija u kromosomu (0 ili 1) Za S 1 = [0#1#1#], o(s 1 ) = 3 Za S 2 = [1#1010], o(s 2 ) = 5 Pokazat će se da je red sheme koristan za određivanje vjerojatnosti preživljavanja sheme uslijed mutacija. 2 l-o(s) broj različitih kromosoma koji odgovaraju shemi S (u principu samo neki od njih se nalaze u konkretnoj populaciji) 13-Oct-10 Algoritmi lokalnog pretraživanja 49
Duljina sheme (en. defining length) Duljina sheme S - δ(s) jest udaljenost od prve do zadnje fiksne pozicije Za S 1 = [01#1#], δ(s 1 ) = 4 1 = 3 Za S 2 = [#1#1010], δ(s 2 ) = 7 2 = 5 Pokazat će se da je red sheme koristan za određivanje vjerojatnosti preživljavanja sheme uslijed rekombinacije 13-Oct-10 Algoritmi lokalnog pretraživanja 50
Oznake m(s,t) - broj jedinki u populaciji koji pripadaju određenoj shemi S u generaciji t f S (t) prosječna vrijednost funkcije cilja jedinki koje pripadaju shemi S u generaciji t f (t) prosječna vrijednost funkcije cilja svih jedinki populacije u generaciji t 13-Oct-10 Algoritmi lokalnog pretraživanja 51
Efekt selekcije Pod proporcionalnom selekcijom očekivani broj jedinki koji pripada shemi S u generaciji t+1 m (S,t+1) = m (S,t) * ( f S (t)/f (t) ) Uz pretpostavku da shema S ostaje iznad prosječnom uz neku konstantu c, 0 c, (t.j., f S (t) = f (t) + c f (t) ), onda vrjiedi: S m (S,t) = m (S,0) (1 + c) t Tumačenje: iznad prosječna shema dobiva eksponencijalno povećavajući broj jedinki u slijedećoj generaciji 13-Oct-10 Algoritmi lokalnog pretraživanja 52
Efekt rekombinacije Vjerojatnost da će shema preživjeti rekombinaciju uz S ( S = l) je p s (S) 1 p c (δ(s)/(l 1)) Kombinirani efekt selekcije i rekombinacije je: m (S,t+1) m (S,t) ( f S (t)/f (t) ) [1 - p c (δ(s)/(l 1))] Iznad prosječne sheme, s kratkim definirajućim duljinama biti će selektirane uz eksponencijalno povećavajuću vjerojatnost. 13-Oct-10 Algoritmi lokalnog pretraživanja 53
Efekt mutacije Vjerojatnost da shema S preživi mutaciju je: p s (S) = (1 p m ) o(s) Kako je uobičajeno p m << 1, ova se vjerojatnost može aproksimirati: p s (S) 1 p m o(s) Konačno, kombinirani efekti selekcije, rekombinacije i mutacije se mogu sažeti u: m (S,t+1) m (S,t) ( f S (t)/f (t) ) [1 - p c (δ(s)/(l 1)) -p m o(s)] Building block hipoteza Genetski algoritam predstavlja proces traženja blizu-optimalnog rješenja kombiniranjem kratkih, iznad-prosječnih (po vrijednosti funckije cilja) shema niskog reda, koje još nazivamo gradbenim blokovima (en. building blocks) 13-Oct-10 Algoritmi lokalnog pretraživanja 54
Building Block Hipoteza Kako se boriti protiv nezgodnih funkcija cilja: Pitanje: - drukčije kodiranje rješenja - novi genetski operatori (npr. inverzija) Što je u slučaju kodiranja problema sa cjelobrojnim/kontinuiranim varijablama u binarnu reprezentaciju problematično Što je Gray coding? 13-Oct-10 Algoritmi lokalnog pretraživanja 55