Vetaka Inteligencija Genetski algoritmi Primer Genetski algoritmi su

  • Slides: 23
Download presentation
Veštačka Inteligencija Genetski algoritmi Primer

Veštačka Inteligencija Genetski algoritmi Primer

Genetski algoritmi su algoritmi za pretragu koji na primitivan način reflektuju neke od procesa

Genetski algoritmi su algoritmi za pretragu koji na primitivan način reflektuju neke od procesa prirodne evolucije. Inženjeri i naučnici obično ne obraćaju posebnu pažnju na biološke osnove genetskih algoritama, nego se koncentrišu na njihovu mogućnosti kod analiziranja raznih problema. 2

Genetski algoritmi pripadaju evolucionim proračunima (Evolutionary Computing) – EC, i kao takvi rade sa

Genetski algoritmi pripadaju evolucionim proračunima (Evolutionary Computing) – EC, i kao takvi rade sa populacijom tačaka u prostoru za pretragu, a ne samo sa jednim potencijalnih rešenjem. Svaka od “tačaka” je jedan vektor u hiperprostoru koji reprezentuje jednog kandidata, ili jedno potencijalno rešenje datog problema za optimizaciju. Populacija nije ništa drugo nego skup vektora u hiperprostoru. 3

Genetski algoritmi Svaki vektor u populaciji naziva je individua ili jedinka. Zbog analogije sa

Genetski algoritmi Svaki vektor u populaciji naziva je individua ili jedinka. Zbog analogije sa genetskom evolucijom organizama, ponekad se individua naziva hromozomom. Broj elemenata u svakom vektoru (individui) jednak je broju stvarnih parametara nekog problema za optimizaciju. 4

Genetski algoritmi Prilikom implementiranja običnog (kanoničkog) genetskog algoritma, izvodi se sledeći niz operacija: 1.

Genetski algoritmi Prilikom implementiranja običnog (kanoničkog) genetskog algoritma, izvodi se sledeći niz operacija: 1. 2. 3. 4. 5. Inicijalizacija populacije Izračunavanje fitnesa svake od jedinki u populaciji Reprodukcija izabranih jedinki za formiranje nove populacije Izvođenje genetskih operacija rekombinacije (ukrštanja) i mutacije na populaciji. Ponovno ponavljanje postupka od koraka 2 dok se ne zadovolji neki od kriterijuma za zaustavljanje. 5

Genetski algoritmi Najbolji način za upoznavanje sa genetskim algoritmima je preko jednog primera. Implementacija

Genetski algoritmi Najbolji način za upoznavanje sa genetskim algoritmima je preko jednog primera. Implementacija jednostavnog genetskog algoritma nije ništa drugo nego kopiranje stringova, promena dela stringova, i promena bitova unutar stringa. 6

Genetski algoritmi U našem primeru treba da nađemo vrednost za x koji će maksimizirati

Genetski algoritmi U našem primeru treba da nađemo vrednost za x koji će maksimizirati funkciju na intervalu pri čemu je x ograničen na celobrojne vrednosti. Ovo je sinusna funkcija od 0 do π radijana. Maksimalna vrednost funkcije je 1, i javlja se za π/2, to jest za x=128. 7

Genetski algoritmi U ovom primeru postoji samo jedna promenljiva: x. Pretpostavimo da koristimo binarni

Genetski algoritmi U ovom primeru postoji samo jedna promenljiva: x. Pretpostavimo da koristimo binarni alfabet. Prvo treba da odlučimo kako da predstavimo promenljivu. Pošto x može uzimati vrednosti samo iz intervala 0 -255, logično je da ćemo svaku jedinku predstaviti sa 8 -bitnim binarnim stringom. 8

Genetski algoritmi Binarni broj 0000 predstavljaće 0, dok će binarni broj 1111 predstavljati 255.

Genetski algoritmi Binarni broj 0000 predstavljaće 0, dok će binarni broj 1111 predstavljati 255. Sledeće treba odlučiti koliko jedinki će činiti populaciju. Obično se bira da broj jedinki bude između nekoliko desetina i nekoliko stotina. U našem ilustrativnom primeru populacija će se sastojati od 8 jedinki. Sledeći korak je inicijalizacija populacije. To se radi slučajno. 9

Genetski algoritmi f(x) obeležava fitnes (dobrotu) individue. 10

Genetski algoritmi f(x) obeležava fitnes (dobrotu) individue. 10

Reprodukcija Nakon izračunavanja fitnesa, sledeći korak je reprodukcija. Reprodukcija je formiranje nove populacije sa

Reprodukcija Nakon izračunavanja fitnesa, sledeći korak je reprodukcija. Reprodukcija je formiranje nove populacije sa istim brojem individua selektovanjem članova trenutne populacije metodom stohastičkog izbora. Verovatnoća izbora svake jedinke zavisi od njenog fitnesa. Što je fitnes date jedinke veći, njena šansa za reprodukciju će takođe biti veći. U našem primeru, suma fitnesa svih individua inicijalne populacije je 5. 083. Deljenjem svakog fitnesa sa 5. 083 dolazimo do normalizovanog fitnesa za svaku jedinku. Suma normalizovanih fitnesa je 1. 11

Reprodukcija Normalizovane fitnes vrednosti koriste se u procesu koji se zove “rulet točak”, gde

Reprodukcija Normalizovane fitnes vrednosti koriste se u procesu koji se zove “rulet točak”, gde svaki deo rulet točka odgovara jednoj jedinki. Veličina dela rulet točka zavisi od fitnesa jedinke. Spinovanjem rulet točka generišemo 8 slučajnih brojeva između 0 i 1. Ako je slučajan broj između 0 i 0. 144, bira se prva jedinka iz trenutne populacije za reprodukciju. Ako je slučajan broj između 0. 144 i (0. 144+0. 093)=0. 237, bira se druga jedinka, i tako dalje. Ako je slučajan broj između (1 -0. 128)=0. 872 i 1. 0, bira se poslednja jedinka. Verovatnoća izbora jedinke proporcionalna je njenom fitnesu. 12

Reprodukcija Može se desiti (iako je veoma malo verovatno) da će jedinka sa najmanjim

Reprodukcija Može se desiti (iako je veoma malo verovatno) da će jedinka sa najmanjim fitnesom biti izabrana 8 puta uzastopno. Veća je verovatnoća da će jedinke sa većim fitnesom biti izabrane više puta za novu populaciju. Osam slučajnih brojeva su 0. 293, 0. 971, 0. 160, 0. 469, 0. 664, 0. 568, 0. 371, 0. 109. To odgovara jedinkama 3, 8, 2, 5, 6, 5, 3, 1. 13

Reprodukcija Sledeća generacija sastoji se od jedinki: 3: 8: 2: 5: 6: 5: 3:

Reprodukcija Sledeća generacija sastoji se od jedinki: 3: 8: 2: 5: 6: 5: 3: 1: 011000110101 11011000 10101110 010010101110 01100011 10111101 14

Prvo se populacija uparuje u slučajno odabrane parove roditelja. Pošto je redosled izabranih jedinki

Prvo se populacija uparuje u slučajno odabrane parove roditelja. Pošto je redosled izabranih jedinki sa prethodnog slajda slučajan, roditelje ćemo uparivati tim redosledom. Za svaki par generisaćemo slučajan broj koji će odrediti da li će se rekombinacija uopšte desiti. Slučajno je određeno da će u tri od četiri para rekombinacija desiti. Za parove koji će se ukrštati, slučajno treba odrediti tačke ukrštanja. 15

Populacija pre ukrštanja sa prikazanim tačkama ukrštanja (a), nakon ukrštanja (b), vrednosti za x

Populacija pre ukrštanja sa prikazanim tačkama ukrštanja (a), nakon ukrštanja (b), vrednosti za x (c) i f(x) (d) nakon ukrštanja 16

Za parove koji će biti ukršteni, slučajno se biraju dve tačke. Delovi stringova između

Za parove koji će biti ukršteni, slučajno se biraju dve tačke. Delovi stringova između prve i druge tačke ukrštanja biće zamenjeni. Poslednja operacija u ovom jednostavnom algoritmu je mutacija. Mutacija se sastoji od promene slučajno izabranih bita sa konstantnom verovatnoćom za svaki bit u populaciji. Verovatnoća mutacije može da se menja u velikom rasponu u zavisnosti od primene i od problema. Uobičajene vrednosti za mutaciju su između 0. 001 i 0. 01. 17

Pošto u našoj populaciji ima svega 64 bita (8 jedinki, svaka 8 bita), velika

Pošto u našoj populaciji ima svega 64 bita (8 jedinki, svaka 8 bita), velika je verovatnoća da nijedan bit neće biti promenjen. Zato ćemo smatrati da je stanje sa slike (b) konačna populacija nakon jedne iteracije GA procedure. Prolaskom kroz celu genetsku proceduru dobijamo novu generaciju. Populacija sa slike (b) reprezentuje prvu generaciju nakon inicijalne slučajne populacije. 18

Novi ukupan fitnes je sada 6. 313, dok je u inicijalnoj populaciji ukupan fitnes

Novi ukupan fitnes je sada 6. 313, dok je u inicijalnoj populaciji ukupan fitnes svih jedinki bio 5. 083. U novoj populaciji ima dve jedinke koje imaju fitnes iznad 0. 99. U novoj generaciji su i prosečan i maksimalan fitnes povećani. Populacija sa slike (b) i fitnes vrednosti sa slike (d) su sada spremni za novi krug reprodukcije, ukrštanja i mutacije proizvodeći novu generaciju. 19

Tako će se stvarati nove generacije sve dok se ne steknu uslovi za zaustavljanje.

Tako će se stvarati nove generacije sve dok se ne steknu uslovi za zaustavljanje. 1. 2. 3. Kriterijum za zaustavljanje može da bude: dostizanje unapred određenog maksimalnog broja generacija. dok se ne dostigne neki uslov. određen broj uzastopnih generacija bez napretka fitnesa jedinki. 20

Za reprezentaciju promenljive x koristili smo osmobitnu binarnu vrednost. Međutim, standardno binarno kodovanje je

Za reprezentaciju promenljive x koristili smo osmobitnu binarnu vrednost. Međutim, standardno binarno kodovanje je samo jedna opcija; ponekad su druge opcije daleko prikladnije. U prethodnom primeru priroda sinusne funkcije stavlja optimalnu vrednost promenljive x na 128, i tada je vrednost funkcije 1. 21

Binarna reprezentacija broja 128 je 10000000. Reprezentacija broja 127 je 01111111. To znači da

Binarna reprezentacija broja 128 je 10000000. Reprezentacija broja 127 je 01111111. To znači da najmanja promena vrednosti fitnesa može zahtevati promenu svakog bita u reprezentaciji. To je posledica načina kodovanja, i nepovoljno utiče na kvalitet pretrage. Često je povoljnije problem kodovati tako da se uzastopne vrednosti imaju Hamingovo rastojanje 1. Drugim rečima, uzastopne vrednosti razlikuju se samo na jednom bitu. Jedna od mogućnosti je korišćenje Grej-ovog koda. 22

Kraj

Kraj