52
Sveuˇ ciliˇ ste J. J. Strossmayera u Osijeku Odjel za matematiku Ivan Kovaˇ cevi´ c Genetski algoritam za optimizaciju funkcije Diplomski rad Osijek, 2012.

Sveu cili ste J.J.Strossmayera u Osijeku Odjel za matematikumdjumic/uploads/diplomski/KOV19.pdf · ska optimalnog rje senja. Klasi cni deterministi cki algoritmi za optimizaciju funkcija

Embed Size (px)

Citation preview

Sveuciliste J. J. Strossmayera u Osijeku

Odjel za matematiku

Ivan Kovacevic

Genetski algoritam za optimizaciju funkcije

Diplomski rad

Osijek, 2012.

Sveuciliste J. J. Strossmayera u Osijeku

Odjel za matematiku

Ivan Kovacevic

Genetski algoritam za optimizaciju funkcije

Diplomski rad

Mentor: prof. dr. sc. Ninoslav Truhar

Osijek, 2012.

Sadrzaj

Uvod 1

1 Problemi optimizacije 4

1.1 Funkcija cilja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2 Strukture optimizacijskih algoritama . . . . . . . . . . . . . . . . . . . 9

1.3 Fitnes kao mjera korisnosti . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.4 Preuranjena konvergencija . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 Genetski algoritmi 16

2.1 Prikaz rjesenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.1.1 Binarni prikaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.1.2 Prikaz kromosoma kao broja s pomicnom tockom . . . . . . . . 19

2.2 Postupak selekcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.2.1 Jednostavna selekcija . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2.2 Turnirska selekcija . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2.3 Rangirajuca selekcija . . . . . . . . . . . . . . . . . . . . . . . . 25

2.3 Genetski operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.3.1 Funkcije jedne varijable . . . . . . . . . . . . . . . . . . . . . . 27

2.3.2 Funkcije vise kriterija . . . . . . . . . . . . . . . . . . . . . . . . 29

2.4 Generiranje pocetne populacije i kriterij zaustavljanja . . . . . . . . . . 32

3 Teorem sheme 33

4 Usporedba rada genetskog algoritma i metode simpleksa 38

4.1 Rezultati usporedbe metoda . . . . . . . . . . . . . . . . . . . . . . . . 42

Literatura 46

Sazetak 47

Summary 48

Zivotopis 49

3

Uvod

Prema [5] genetski algoritam je metoda optimizacije inspirirana evolucijom. Evolu-

cija dolazi od latinske rijeci evolutio i znaci razvoj ili razvitak, a u bioloskom smislu

promatra razvoj organizama iz jednostavnijeg u slozeniji oblik.

U svom djelu “O podrijetlu vrsta” C. Darwin identificira prirodnu selekciju kao

glavni pokretacki mehanizam evolucije. Kako se u prirodi uvijek rada vise jedinki nego

sto to resursi odredenog stanista na kojem te jedinke borave mogu podnijeti, odredeni

broj njih ce umrijeti prije nego sto uspiju stvoriti potomke. Princip prirodne selekcije

kaze da ce jedinke koje su bolje prilagodene svojoj okolini (bolje pronalaze hranu, izvore

vode, skloniste, brze su od predatora, uspjesnije pronalaze partnera za reprodukciju,

. . . ) u prosjeku iza sebe ostaviti vise potomaka nego slabije jedinke koje ne krase ova

navedena svojstva. Na taj nacin se u svakoj sljedecoj generaciji pojavljuje sve vise

jedinki bolje prilagodenih uvjetima okoline (vidi [2]).

Prema [3], da bi se prirodna selekcija mogla nazvati evolucijom potrebno je jos

ukljuciti dvije stvari: nasljedivanje dobrih svojstava i raznolikost populacije. Naime,

bez raznolikosti populacije, ne bi postojale bolje i losije prilagodene jedinke, pa bi

prirodna selekcija bila slucajan proces. Nasljedivanje dobrih svojstava od roditelja

osigurava selekcijskom procesu da u svakoj sljedecoj generaciji dobije jedinke bolje

prilagodene od svojih roditelja. Sve informacije o rastu i razvoju jedinke su zapisane

u kromosomima koji se nalaze u jezgri svake stanice. Skup informacija koje odreduju

jedno svojstvo (visina, boja koze, boja ociju i sl.) zapisan je u dijelu kromosoma

koji se naziva gen. Prilikom razmnozavanja dvaju jedinki, svaki roditelj prenosi dio

svog genetskog materijala na potomke koji tada imaju kombinaciju gena oba rodite-

lja. Zbog toga odredeni potomci nasljeduju i razvijaju dobra svojstva oba roditelja

(bolje jedinke) a drugi pak nasljeduju i razvijaju manje dobrih svojstava (losije je-

dinke). Takvo nasljedivanje svojstava u kombinaciji s mutacijom gena dovodi do bitnih

razlicitosti jedinki nove populacije. Mutacija naime omogucava slucajne promjene gena

kod potomaka i time omogucava pojavu novih svojstava, kako dobrih tako i losih, koja

nijedan roditelj nije imao (vidi [3]).

Prema [7], analogija evolucije i genetskih algoritama ocituje se u procesu prirodne se-

lekcije, krizanja (reprodukcije) i spomenute mutacije koje algoritmi imitiraju s ciljem

dobivanja boljih jedinki u svakoj sljedecoj generaciji. Svako rjesenje optimizacijskog

problema promatra se kao jedinka sa svojim svojstvima. Skup mogucih rjesenja koje na-

1

Genetski algoritam za optimizaciju funkcije 2

zivamo populacijom kodira se u strukturu nalik kromosomu gdje su zapisana najvaznija

svojstva svakog rjesenja. Genetski algoritam tada vrsi selekciju nad populacijom na

nacin da odreduje koja rjesenja bolje optimiraju dani problem i dodjeljuje im mjeru

kvalitete ili prikladnosti. Ta mjera se jos naziva fitnes ili dobrota (vidi [7]). Rjesenja

koja imaju vecu vrijednost dobrote (bolje optimiraju zadani problem) imaju i vecu vje-

rojatnost prezivljavanja dok losija rjesenja bivaju odbacena. Dobra rjesenja (jedinke)

tada reprodukcijom (rekombinacijom) prenose svoja svojstva na potomke pa novonas-

tala populacija zadrzava dobra svojstva prethodne populacije. Za vrijeme tog procesa,

zahvaljujuci mutaciji, neka rjesenja u novoj populaciji dobiju nova izmijenjena svojstva

koja nisu postojala u prethodnoj generaciji. Tada genetski algoritam ponovo primje-

njuje selekciju na novonastaloj populaciji kako bi odredio jos bolja rjesenja i postupak

se ponavlja. Takav ciklus selekcije i genetskih operatora krizanja i mutacije se nastavlja

sve dok nije zadovoljen kriterij zaustavljanja algoritma. Takvo sto u prirodi naravno

nije moguce.

Prema [7] genetski algoritam je klasa evolucijskih algoritama; heuristickih metoda op-

timizacije koje imitiraju evolucijski proces i evolucijske mehanizme s ciljem pronala-

ska optimalnog rjesenja. Klasicni deterministicki algoritmi za optimizaciju funkcija

su ograniceni na konveksne, regularne funkcije koje posjeduju “lijepa” svojstva, koja

tada koristimo za odredivanje tocaka optimuma. Jedan od klasicnih algoritama bila bi

Newtonova metoda za jednodimenzionalnu minimizaciju zadana rekurzivnom formu-

lom:

xn+1 = xn −f ′(xn)

f ′′(xn). (1)

Prema [4], pretpostavljamo da je funkcija dva puta neprekidno derivabilna na intervalu

[a, b] i da je x∗ ∈ (a, b) tocka lokalnog minimuma funkcije f . To znaci da je f ′(x∗) = 0 i

f ′′(x∗) > 0. I obrnuto, ako je f ′(x∗) = 0 i f ′′(x∗) > 0, onda funkcija f u tocki x∗ postize

lokalni minimum. Iz navedenog slijedi da se lokalni minimum x∗ funkcije f moze traziti

tako da najprije lokaliziramo interval u kojem funkcija postize lokalni minimum. Nakon

toga na intervalu rijesimo jednadzbu f ′(x) = 0 primjenom neke od metoda za rjesavanje

nelinearne jednadzbe. Tocka x∗ za koju vrijedi f(x∗) = 0 naziva se stacionarna tocka

funkcije f . Ako za rjesavanje jednadzbe f ′(x) = 0 primjenimo Newtonovu metodu

uz odgovarajuci izbor pocetne aproksimacije x0, dobivamo iterativnu metodu zadanu

rekurzivnom formulom 1.

Minimiziramo li tom metodom funkciju zadanu formulom f(x) = 0.25x4 − 2x3 +

4x2− 2x+ 10 uz pocetnu aproksimaciju x0 = 4, dolazimo do rjesenja koje nam kaze da

funkcija ima minimum u x∗ = 4.21432. Medutim, koristimo li za istu funkciju i isti al-

goritam pocetnu aproksimaciju x0 = −4 dolazimo do rjesenja da funkcija ima minimum

u tocki x∗ = 0.324869. Razlog tomu mozemo iscitati sa slike 1 grafa funkcije iz koje

vidimo da postoje dva minimuma. Kako se metoda sluzi pocetnom aproksimacijom za

odredivanje minimuma, moguce je da pogresnom aproksimacijom umjesto globalnog

Genetski algoritam za optimizaciju funkcije 3

Slika 1: Graf funkcije s dva minimuma

minimuma nademo lokalni minimum. Nedostatak ove metode je sto ne mozemo biti

sigurni je li minimum koji smo pronasli zaista globalni ili je pak nasa metoda “zapela”

u lokalnom minimumu.

Newtonova metoda je pogodna za optimizaciju funkcija koje su unimodalne i dva

puta neprekidno derivabilne, uz uvjet f ′′(x) 6= 0. Genetski algoritmi nemaju takve

zahtjeve i ovisno o nacinu konstruiranja, rade na vise razlicitih klasa funkcija.

Neka od podrucja primjene genetskih algoritama su (vidi [6]):

• Umjetna inteligencija: grana racunalne znanosti s ciljem stvaranja inteligentnog

agenta (programa) koji percipira okolinu i poduzima takve radnje koje povecavaju

njegovu vjerojatnost uspjeha. Pri tome se problemi rasudivanja, znanja, plani-

ranja, komunikacije i manipuliranja objektima mogu rijesiti principom trazenja

svih mogucih rjesenja i odabirom najboljeg. Zbog velikog broja mogucih odluka,

klasicni algoritmi su spori ili neupotrebljivi.

• Cobwebov model ponude i potraznje: proizvodac nekog dobra formira cijenu

ponude na temelju proslog razdoblja, a cijena potraznje se formira na temelju

tekuceg razdoblja. Genetski algoritmi se koriste kao metode ucenja i odlucivanja

o kolicini proizvedenog dobra u tekucem razdoblju, iako se proizvodnja odvija u

sljedecem razdoblju. Optimalna odluka smanjuje troskove proizvodnje a povecava

cijenu dobra, a time i zaradu proizvodaca.

• Kontrola kvalitete: primjena procedura koje kontroliraju neki proces s ciljem da

rezultati tog procesa zadovoljavaju prethodno zadane norme i da je pri tome cijeli

proces pod kontrolom. Kako je potrebno odrediti optimum za vise od jednog

parametra, genetski algoritmi su puno brze metode optimizacije od klasicnih

metoda.

Poglavlje 1

Problemi optimizacije

1.1 Funkcija cilja

Iako su termini i nacini rada operatora genetskih algoritama slicni evolucijskim proce-

sima, sama evolucija nije optimizacijski proces s ciljem pronalaska globalnog optimuma.

Evolucija jednostavno stvara bolje prilagodene jedinke unutar populacije kroz odredeni

broj generacija. Takoder je ogranicena fizickim mogucnostima pojedine vrste, pa stoga

ne moze razmotriti bas svako rjesenje problema (vidi [3]).

Primjer 1.1.1 Uzmimo za primjer jednu vrstu ribe koja zivi u jezeru. Svedemo li

njezine parametre optimizacije na prehranu i prezivljavanje, mozemo doci do pogresnog

zakljucka da ce jedinka koja je veca biti bolje prilagodena svom okolisu. Medutim, neo-

granicen rast takve jedinke, tj. njezinih potomaka kroz populacije, doveo bi do nestanka

vrste zbog nedostatka hrane. Takoder, veca riba je uocljivija predatoru, pa bi takve je-

dinke nestale prije no sto dobiju priliku za reprodukciju. S druge strane, jedinka koja je

manja, bila bi sporija od predatora i teze bi dolazila do izvora hrane kraj ostalih jedinki

svoje vrste, koje bi bile vece od nje. Zato minimizacija ili maksimizacija samo jedne

varijable ne daje uvijek optimalno rjesenje.

Kao sto u prirodi nije jednostavno reci sto je optimalno rjesenje problema pojedine

jedinke, tako i u genetskim algoritmima moramo definirati sto se smatra optimalnim,

koje kriterije genetski algoritam mora postivati i koja rjesenja uzimati u obzir. Glo-

balnom optimizacijom smatramo onu optimizaciju kojoj je za cilj pronaci element x∗

koji zadovoljava skup kriterija F = {f1, f2, . . . , fn} (vidi [2]).

Definicija 1.1.1 (Funkcija cilja) Funkciju koja je objekt optimizacije zadanu sa f :

X→ Y gdje je Y ⊆ R, zovemo funkcija cilja.

Prema [2], domena X ove funkcije naziva se prostor problema i moze predstavljati

razne strukture podataka: brojevi, nizovi, simboli, matrice i slicno. Odabir nacina

predstavljanja tih podataka ovisi o tipu problema i vrsti algoritma koji se koristi. Za

globalni optimum funkcije f(x) definirane na skupu R uzimati cemo njezin globalni

4

Genetski algoritam za optimizaciju funkcije 5

minimum. Ako je pak potrebno maksimizirati funkciju, jednostavno se minimizira

funkcija −f(x). Za takvu funkciju mozemo lako definirati lokalni minimum xl i globalni

minimum x.

Definicija 1.1.2 (Lokalni minimum) Neka je X ⊆ R. Kazemo da je xl ∈ X lokalni

minimum funkcije f : X → Y ako postoji okolina O tocke xl tako da je f(xl) ≤ f(x)

za svaki x ∈ O ∩ X.

Definicija 1.1.3 (Globalni minimum) Kazemo da je x ∈ X globalni minimum funk-

cije f : X→ Y ako je f(x) ≤ f(x) ∀x ∈ X.

Slicno se definiraju lokalni i globalni minimumi za funkcije s domenom X ⊆ Rn i takva

definicija optimuma ne predstavlja znacajan problem.

Medutim, ako je potrebno odrediti optimum funkcije F s vise kriterija, tada se nasa

funkcija cilja sastoji od n funkcija fi, pri cemu svaka predstavlja jedno svojstvo koje

je potrebno optimirati. Prema [2] promatramo ju kao skup gdje je svaki kriterij za

optimizaciju predstavljen jednom funkcijom fi(x):

F = {fi : X→ Yi : 0 < i ≤ n, Yi ⊆ R} (1.1)

Problematika definiranja globalnog optimuma takve funkcije je opisana u primjeru

1.1.2.

Primjer 1.1.2 Potrebno je optimirati rad tvornice jahti na nacin da se zadovolje

sljedeci kriteriji:

1. Smanjiti vrijeme potrebno za izradu jahte.

2. Povecati zaradu od svake prodane jahte.

3. Smanjiti troskove reklamiranja, menadzmenta i sirovina.

4. Povecati kvalitetu jahti.

5. Smanjiti negativan utjecaj na okolis.

Vidimo da ovdje nije jednostavno optimirati sve kriterije, posto se neki moraju sma-

njiti (vrijeme proizvodnje, troskovi rada, utjecaj na okolis) a neki moraju povecati

(profit, kvaliteta). Takoder, izmedu odredenih kriterija postoji kontradiktornost jer

smanjenje troskova sirovina potrebnih za proizvodnju jahte (kvalitetno drvo, kvalite-

tan celik) sigurno utjece na kvalitetu proizvoda, a samim time i na zaradu. Medutim,

medudjelovanje kriterija kvalitete i profita nije potpuno ocito jer je moguce da tvornica

ostvari veci profit smanjenjem troskova sirovina, kao i da izgubi profit jer je konacan

proizvod na odredenom trzistu neatraktivan. Stoga nema smisla govoriti o globalnom

minimumu ili maksimumu, pa se definira skup optimalnih elemenata X∗ (vidi [2]).

Genetski algoritam za optimizaciju funkcije 6

Definicija 1.1.4 Skup X∗ koji sadrzi sve optimalne elemente x∗i , i = 1 . . . n funkcija

fi(x) : X→ Y zovemo skup optimalnih elemenata.

Prema [2], jedan od nacina kako definirati optimum problema u primjeru 1.1.2 je do-

djeljivanje tezina funkcijama koje predstavljaju kriterije optimizacije. Svaka funkcija

fi se mnozi sa tezinom wi koja predstavlja njenu vaznost. Ako je potrebno neki kriterij

fa minimizirati, dodijelimo mu tezinu wa = 1, dok za kriterij fb koji se maksimizira do-

dijelimo tezinu wb = −1. Na taj nacin istovremeno mozemo minimizirati prvu funkciju

a maksimizirati drugu na nacin da odredimo minimum funkcije g(x) definirane sa:

g(x) =n∑i=1

wifi(x) =∑∀fi∈F

wifi(x) (1.2)

x∗ ∈ X∗ ⇔ g(x∗) ≥ g(x) ∀x ∈ X (1.3)

Problem ove tehnike je u tome sto je primjenjiva samo na funkcije koje rastu ili padaju

istom brzinom. Pogledamo li grafove funkcija f1(x) = −x2 i f2(x) = ex−2 na slici 1.1

(vidi [2]), ocito da optimirajuci njihovu sumu g(x) = f1(x) + f2(x) uvijek dolazi do

odbacivanja jedne od zadanih funkcija. Za malen x utjecaj funkcije f2(x) na g(x) je

zanemariv, posto joj je vrijednost vrlo malena. Za velike vrijednosti x utjecaj funkcije

f1(x) na g(x) je zanemariv jer funkcija f2(x) raste brze nego sto f1(x) pada.

Rjesenje problema koristenja tezina zove se pareto dominacija. Prema [2], pareto

Slika 1.1: Problem koristenja tezina

optimum nam govori gdje je granica rjesenja koja se moze postici uz dozvoljeno zane-

marivanje konfliktnih kriterija na optimalan nacin.

Genetski algoritam za optimizaciju funkcije 7

Definicija 1.1.5 Element x1 dominira nad elementom x2 (x1 ` x2) ako je bolji od

njega po barem jednom kriteriju i nije losiji u odnosu na ostale kriterije.

Primjenom na funkciju cilja F sa n kriterija predstavljenima funkcijama fi pisemo:

x1 ` x2 ⇔ ∀i : 0 < i ≤ n⇒ wifi(x1) ≤ wifi(x2) ∧∃j : 0 < j ≤ n : wjfj(x1) < wjfj(x2)

(1.4)

wi =

{1 ako je potrebno minimizirati fi−1 ako je potrebno maksimizirati fi

(1.5)

Za razliku od tezina wi kod prethodne metode, ovdje koristeni faktor wi sluzi samo

kao informacija koji kriterij treba maksimizirati a koji minimizirati (vidi [2]).

Definicija 1.1.6 Za element x∗ ∈ X kazemo da je Pareto optimalan (samim time

element skupa X∗) ako nije dominiran od nijednog drugog elementa u prostoru problema

X. Tada skup X∗ nazivamo Pareto skup ili Pareto granica.

x∗ ∈ X∗ ⇔ @x ∈ X : x ` x∗ (1.6)

Metoda koristenja tezina i metoda pareto dominacije sluze kako bi definirali sto je

optimalno u smislu funkcija s vise kriterija. Obe metode usporeduju elemente prostora

problema u odnosu na njihovu kvalitetu kao rjesenja i nad tim prostorom postavljaju

uredaj. Ako usporedimo x1 i x2 moguca su tri slucaja: x1 je bolji od x2, x1 je losiji od

x2 ili su oba rjesenja jednake kvalitete (vidi [2]).

Slika 1.2: Pareto optimizacija

Primjer 1.1.3 Prema [2] pretpostavimo da imamo problem s vise funkcija cilja od

kojih se za funkcije f1(x) i f2(x) trazi maksimum. Na slici 1.2 je Pareto optimalno

podrucje tih funkcija predstavljeno tamno osjencano. Vrijedi X∗ = [x2, x3] ∪ [x5, x6].

Genetski algoritam za optimizaciju funkcije 8

Rjesenja u podrucju izmedu x1 i x2 su dominirana od strane svih ostalih rjesenja u tom

podrucju ili od strane rjesenja iz [x2, x3]. Razlog tomu je sto, pocevsi od x1, mozemo

uzeti mali pomak ∆x > 0 takav da vrijedi f1(x1 + ∆x) > f1(x1) i f2(x1 + ∆x) >

f2(x1). To vrijedi sve dok ne dodemo do rjesenja x2 koje predstavlja globalni maksi-

mum za f2(x). Daljnjim pomicanjem u desno, za f2(x) uvijek dobijemo losija rjesenja.

Medutim, f1(x) nastavlja rasti i dolazi do sve boljih rjesenja. Iako za neka rjesenja

x ∈ [x1, x2) funkcija f2(x) poprima vecu vrijednost nego za x ∈ [x2, x3], sto ta rjesenja

cini boljima za maksimizaciju, funkcija f1(x) nastavlja rasti. Zato sve x ∈ [x2, x3]

gledamo kao Pareto dominantne nad x ∈ [x1, x2). To vrijedi sve do rjesenja x3 u ko-

jem f2(x) naglo pada, na vrijednosti nize nego za f2(x5). Kako su sada vrijednosti

f1(x) vece za x ∈ [x5, x6], kazemo da su sva ta rjesenja dominantna nad rjesenjima

x ∈ (x3, x4].

Genetski algoritam za optimizaciju funkcije 9

1.2 Strukture optimizacijskih algoritama

Da bi genetski algoritam mogao raditi, potrebno mu je strogo definirati tip podatka

nad kojima vrsi optimizaciju. Trazimo li optimum neke funkcije, kandidate za rjesenje

mozemo uzeti iz skupa R ili iz skupa C. Mozemo se cak ograniciti i na skup N.

Ovakav odabir domene funkcije cilja bitno utjece na vrstu operatora koje koristimo

u optimizaciji, njihov rad i opcenito rad samog algoritma, te tocnost rezultata koje

dobivamo. Prema [2] definiraju se kandidati za rjesenje, prostor rjesenja i prostor

pretrage.

Definicija 1.2.1 Skup svih elemenata x koji mogu biti rjesenje optimizacijskog pro-

blema zovemo prostor problema i oznacavamo sa X. Elemente x zovemo kandidati za

rjesenje.

Za x ∈ X koristimo i naziv fenotip, koji je naslijeden iz evolucijskih procesa. Genetika

definira fenotip kao skup svih obiljezja po kojima se jedinke razlikuju unutar svoje vrste.

Ta obiljezja su promijenjiva i rezultat su djelovanja okoline i genetskog potencijala

jedinke. Analogija termina je u tome sto su svi x ∈ X podaci istog tipa (realni brojevi),

medutim razlicitih vrijednosti i kao takvi daju drugacija rjesenja problema optimizacije.

Definicija 1.2.2 Unija svih rjesenja optimizacijskog problema naziva se prostor rjesenja

S. Vrijedi X∗ ⊆ S ⊆ X.

Ocito je da neka rjesenja x mogu biti dobra za optimizacijske probleme, ali ne moraju

pripadati skupu X∗ (to bi bili lokalni optimumi).

Definicija 1.2.3 Prostor pretrage G je skup svih elemenata g nad kojima se vrse op-

timizacijske operacije pretrage. Za prostor pretrage G koristi se i naziv genom.

Za elemente g ∈ G koristimo jos i naziv genotip, takoder naslijeden iz evolucije. Ge-

netika definira genotip kao skup svih gena koje jedinka posjeduje. Sve karakteristike

jedinke su zapisane u jedinicama informacija koje nazivamo geni koje se u biologiji

nalaze poredane u molekuli DNK. Vrijednost pojedinog gena naziva se alel a smjestaj

tog gena, njegov redoslijed u DNK nazivamo lokus. Same veze ovih pojmova jasnije su

prikazane na slici 1.3 (vidi [2]).

Primjer 1.2.1 Prema [2] pretpostavimo da imamo problem odredivanja cjelobrojne ko-

ordinate neke tocke u Kartazijevom sustavu. Slika 1.4 opisuje problem pretrage prostora

genoma gdje su genotipi predstavljeni sa binarnim brojevima od (0, 0, 0, 0) do (1, 1, 1, 1).

Pri tome svaki od njih kodiramo tako da na prva dva mjesta nosi informaciju o apscisi,

a na zadnja dva mjesta nosi informaciju o ordinati tocke koju trazimo. Tada za oda-

brani element (0, 1, 1, 1) kazemo da na mjestu (lokus) 1 ima gen sa vrijednosti (0, 1) a

da na mjestu 2 ima gen sa vrijednosti (1, 1). Odgovarajucim dekodiranjem taj genotip

si predstavljamo kao tocku T (1, 3) i ona je tada kandidat za rjesenje. Ona sama postoji

Genetski algoritam za optimizaciju funkcije 10

(a) Prostor pretrage G (b) Prostor problema X (c) Prostor vrijednosti Y

Slika 1.3: Veza prostora pretrage, problema i vrijednosti

u prostoru problema zajedno sa svim ostalim tockama sa cjelobrojnim koordinatama.

Dakle, da bi nas zamisljeni algoritam mogao doci do tocke T (1, 3) mi moramo sve

tocke iz prostor pretrage G kodirati u prostora problema X kako bi odgovarajuci opera-

tori pretrage mogli raditi i kako bi bilo moguce ocijeniti optimalnost nadenog rjesenja.

Slika 1.4: Primjer 1.2.1

Prema [2] definiraju se genotip-fenotip mapiranje, jedinka i populacija jedinki.

Definicija 1.2.4 Genotip-fenotip mapiranje gfm : G → X je binarna relacija koja

stavlja u odnos elemente prostora pretrage g ∈ G sa elementima prostora problema

x ∈ X.

∀g ∈ G ∃x ∈ X : gfm(g) = x (1.7)

Definicija 1.2.5 Jedinkom p smatramo uredeni par (pg, px) sastavljen od elementa

pg ∈ G i njegovog odgovarajuceg elementa px ∈ X tako da vrijedi gfm(pg) = px.

Definicija 1.2.5 koristi oznaku pg koja predstavlja genotip jedinke, dok oznaka px pred-

stavlja fenotip te iste jedinke.

Definicija 1.2.6 Populacija Pop je skup jedinki koje sudjeluju u optimizacijskom pro-

cesu.

Pop ⊆ G× X : ∀p = (pg, px) ∈ Pop⇒ px = gfm(pg) (1.8)

Genetski algoritam za optimizaciju funkcije 11

Prema formuli 1.7, genotip-fenotip mapiranje mora biti takvo da poveze svaki element

iz G s barem jednim elementom iz X. Takoder treba biti surjektivno pridruzivanje kako

bi svi kandidati za rjesenje iz X bili dostupni genetskom algoritmu za evaluaciju. U

suprotnome, postojali bi kandidati koji nikada ne bi bili pretrazeni operatorima pre-

trage pa nema garancije da je moguce naci rjesenja danog problema. Ako je mapiranje

injektivno kazemo da je slobodno od suvisnosti, barem one koja ne koristi algoritmu.

Optimizacijski algoritam je dobro definiran ako su mu poznati prostor problema X,

fukcija cilja F , prostor pretrage G, genotip-fenotip mapiranje gfm i operatori pretrage

(vidi [2]).

Genetski algoritam za optimizaciju funkcije 12

1.3 Fitnes kao mjera korisnosti

Nakon sto smo definirali sve potrebne elemente za rad optimizacijskog algoritma, po-

trebno je jos vidjeti koliko je on dobar u svom radu. Prema [2] sva rjesenja koja

algoritam pronade ocjenjuju funkcije cilja fi ∈ F , i = 1, . . . , n tako da svakom od njih

dodjele numericku vrijednost koja opisuje karakteristike tog rjesenja.

Definicija 1.3.1 Prostor vrijednosti ili cilja Y je prostor razapet kodomenama funkcija

cilja.

F = {fi : X→ Yi : 0 < i ≤ n, Yi ⊆ R} ⇒ Y = Y1 × Y2 × . . .× Yn (1.9)

Prilikom optimizacije funkcije s vise kriterija, elementi skupa Y su realni vektori. Takvi

vektori se ne mogu uvijek usporediti izravno na konzistentan nacin, pa je potrebna

neka komparativna mjera koja nam kaze koji od njih je dobar u smislu optimizacije.

Pridruzivanje pozitivnih realnih vrijednosti tim vektorima nam omogucava postavljanje

djelomicne relacije uredaja na podskupu prostora cilja V ⊆ R+. Tako pridruzena realna

vrijednost svakom kandidatu za rjesenje x predstavlja njegov fitnes ili njegovu kvalitetu

u smislu rjesenja optimizacijskog problema (vidi [2]).

Definicija 1.3.2 Vrijednost fitnesa v(x) ∈ V za element x ∈ X predstavlja korisnost

kandidata za rjesenje x u smislu optimizacije problema.

Ime i primjena fitnesa u optimizacijskim algoritmima dolaze iz prvih evolucijskih al-

goritama gdje je funkcija cilja imala jednu varijablu pa se za fitnes rjesenja koristila

izravno vrijednost funkcije za to rjesenje v(x) = f(x), ∀x ∈ X. U slozenijim proble-

mima vrijednost funkcije cilja odredenog kandidata F (x) ostaje nepromijenjena, dok

se njegov fitnes v(x) moze mijenjati u svakoj generaciji genetskog algoritma. Razlog

tomu je cinjenica da fitnes kandidata ima smisla samo u odnosu na ostale kandidate

trenutne populacije. U funkcijama s vise kriterija optimizacije, fitnes moze biti redni

broj rjesenja koja su Pareto optimalna, dakle relativan u odnosu na ostale kandidate

za rjesenje. U kontekstu ovog rada, funkcije cilja se minimiziraju, pa ce elementi koji

imaju manji fitnes biti bolji od onih s vecim fitnesom (vidi [2]).

Veze izmedu fenotipa i genotipa neke jedinke, te njezine vjerojatnosti za reprodukci-

jom, najbolje se proucavaju vizualizacijom kroz sliku fitnesa. Prema [2], slika fitnesa

se promatra kao ravnina u kojoj svaki vrh predstavlja vrijednost rjesenja za funkciju

cilja. U primjerima 1.3.1 i 1.3.2 navedenima u [2] vidljiva je veza fitnesa i slozenosti

rada algoritma.

Genetski algoritam za optimizaciju funkcije 13

Slika 1.5: Primjer slike fitnesa

Primjer 1.3.1 Na slici 1.5 vidimo funkciju cilja definiranu na dvodimenzionalnom

skupu X koja se optimira. Oznaceni su lokalni minimum xl i globalni minimum x∗, te

prostor izmedu njih sa losim fitnesom. Svaki optimizacijski algoritam ce prije ili kasnije

pronaci xl ili x∗, s tim da xl ima vecu vjerojatnost odabira jer lezi blize sredini X prema

kojoj postoji blagi gradijentni pad. Klasicni optimizacijski algoritmi zato imaju manju

vjerojatnost uspjeha jer ce prije pronaci lokalni optimum i iz njega nece moci izaci,

dok genetski algoritmi to mogu.

Genetski algoritam za optimizaciju funkcije 14

(a) Najbolji slucaj (b) Multimodalan slucaj (c) Slucaj bez korisnih infor-macija

(d) Obmanjujuci slucaj (e) Neutralan slucaj (f) Najgori slucaj

Slika 1.6: Razlicita svojstva slike fitnesa

Primjer 1.3.2 Na slici 1.6 vidimo neke primjere slike fitnesa. Vrijednosti funkcije

cilja f(x) se minimiziraju a krugovi na slici predstavljaju kandidate za rjesenje koji se

procjenjuju. Strelica od jednog do drugog kandidata pokazuju da se do drugog kandi-

data doslo primjenom operatora pretrage na prvom. Slika 1.6a pokazuje najbolji slucaj

minimizacije funkcije, gdje svaki korak vodi ka globalnom minimumu. Slika 1.6b prika-

zuje kako algoritam pretrage ne uspijeva izaci iz prostora lokalnog minimuma, te nije

u stanju otkriti globalni minimum. Na slici 1.6c prikazana je funkcija cija slika fitnesa

ne daje nikakve korisne informacije operatoru pretrage, te on ne uspijeva odrediti niti

lokalni minimum. Slika 1.6d daje privid pronalaska globalnog optimuma, medutim to

je samo lokalni minimum. Neutralan slucaj na slici 1.6e prikazuje podrucje u kojem

operator pretrage ne moze otkriti u kojem smjeru krenuti. Najgori slucaj prikazan je

na slici 1.6f.

Genetski algoritam za optimizaciju funkcije 15

1.4 Preuranjena konvergencija

Genetski algoritam je konvergirao ako ne moze naci novi kandidat za rjesenje ili ako

nove kandidate pronalazi samo u malom podskupu prostora problema (vidi [2]). Pos-

tavlja se pitanje: je li to rjesenje koje imamo lokalni ili globalni optimum? To pitanje

postaje narocito tesko kada optimiziramo F (x) multimodalnu funkciju cilja cije funkcije

fi(x) imaju visestruke optimume (minimume ili maksimume), nisu neprekinute niti su

derivabilne. Problem preuranjene konvergencije nastaje kada algoritam vise nije spo-

soban istraziti druga podrucja prostora problema u kojima se nalaze bolja rjesenja, kao

na slici 1.6b. Do ovog problema dolazi jer genetski algoritam pronalazi nova rjesenja

rekombinirajuci postojeca sa dobrim svojstvima, bez obzira na ostale kandidate koji,

iako u tom trenutku s losijim fitnesom, vode algoritam prema globalnom optimumu.

Na taj se nacin utjecaj trenutno losijih kandidata svodi na minimum, te u dovoljno

frekventnoj mutaciji, oni bivaju potpuno odbaceni. Svaki dobar genetski algoritam

mora obratiti paznju na odnos izmedu pretrazivanja prostora rjesenja i iskoristavanja

postojeceg kandidata. Pretrazivanje prostora rjesenja odnosi se na pronalazak novih

kandidata za rjesenje u onom dijelu prostora u kojem algoritam jos nije bio. Previse

pretrazivanja moze dovesti do toga da operatori pretrage ne nadu dobra rjesenja jer

zure kroz prostor i zbog ogranicene velicine populacije odbacuju prethodno ocijenjene

jedinke. S druge strane, takvi algoritmi su brzi ali imaju rizik ne pronalaska globalnog

optimuma. Iskoristavanje postojeceg kandidata znaci da algoritam koristi jedinke za

koje zna da imaju dobra svojstva, te kombinacijom njihovih dijelova pokusava napra-

viti slicne jedinke s boljim svojstvima. Medutim, previse rafiniranja jednog kandidata

za rjesenje moze dovesti do preuranjene konvergencije jer nastaju slicna rjesenja koja

ne vode algoritam dalje u nove dijelove prostora problema i cine algoritam sporijim. S

druge strane, pronade li takav algoritam globalni optimum, on ce biti tocniji.

Jedan od nacina rjesavanja ovog problema je ponovno pokretanje optimizacijskog pro-

cesa u odredenom trenutku tijekom optimizacije. Samim ponovnim pokretanjem, al-

goritam bi napravio istu pogresku, ali usporedivanjem rjesenja u trenutku prekida sa

pocetnom aproksimacijom, moguce je izvuci zakljucke krece li se algoritam u dobrom

smjeru ili dolazi do preuranjene konvergencije.

Drugi nacin rjesavanja ovog problema je omoguciti algoritmu svojstvo samoprilagodbe.

To znaci da algoritam, kada dovoljno brzo i siroko pretrazi prostor problem, uzme vise

vremena da rafinira one kandidate koji se cine boljima. Na taj se nacin i ubrzava

algoritam i izbjegava mogucnost preuranjene konvergencije.

Poglavlje 2

Genetski algoritmi

Genetski algoritmi su podvrste evolucijskih algoritama koji kandidate za rjesenje ko-

diraju u obliku binarnih nizova ili nizova slicnih struktura. Genetski algoritmi nastaju

50-ih godina proslog stoljeca iz potrebe da se racunalno potpomognutom simulacijom

sazna vise o genetskim procesima prilikom prirodne selekcije. Razvojem i radom Johna

Hollanda postaju formalizirani i popularni kao novi pristup rjesavanja problema (vidi

[2]). Pojmovi koji se koriste u genetskim algoritmima zasnivaju se na pojmovima iz

biologije jer operacije koje se izvrsavaju predstavljaju apstrakciju bioloskih procesa.

Svaki genetski algoritam odrzava i manipulira populacijom Pop od n jedinki kroz ge-

neracije, gdje se jedinkom p smatra jedan kandidat za rjesenje problema x (vidi [2]).

Prema [7] prva populacija se generira slucajnim odabirom rjesenja iz domene iako

je moguce generirati uniformnu populaciju ili u pocetnu populaciju usaditi inicijalno

rjesenje dobiveno nekom drugom metodom optimiranja. Pri tome se svaka jedinka koja

predstavlja jedno rjesenje kodira u obliku kromosoma. Kromosomi se sastoje od vise

gena prikazanih jednakom podatkovnom strukturom (broj, niz, matica) gdje svaki gen

predstavlja jedno svojstvo jedinke, tj. jednu varijablu rjesenja. Na primjer, ako imamo

problem sa tri varijable x1, x2 i x3 jedan nacin kodiranja kromosoma prikazuje slika

2.1.

10110011︸ ︷︷ ︸x1

11101010︸ ︷︷ ︸x2

01001100︸ ︷︷ ︸x3

Slika 2.1: Prikaz kromosoma s tri varijable

Svakom rjesenju se pridjeljuje mjera kvalitete (fitnes ili dobrota) koja govori koliko

to rjesenje dobro optimizira pocetni problem a funkcija koja tu kvalitetu odreduje na-

ziva se funkcija fitnesa ili funkcija dobrote. Tada se iz postojece populacije selektiraju

kromosomi sa dobrim svojstvima i prelaze u novu populaciju, zvanu medupopulacija.

Kako jedinke s losijim svojstvima nisu odabrane, medupopulacija Pop′ nema n jedinki

16

Genetski algoritam za optimizaciju funkcije 17

pa se nad nekima od dobrih jedinki vrse genetski operatori krizanja i mutacije. Pri tome

krizanje stvara nove jedinke koje zamjenjuju one koje nisu odabrane kako bi populacija

brojala n clanova. Mutacija pak uzima neke jedinke i slucajnom promjenom njihovog

genetskom materijala izaziva pojavu novih svojstava. Na taj nacin nastaje nova popu-

lacija nad kojom se ponovo vrsi selekcija , krizanje i mutacija. Nakon odredenog broja

ponavljanja ovih operacija (generacija), citav postupak se zaustavlja, a najbolji clan

trenutne populacije predstavlja rjesenje problema.

Prema [1] tipicni genetski algoritam, zapisan u pseudokodu, imao bi strukturu kao sto

je prikazano u algoritmu 2.1.

Algoritam 2.1 Struktura jednostavnog genetskog algoritma

t = 0generiraj populaciju Pop(0) od n jedinki i svakoj pridruzi njezinu dobrotusve dok nije zadovoljen uvjet zavrsetkat = t+ 1;selektiraj jedinke Pop′(t) iz Pop(t− 1);krizaj jedinke iz Pop′(t) i djecu spremi u Pop(t);mutiraj jedinke iz Pop(t);ispisi rjesenje;

Prema [7], kod upotrebe genetskog algoritma za optimizaciju funkcije moguce je

koristiti dva pristupa rjesavanja problema: prilagodba genetskog algoritma problemu

ili prilagodba problema genetskom algoritmu. Ukoliko prilagodavamo algoritam pro-

blemu, potrebno je definirati drugacije strukture podataka i operatora genetskog al-

goritma u skladu sa specificnostima problema. Usko specijalizirani genetski algoritmi,

koji se nazivaju evolucijski programi, daju bolja rjesenja i imaju veliku korisnost u

podrucju svoga djelovanja. S druge strane, prilagodavamo li problem genetskom algo-

ritmu, potrebno je podatke definirati u odredenoj strukturi koju operatori algoritma

razumiju i nad kojima mogu djelovati. U nekim slucajevima to nije moguce, tako da pri

optimiranju genetskim algoritmom treba paziti na odabir pravilnog pristupa koji nije

na stetu brzine izvodenja ili tocnosti rjesenja. Zato je prije svake upotrebe genetskog

algoritma potrebno precizno definirati 6 osnovnih elemenata algoritma (vidi [1]):

• Prikaz rjesenja

• Funkcija evaluacije

• Postupak selekcije

• Genetski operatori

• Generiranje pocetne populacije

• Kriterij zaustavljanja

Genetski algoritam za optimizaciju funkcije 18

2.1 Prikaz rjesenja

Kao sto je ranije receno, prikaz rjesenja izravno utjece na to kako je problem strukturi-

ran u genetskom algoritmu i koji operatori se koriste pri rjesavanju problema. U prirodi,

DNK je ta koja kodira informaciju o fenotipskim znacajkama svake jedinke. Zbog slicne

linearne strukture (slika 2.1), elementi prostora pretrage genetskih algoritama nazivaju

se kromosomi. Najcesca vrsta kodiranja kromosoma genetskih algoritama je u obliku

n-torki fiksne duljine gdje je svaki gen predstavljen binarnim prikazom svoje realne

vrijednosti (vidi [2]). Iako je moguce konstruirati genom koji sadrzi genotipe razlicitih

struktura, cesce su svi istog tipa podataka (binarni brojevi).

Jednostavni genetski algoritam predstavljen od strane Johna Hollanda koristio je

binarni prikaz kromosoma. Kasnijim eksperimentiranjem doslo se do zakljucka da u

nekim slucajevima prirodniji prikaz kromosoma kao broja s pomicnom tockom rezultira

brzim radom algoritama te preciznijim i konzistentnijim rjesenjima.

2.1.1 Binarni prikaz

Prema [7] kromosom promatramo kao binarni vektor duljine n kojim mozemo prikazati

svaki realan broj x ∈ [a, b], a, b ∈ R pomocu prirodnog binarnog koda. Za zadani realan

broj x kodiranje se obavlja prema formuli:

g =x− ab− a

(2n − 1) . (2.1)

Tada se broj g zapisuje kao binaran vektor [g0g1 . . . gn−1] gdje je gi ∈ {0, 1}. Pri

tome binarni vektor [000 . . . 0] predstavlja rjesenje kada je x = a, dok vektor [111 . . . 1]

predstavlja rjesenje kada je x = b. Na taj je nacin kromosom predstavljen nizom bitova

duljine n. Dekodiranje kromosoma g u rjesenje x vrsi formulama:

g =n−1∑i=0

gi2i (2.2)

x = a+g

2n − 1(b− a) . (2.3)

Dekodiranje je vazan proces jer se fitnes svake jedinke p ne ocjenjuje na njenom ge-

notipu pg vec u fenotipu px. Duljina kromosoma n oznacava broj bitova u jednom

kromosomu i kao takva utjece na preciznost.

Zbog svoje jednostavnosti, binarno kodiranje je pogodno za implementaciju u genet-

skim algoritmima.

Primjer 2.1.1 Pretpostavimo da je algoritam odabrao broj 33.57 ∈ [33.5, 33.6] kao

kandidat za rjesenje i da mu je duljina kromosoma 8 bitova. Po formuli za binarno

kodiranje 2.1 taj broj se pretvara u g = 178.5. Zapisan kao binarni vektor taj broj ima

Genetski algoritam za optimizaciju funkcije 19

oblik [10110010]. Ako algoritam zadrzi taj broj, bez primjene genetskih operatora, on

ga dekodira i salje na evaluaciju njegovog fitnesa. Dekodiran, broj glasi:

g = [10110010] = 178

x = 33.5 +178

28 − 1(33.6− 33.5) = 33.56980392

Vidimo da se sam broj promijenio s odredenom tocnoscu sto je moguce ispraviti koristenjem

duljeg kromosoma. Za n = 16, isti broj kodiran i dekodiran prima vrijednost x =

33.56999924, sto predstavlja vecu preciznost.

Prema [7] jedini nedostatak koji ima binarni prikaz je potencijalno velika Hammingova

udaljenost medu susjednim brojevima. Hammingova udaljenost izmedu dva binarna

broja jednake duljine je broj bitova u kojem se ta dva broja razlikuju. Hammingova

udaljenost izmedu 12710 = 011111112 i 12810 = 10000000 iznosi 8. Na primjer, ako

je genetski algoritam pronasao dobro rjesenje za kromosom zapisan kao binarni vektor

[01111111], a optimum postize u kromosomu zapisanom kao [10000000], treba promije-

niti svih 8 bitova kako bi se postigao optimum, sto usporava algoritam. Za ispravljanje

takvog nedostatka koristi se Grayev kod. Njegova prednost je u tomu sto se susjedni

brojevi kodirani u Grayevom kodu razlikuju u samo jednom bitu. Nacin transforma-

cije nekog binarnog broja g = g0g1 . . . gn−1 u Grayev kod g′ = g′0g′1 . . . g

′n−1 dan je

algoritmom 2.2 (vidi [7]).

Algoritam 2.2 Algoritam transformacije binarnog broja u Grayev kod

g′n−1 = gn−1g′k = gk ⊕ gk+1, k = 0, 1, . . . , n− 1gk =

∑n−1k=j g

′k(mod2), j = 0, 1, . . . , n− 1

Takva transformacija nam daje Grayev kod koji je ciklicki, sto znaci da mu se

susjedni brojevi razlikuju samo u jednom bitu. U teoriji, prednost ovakvog kodiranja

kromosoma lezi u cinjenici da genetski algoritam brze prolazi kroz prostor rjesenja i

time brze provjerava kromosome koji se nalaze u blizini nekog potencijalno dobrog

rjesenja u potrazi za jos boljim rjesenjem.

2.1.2 Prikaz kromosoma kao broja s pomicnom tockom

Realan broj mozemo zapisati i u eksponencijalnom prikazu. Tako zapisan broj ima

oblik

M ·BE

gdje je M mantisa (decimalan broj s predznakom), B baza (u dekadskom sustavu 10,

u binarnom 2) i E eksponent (cijeli broj). Ideja takvog prikaza uzeta je kao temelj

kodiranja realnog broja u obliku broja s pomicnom tockom. Takav broj se zapisuje,

Genetski algoritam za optimizaciju funkcije 20

ovisno o preciznosti, u slijedecem formatu: prvi bit je predznak broja (S). Slijedi

eksponent od 8, odnosno 11 bitova (ovisno o preciznosti) i frakcija od 23 ili 52 bita.

Zorniji prikaz vidimo na slici 2.2 (vidi [7]).

Slika 2.2: Broj s pomicnom tockom jednostruke (dvostruke) preciznosti

Prednost ovakvog prikaza je u tome sto nije potreban poseban mehanizam dekodi-

ranja kao kod binarnog prikaza. Genotip-fenotip mapiranje nije potrebno jer je fenotip

jedinke px zapisan u obliku broja s pomicnom tockom. Genetski algoritam koristi taj

zapis kao genotip pg nad kojim vrsi operacije bez da mu mijenja oblik ili odbacuje bitove

koje ne moze prikazati. Sama tocnost algoritma tada proizlazi iz njegovih mogucnosti

rada a ne iz mogucnosti kodiranja i predstavljanja podataka. Takoder, zbog izostanka

genotip-fenotip mapiranja, brzina rada algoritma se povecava.

Primjer 2.1.2 Pretpostavimo da je algoritam odabrao 33.57 ∈ [33.5, 33.6] kao kandi-

dat za rjesenje i da ga prikazuje kao broj s pomicnom tockom jednostruke preciznosti,

dakle koristeci 32 bita. Kodiran u binarnom zapisu broj glasi

b = [01000010000001100100011110101110].

Prevedemo li ga nazad u dekadski zapis, bez primjene genetskih operatora, on glasi

x = 33.5699997.

U odnosu na primjer 2.1.1 vidimo da je postignuta veca tocnost, sto je jedna od pred-

nosti ovakvog zapisa. Takoder je izbjegnuto kodiranje i dekodiranje po formulama 2.1,

2.2 i 2.3 sto znatno utjece na brzinu rada genetskog algoritma.

Genetski algoritam za optimizaciju funkcije 21

2.2 Postupak selekcije

Genetski algoritmi koriste mehanizam selekcije za odabir jedinki koje sudjeluju u re-

produkciji i stvaraju sljedecu generaciju. Selekcija jedinki se vrsi tako da bolje jedinke

imaju vecu vjerojatnost prezivljavanja od losijih. Pri tome, vazno je da svaka jedinka

ima vjerojatnost da bude izabrana jer neke lose jedinke mogu posjedovati dobra svoj-

stva. Takoder, svaka jedinka moze biti izabrana nekoliko puta, ovisno o njenoj dobroti i

nacinu selekcije. Kljuc selekcije je funkcija cilja koja nam govori koliko je neko rjesenje

dobro i zelimo li ga dalje koristiti (poboljsati) ili u potpunosti odbaciti. Imamo li funk-

ciju s vise kriterija, kljuc selekcije je vrijednost fitnesa ili dobrote rjesenja, kao sto je

navedeno u definiciji 1.3.2. Na taj nacin je omoguceno genetskom algoritmu da svakoj

jedinki populacije Pop pridruzi vjerojatnost selekcije obzirom na njezinu kvalitetu u

smislu rjesenja problema.

Prema [2] postupci selekcije se dijele na selekciju sa zamjenama i selekciju bez

zamjena. Selekcija bez zamjene uzima u obzir dobrotu svake jedinke iz populacije Pop

pa tako svaka jedinka ima vjerojatnost (manju ili vecu) da sudjeluje u reprodukciji, ali

najvise jednom. Selekcija sa zamjenama moze uzeti vise puta istu jedinku, ako je njen

fitnes bolji od ostalih jedinki i cesce se koristi u genetskim algoritmima.

Ovisno o metodi odabira jedinki, postupci selekcije se dijele na proporcionalne i

rangirajuce. Proporcionalna selekcija odabire jedinke s vjerojatnoscu koja je propor-

cionalna dobroti jedinke a rangirajuca selekcija odabire jedinke s vjerojatnoscu koja

ovisi o polozaju jedinke u poretku svih jedinki sortiranih po dobroti. Detaljnija podjela

selekcija vidljiva je na slici 2.3 (vidi [7]).

Kod selekcije vazno je spomenuti i pojam elitizma (vidi [2]). Zbog nacina na koji

algoritmi odabiru jedinke za mutaciju, postoji mogucnost da jedinka s dobrim svoj-

stvima bude mutirana u cilju poboljsanja njenih svojstava. Medutim, takva mutacija

moze rezultirati losijim svojstvima, pa dobra jedinka biva potpuno izgubljena. Stoga se

u genetske algoritme ugraduje svojstvo elitizma koje u svakoj generaciji odabire najbo-

lju jedinku i sprema je u zasebnu arhivu Arc. Na kraju genetski algoritam usporeduje

najbolje rjesenje zadnje populacije Pop s rjesenjima pohranjenima kroz generacije Arc,

i kao optimum vraca najbolje rjesenje. Elitizam mozemo smatrati mehanizmom zastite

najbolje jedinke od eliminacije i utjecaja genetskih operatora, jer ostaje pohranjeno u

arhivi Arc premda ga algoritam izmjeni i izgubi u populaciji Pop. Genetski algoritam

sa takvim mehanizmom osigurava konvergenciju prema globalnom optimumu, ako taj

optimum bude pronaden u bilo kojoj generaciji. S druge strane, koristenje arhive Arc

koju mozemo smatrati populacijom najboljih jedinki kroz generacije, zahtjeva vise rada

algoritma, koje ga nekad uspori.

Genetski algoritam za optimizaciju funkcije 22

Slika 2.3: Vrste selekcija

2.2.1 Jednostavna selekcija

Prva metoda selekcije predlozena od strane Johna Hollanda je jednostavna proporci-

onalna selekcija1 gdje je vjerojatnost odabira jedinke proporcionalna njezinoj dobroti.

Postoji puno principa selekcije koji koriste ovakvu selekciju od kojih je bitno spomenuti

Monte Carlo selekciju s kotacem ruleta na kojem svi brojevi nemaju jednake kruzne

isjecke, vec je zamisljena velicina kruznog isjecka jedinke proporcionalna njenoj dobroti,

tj. vjerojatnosti selekcije kao na slici 2.4.

Slika 2.4: Monte Carlo selekcija

U populaciji Pop od n jedinki, dobrota jedne jedinke pi predstavljena je njezinom

1Fitness proportionate selection

Genetski algoritam za optimizaciju funkcije 23

vrijednoscu fitnesa v(pi). Prema [1],[2] vjerojatnost odabira jedinke P (pi) proporci-

onalna je njezinoj dobroti a obrnuto proporcionalna sumi dobrota svih jedinki u popu-

laciji te je dana formulom:

P (pi) =v(pi)n∑j=1

v(pj)(2.4)

Ova metoda selekcije ogranicava algoritam na maksimizaciju jer veci fitnes predstavlja

vecu vjerojatnosti odabira. Kod minimizacije, bolje jedinke imaju manju vrijednost

funkcije cilja, dakle i manji fitnes. Takoder se dodatno ogranicava genetski algoritam

jer formula 2.4 ne vrijedi ako funkcija cilja prima prevelike vrijednosti. U takvom

slucaju moze doci do toga da sve jedinke imaju veliku vjerojatnost selekcije pa jednos-

tavna selekcija postaje slucajan odabir i nema smisla. Stoga je potrebno normalizirati

vrijednosti dobrote kako bi se omogucila minimizacija genetskim algoritmom, te kako

bi fitnes jedinke zaista predstavljao mjeru koja pokazuje vjerojatnost nastanka boljih

jedinki. U tu svrhu se koristimo formulama od 2.5 do 2.8 (vidi [2]).

vmin = min{v(p), ∀p ∈ Pop} (2.5)

vmax = max{v(p), ∀p ∈ Pop} (2.6)

vnorm(p) =vmax − v(p)

vmax − vmin(2.7)

P (pi) =vnorm(pi)n∑j=1

vnorm(pj)(2.8)

Primjer 2.2.1 Uzmimo populaciju Pop = {x1, x2, x3, x4} sa zadanim vrijednostima

funkcije cilja f(x1) = 10, f(x2) = 20, f(x3) = 30 i f(x4) = 40. Jednostavna selekcija

kotacem za rulet izgledala bi kao na slici 2.5a. Vidimo kako je povrsina kotaca propor-

cionalna vrijednosti rjesenja u funkciji cilja. Medutim, kako je potrebno minimizirati

funkciju, vidljivo je da x4 ima najvecu vjerojatnost odabira, sto nije povoljno za algo-

ritam. Zato, normalizirana selekcija ima prikaz kao na slici 2.5b. Na njoj je vidljivo

kako je povrsina, a samim time i vjerojatnost odabira za rjesenja x4 smanjena na nulu.

Na taj nacin je omoguceno da algoritam odabire samo najbolja rjesenja za reprodukciju

u smislu minimizacije (vidi [2]).

Genetski algoritam za optimizaciju funkcije 24

(a) Monte Carlo selekcija (b) Normalizirana Monte Carlo selekcija

Slika 2.5: Graficki prikaz selekcije kotacem za rulet

2.2.2 Turnirska selekcija

Prema [2] najpopularnija i najucinkovitija selekcijska metoda je turnirska selekcija.

Ona na jednostavan nacin eliminira nedostatke jednostavne selekcije tako da iz po-

pulacije Pop sa n elemenata nasumicno odabire k ≤ n elemenata koje tada u obliku

turnira usporeduje medusobno jedan s drugim. Kako turnirsku selekciju ne zanima

ukupna dobrota populacije, cinjenica da su neki fitnesi jako veliki u odnosu na druge

ne predstavlja problem. Ona jednostavno odabire najbolju jedinku i dopusta joj re-

produkciju.

Turnirska selekcija sa zamjenama dopusta istoj jedinki da vise puta sudjeluje u

reprodukciji jer zbog svog fitnesa pobjeduju u najvise turnira. Selekcija bez zamjene

moze ograniciti usporedivanje jedinke same sa sobom ili ograniciti njezinu reprodukciju

na samo jednom (vidi [2]).

Primjer 2.2.2 Uzmimo populaciju Pop(t) = {x1, x2, x3, x4} sa zadanim vrijednostima

funkcije cilja f(x1) = 10, f(x2) = 20, f(x3) = 30 i f(x4) = 40 nad kojom se vrsi tur-

nirska selekcija sa zamjenama za k = 2. To znaci da selekcija odabire dva elementa i

usporeduje ih obzirom na vrijednosti njihovih fitnesa. Jedna moguca selekcija bi rezul-

tirala medupopulacijom:

Pop′(t+ 1) = {usporedi(p1, p3), usporedi(p2, p4),usporedi(p3, p1), usporedi(p4, p2)}

Pop′(t+ 1) = {p1, p2, p1, p2}

Ako je potrebno da nova populacija ima jednako mnogo elementa kao i prethodna, u

prosjeku ce svaka jedinka sudjelovati u dva turnira. Pri tome ce najbolja jedinka p1 po-

bijediti u svakom turniru i najvise puta sudjelovati u reprodukciji. Jedinka losijeg fitnesa

p2 koja je bolja od polovice populacije ce u prosijeku pobijediti u pola turnira. Jedinke

najlosijeg fitnesa nece sudjelovati u reprodukciji jer ce izgubiti u svakom usporedivanju.

Genetski algoritam za optimizaciju funkcije 25

Turnirska selekcija sa zamjenama za k = 3 bi mogla imati oblik:

Pop′(t+ 1) = {usporedi(p1, p2, p3), usporedi(p2, p3, p4),usporedi(p3, p4, p1), usporedi(p4, p1, p2)}

Pop′(t+ 1) = {p1, p2, p1, p1}

Prema [2], povecanjem k povecava se i selekcijski pritisak: algoritam odabire sve vise i

vise jedinki s dobrim svojstvima, dok jedinke s losim svojstvima imaju sve manju vje-

rojatnost odabira. Na taj nacin u reprodukciji sudjeluje veliki broj kopija dominantnih

jedinki i skoro nijedna losa. Za probleme gdje je potrebna brza konvergencija algoritma

ovakvo svojstvo ne predstavlja problem. Medutim, isto tako se moze dogoditi da lose

jedinke koje nisu odabrane a sadrze dobra svojstva na ovaj nacin nestanu iz populacije.

2.2.3 Rangirajuca selekcija

Vjerojatnost odabira jedinki kod rangirajuce selekcije je proporcionalna njihovom po-

retku (rangu) u sortiranoj listi svih jedinki populacije (vidi [1], [2]). Ona ublazava

problem velike razlike vrijednosti funkcije cilja za jedinke i naglasava male razlike.

Geometrijska sortirajuca selekcija2 sortira jedinke od najbolje prema najlosijoj, s tim

da najbolja ima indeks 1, a najgora indeks n. Prema [1] svakoj se jedinki dodjeljuje

vjerojatnost selekcije P (pi) po principu normalne geometrijske distribucije

P (pi) = q′ (1− q)r−1 (2.9)

gdje je:

q - vjerojatnost odabira najbolje jedinke,

r - indeks (redni broj) jedinke,

n - velicina populacije,

q′ - izraz dan sa q1−(1−q)n .

Primjer 2.2.3 Uzmimo populaciju Pop(t) = {x1, x2, x3, x4} sa zadanim vrijednostima

funkcije cilja f(x1) = 10, f(x2) = 20, f(x3) = 30 i f(x4) = 40 nad kojom vrsimo

geometrijsku sortirajucu selekciju. Kako su jedinke vec rangirane od najbolje x1 do

najlosije x4, lagano se izracuna vjerojatnost odabira za svaku od njih. Vrijedi da je q =

0.25, n = 4 i q′ = 415

. Uvrstavanjem u formulu 2.9 dobijemo: P (p1) = 0.2667, P (p2) =

0.2, P (p3) = 0.15 i P (p4) = 0.1125.

Za razliku od turnirske selekcije koja stvara veliku medupopulaciju dobrih jedniki, ge-

ometrijska selekcija dodjeljuje veliku vjerojatnost selekcije nekolicini najboljih jedniki.

Medutim, kako i najlosije jedinke dobivaju vjerojatnost selekcije, manja je sansa da

neka dobra svojstva, pohranjena u losijim jedinkama, nestanu iz populacije.

2Normalized geometric selection

Genetski algoritam za optimizaciju funkcije 26

2.3 Genetski operatori

Kao sto u prirodi dobre jedinke prezive i imaju priliku reprodukcije, tako je i u ge-

netskom algoritmu potrebno osigurati mehanizam reprodukcije, tj. stvaranja novih

rjesenja iz postojecih dobrih. Taj mehanizam cine genetski operatori krizanja i mu-

tacije. Krizanje imitira biolosku razmjenu gena koja nastaje tijekom reprodukcije

na nacin da uzima dvije jedinke koje predstavljaju roditelje3 i mijesanjem njihovih

gena stvori dvije nove jedinke koje predstavljaju potomstvo4. Na taj nacin potomci

zadrzavaju dobra svojstva roditelja koja u narednim generacijama mogu postati jos i

bolja (vidi [7]). Mutacija mijenja svojstva jedinke na nacin da slucajnom promjenom

jednog ili vise gena u kromosomu stvara novu jedinku koja moze imati nova svojstva

koja nisu postojala u populaciji. Genetski operator mutacije je zasluzan za “bijeg”

genetskih algoritama iz lokalnih minimuma. Prema [7], ako cijela populacija rjesenja

zavrsi u lokalnom minimumu, samo slucajna promjena osobina jedinki moze popula-

ciju dovesti u prostor gdje se nalazi bolje rjesenje. Oba genetska operatora su ovisna o

nacinu prikaza rjesenja pa cemo njih i njihove inacice opisati kroz binarni (za funkcije

jedne varijable) i realni prikaz (funkcije cilja s vise varijabli) kromosoma (vidi [1]).

Bitnu razliku u odabiru i nacinu rada operatora cini i duljina kromosoma. Najpopular-

nija metoda je koristenje kromosoma jednake i fiksne duljine. Na taj nacin operatori

nemaju problema sa krizanjem, jer za svaki gen koji zele zamijeniti postoji gen s kojim

ga mogu zamijeniti. Isto tako, mutacija kromosoma duljine 16 bitova nece kreirati

kromosom duljine 32 bita koji tada ne bi bilo moguce ni dekodirati, ni evaluirati jer

bi takav mutirani kromosom mogao biti van prostora pretrage. Medutim, moguce je

da kromosomi koji sudjeluju u krizanju i mutaciji nemaju istu duljinu. Za takve kro-

mosome je vrlo bitno dobro definirati genetske operatore i prostor pretrage, kako ne bi

izazvali prekid rada algoritma ili pretjeranu slozenost (vidi [2]).

3eng. parents4eng. offspring

Genetski algoritam za optimizaciju funkcije 27

2.3.1 Funkcije jedne varijable

Prema [1], neka su X i Y dva vektora duljine m koji kodiraju dvije razlicite jedinke u

populaciji. Za binarni prikaz tih vektora definirani su genetski operatori jednostavne

mutacije5 i jednostavnog krizanja6.

Jednostavna mutacija mijenja svaki bit kromosoma u populaciji s jednakom vjero-

jatnoscu Pm po sljedecoj formuli:

x′i =

{1− xi , ako je U(0, 1) < Pmxi , inace

(2.10)

gdje U(0, 1) predstavlja slucajan broj iz intervala (0, 1). Na slici 2.6a (vidi [2]) je

oznacen bit koji je mutirao pa jedinka s lijeve strane nakon mutacije poprima drugi

oblik i samim time druga svojstva (bolja ili losija).

(a) Mutacija jednog gena (b) Mutacija vise gena jednogsvojstva

(c) Mutacija vise gena

Slika 2.6: Jednostavna mutacija binarno prikazanih gena

Jednostavno krizanje generira slucajan broj r izmedu 1 i m i kreira dvije nove

jedinke X′

i Y′

po formulama 2.11 i 2.12:

x′i =

{xi , ako je i < ryi , inace

(2.11)

y′i =

{yi , ako je i < rxi , inace

(2.12)

Zorniji prikaz vidimo na slici 2.7(vidi [2]) gdje su s lijeve strane svake slike prikazani

roditelji a s desne potomci tih roditelja. Na slici 2.7a se oba roditelja dijele u jednoj

tocki (genu) na dva dijela te potomci nastaju kombinacijom prvog dijela prvog roditelja

s drugim dijelom drugog roditelja, i obratno. Svo genetsko nasljede je sacuvano, ali

rekombinirano s ciljem dobivanja novih rjesenja.

Primjer 2.3.1 Neka su x1 = 17 i x2 = 14 dva rjesenja kodirana binarnim prikazom u

obliku kromosoma g1 = [00010001] i g2 = [00001110] fiksne duljine m = 8.

5eng. Binary mutation6eng. Simple crossover

Genetski algoritam za optimizaciju funkcije 28

(a) Krizanje u jednoj tocki (b) Krizanje u dvije tocke (c) Krizanje u vise tocaka

Slika 2.7: Jednostavna mutacija binarno prikazanih gena

Mutacija s vjerojatnoscu Pm = 0.5 mutira ove kromosome na nacin da nastaju nove

jedinke. One bi mogle imati oblik:

g′1 = [00110110]

g′2 = [00101001].

Dekodiranjem, vidimo da su to sada x′1 = 54 i x′2 = 41. Na taj nacin algoritam moze

pretrazivati nove dijelove prostora rjesenja jer ga je slucajna promjena jednog gena

odvela daleko od pocetnog prostora rjesenja. Sto je vjerojatnost mutacije veca, to su

nova rjesenja dalje od pocetnih. Iako na taj nacin algoritam brzo pretrazuje, cesta

promjena gena moze dovesti i do gubitka dobrih svojstava jedinke.

Krizanjem u jednoj tocki za r = 3 nastaju potomci oblika:

g′1 = [00010110]

g′2 = [00001001].

Njihovim dekodiranjem vidimo da su to kandidati za rjesenja x′1 = 22 i x′2 = 9.

Ovakav operator ne daje nova rjesenja daleko od pocetnog dijela prostora, no to mu i

nije smisao. Rekombinirajuci dobra svojstva dva roditelja mogu nastati bolji potomci,

a njih ionako nema smisla traziti u prostoru daleko od roditelja.

Genetski algoritam za optimizaciju funkcije 29

2.3.2 Funkcije vise kriterija

Prema [1], za prikaz vektora X i Y kao brojeva s pomicnom tockom definirani su

genetski operatori uniformne mutacije7, neuniformne mutacije8, multi neuniformne

mutacije9, granicne mutacije10, jednostavnog krizanja11, aritmetickog krizanja12 i he-

uristickog krizanja13. Ovakav prikaz se koristi kod funkcija s vise kriterija gdje svaki

dio kromosoma (alel) predstavlja jednu varijablu koji zelimo optimirati. Neka su za

svaku varijablu xi dane donja granica ai i gornja granica bi.

Uniformna mutacija odabire jednu varijablu j i mijenja joj vrijednost po formuli:

x′i =

{U(ai, bi) , ako je i = j

xi , inace(2.13)

Granicna mutacija odabire jednu varijablu j i mijenja joj vrijednost na njenu gornju

ili donju granicu ovisno o koeficijentu r = U(0, 1) po formuli:

x′i =

ai , ako je i = j, r < 0.5bi , ako je i = j, r ≥ 0.5xi , inace

(2.14)

Neuniformna mutacija odabire jednu varijablu j i mijenja joj vrijednost po formuli:

x′i =

xi + (bi − xi)f(t) , ako je r1 < 0.5xi − (xi + ai)f(t) , ako je r1 ≥ 0.5

xi , inace(2.15)

pri cemu su:

f(t) = (r2(1− ttmax

))b,

r1, r2 = uniforman slucajan broj U(0, 1),

t = trenutna generacija populacije,

tmax = maksimalan broj generacija,

b = parametar oblika.

Multi neuniformna mutacija vrsi neuniformnu mutaciju na svim varijablama jednog

kromosoma, pa ju nije potrebno definirati posebnom formulom.

7eng. Uniform mutation8eng. Non-uniform mutation9eng. Multi-non-uniform mutation

10eng. Boundary mutation11eng. Simple crossover12eng. Arithmetic crossover13eng. Heuristic crossover

Genetski algoritam za optimizaciju funkcije 30

Primjer 2.3.2 Neka je jedan kandidat za rjesenje X = (2.25, 2.75, 2.5) i neka je xi ∈[2, 3] za i = 1, 2, 3. Promotrimo sto se dogada s varijablom na drugom mjestu ovog

vektora kada na njega djeluju razlicite vrste mutacija.

Uniformna mutacija odabire varijablu x2 = 2.75, pa bi novonastali vektor imao oblik

X′= (2.25, 2.58884, 2.5).

Granicna mutacija odabire varijablu x2 = 2.75 i za r = 0.3 kreira vektor

X′= (2.25, 2, 2.5).

Za r = 0.6 novi vektor bi imao oblik

X′= (2.25, 3, 2.5).

Neuniformna mutacija u 15-oj generaciji od ukupno 100 generacija za parametre

r1 = 0.3, r2 = 0.5 i b = 1 uzima drugu varijablu i novonastali vektor ima oblik

X′= (2.25, 2.85625, 2.5).

Multi neuniformna mutacija bi, sa istim parametrima kao u neuniformnoj mutaciji,

promijenila sve varijable i dala vektor

X′= (2.56875, 2.85625, 2.7125).

Jednostavno krizanje realnih vektora funkcije s vise ciljeva obavlja se po formulama

2.11 i 2.12 pa ga nije potrebno dodatno definirati.

Aritmeticko krizanje uzima jedinke roditelje i od njih stvara dva komplementarno

linearna potomka koristeci r = U(0, 1) po formulama:

X′= rX + (1− r)Y (2.16)

Y′= (1− r)X + rY (2.17)

Heuristicko krizanje daje potomke linearnom ekstrapolacijom. Ovaj operator koristi

i informaciju korisnosti (dominacije) jedne jedinke nad drugom. Nova jedinka, X′,

kreira se po formulama 2.18 i 2.19, gdje je r = U(0, 1) i X je dominantan nad Y .

Ako tako dobiven potomak X′ne zadovoljava uvjet formule 2.20, generira se novi broj

r i kreira nova jedinka po vec spomenutim formulama 2.18 i 2.19. Ako potomak X′

zadovoljava uvjet po formuli 2.20, tada se za nove jedinke uzimaju X′

i Y′. Kako bi

ova metoda osigurala zaustavljanje ako kroz odredeni broj pokusaja t ne uspije naci

bolje potomke od roditelja, za potomke se uzimaju roditelji i prelazi se na novi par

jedinki za krizanje.

Genetski algoritam za optimizaciju funkcije 31

X′= X + r(X − Y ) (2.18)

Y′= X (2.19)

dopustivost =

{1 , ako je x′i ≥ ai , x′i ≤ bi ∀i0 , inace

(2.20)

Primjer 2.3.3 Neka su dani vektori roditelja X = (2.25, 2.75, 2.5) i Y = (2.45, 2.15, 2.9)

i neka je xi ∈ [2, 3], yi ∈ [2, 3] za i = 1, 2, 3. Promotrimo kako nastaju vektori potomaka

kada primijenimo razlicite vrste krizanja.

Jednostavno krizanje sa r = 2 zamijeni x1 sa y1 i daje vektore potomaka

X′= (2.45, 2.75, 2.5)

Y′= (2.25, 2.15, 2.9).

Aritmeticko krizanje sa r = 0.3 zamijeni bi dalo vektore potomaka

X′= (2.39, 2.33, 2.78)

Y′= (2.31, 2.57, 2.62).

Posebno zanimljivo je heuristicko krizanje uz pretpostavku da X dominira nad Y ,

tj. da ima bolji fitnes. Tada za r = 0.7 dobivamo potomke

X′=(2.11 3.17 2.22

)Y′=(2.25 2.75 2.5

).

Kako potomak X′

ne zadovoljava uvjet 2.20 jer ocito x′2 nije iz intervala [2, 3],

generira se novi r = 0.3. Sada dobivamo potomke

X′=(2.19 2.93 2.38

)Y′=(2.25 2.75 2.5

).

Kako ovi potomci zadovoljavaju uvjet dopustivosti 2.20 operator zavrsava.

Genetski algoritam za optimizaciju funkcije 32

2.4 Generiranje pocetne populacije i kriterij zaus-

tavljanja

Prema [2] pocetna populacija Pop(0) nastaje slucajnim kreiranjem n jedinki u prostoru

pretrage G. Te jedinke nemaju roditelje niti naslijedena svojstva, pa se nad njima prvo

vrsi postupak selekcije kako bi odabrali najbolje od njih. Nakon odabira najboljih,

kreira se medupopulacija koja se popunjava do velicine n radom genetskih operatora.

Po zavrsetku njihovog rada, dobije se populacija Pop(1) koja ima bolji prosjecni fitnes

od populacije Pop(0). U pocetnu populaciju je moguce ugraditi i jedinke koje su

nastale kao rezultat nekog drugog optimizacijskog procesa istog problema, a za njih

je utvrdeno da su blizu optimuma kojeg trazimo (vidi [7]). Na taj nacin je moguce

skratiti vrijeme rada genetskog algoritma, jer medu slucajno odabranim jedinkama ima

onih koje ga vode ka optimumu. Medutim, ako su te jedinke lokalni optimumi, moguce

je da algoritam “zastane” u lokalnom minimumu ili maksimumu jer je u ranoj fazi

odbacio neko od ostalih slucajnih rjesenja. Isto tako je moguce za pocetnu populaciju

uzeti populaciju koja je rezultat nekog drugog optimizacijskog procesa, ali opet sa istim

rizikom od lokalnih optimuma.

Genetski algoritam je iterativna metoda optimiranja kojem svaka iteracija rezultira

novom generacijom rjesenja, po uzoru na biolosku analogiju evolucije. Najcesca me-

toda zaustavljanja algoritma je odredivanje maksimalnog broja generacija tmax. Proces

optimiranja se moze zaustaviti ako genetski algoritam kroz odredeni broj iteracija ne

pronalazi rjesenja s boljim fitnesom od onih rjesenja koja u tom trenutku ima u popu-

laciji. Tada se za rjesenje uzima najbolja jedinka koja u toj populaciji postoji i ona,

vrlo vjerojatno, predstavlja globalni optimum. Kako genetski algoritmi poboljsavaju

dobra rjesenja a odbacuju losija, vecina populacije ce konvergirati oko nekog rjesenja.

Kada suma razlika izmedu fitnesa takvih jedinki postane manja od nekog definiranog

broja, genetski algoritam se zaustavlja po kriteriju konvergencije populacije. Prema

[2] sve ove kriterije zaustavljanja mozemo koristiti istovremeno na jednom genetskom

algoritmu, kako bismo osigurali njegovo zaustavljanje.

Poglavlje 3

Teorem sheme

Prema [2], vecina optimizacijskih algoritama pociva na pretpostavci da su rjesenja pro-

blema elementi kontinuiranog prostora kojeg je moguce aproksimirati postupno ili da

su elementi manjih modula koji imaju dobra svojstva cak i kada se javljaju zasebno.

Dizajn prostora pretrage G i definiranje genotip-fenotip mapiranja su vitalni za uspjeh

optimizacije jer odreduju do kojeg stupnja se ocekivana dobra svojstva mogu iskoris-

titi. Jedinke p su okarakterizirane svojim svojstvima φ (razlicitim vrijednostima gena

na odredenim mjestima u kromosomu) koja, iako nebinta za samo genotip-fenotip ma-

piranje i odredivanje fitnesa, utjecu na performanse optimizacije. Opcenito, mozemo

zamisliti neko svojstvo φi kao neku vrstu funkcije koja pridruzuje razlicite jedinke iz

populacije vrijednostima tog svojstva. Na osnovi svojstva φi mozemo definirati relaciju

ekvivalencije ∼φi formulom:

p1 ∼φi p2 ⇒ φi(p1) = φi(p2) ∀p1, p2 ∈ G× X (3.1)

Ocito je da za svaka dva kandidata za rjesenje x1 i x2 vrijedi, ili x1 ∼φi x2 ili x1 �φi x2.

Ove relacije dijele prostor pretrage u klase ekvivalencije Aφi=v.

Definicija 3.0.1 Klasa ekvivalencije Aφi=v koja sadrzi sve jedinke koje dijele iste ka-

rakteristike v u smislu svojstva φi naziva se forma ili predikat.

Aφi=v = {∀p ∈ G× X : φi(p) = v} (3.2)

∀p1, p2 ∈ Aφi=v ⇒ p1 ∼φi p2 (3.3)

Primjer 3.0.1 Neka je dana populacija funkcija kao na slici 3.1 (vidi [2]). To su

redom f1(x) = x+1, f2(x) = x2+1.1, f3(x) = x+2, f4(x) = 2(x+1),f5(x) = (x+1) sinx

i f6(x) = (x+ 1) cosx. Definirajmo sljedece svojstva:

φ1 =

{1 , ako je funkcija sadrzi izraz x+ 10 , ako je ne sadrzi izraz x+ 1

33

Genetski algoritam za optimizaciju funkcije 34

φ2 =

{1 , ako je |f(0)− 1| ≤ 0.10 , inace

Vidimo da vrijedi forma Aφ1=1 = {f1, f4, f5, f6} posto sve funkcije sadrze izraz x + 1.

Isto tako vrijedi forma Aφ1=0 = {f2, f3} posto niti jedna od njih ne sadrzi izraz x + 1.

Jos vrijede forme Aφ2=1 = {f1, f2, f6} i Aφ2=0 = {f3, f4, f5}.

Dvije forme Aφi=v i Aφj=w su kompatibilne (pisemo Aφi=v ./ Aφj=w) ako postoji

barem jedna jedinka koja pripada i jednoj i drugoj formi. Iz primjera forme 3.0.1 ocito

je da su forme Aφ1=1 i Aφ2=1 kompatibilne, dok za dvije razlicite forme istog svojstva,

Aφ1=1 i Aφ1=0 uvijek vrijedi da su nekompatibilne.

Slika 3.1: Primjer populacije

Teorem shema14 je poseban slucaj forme za genetske algoritme postavljen od strane

J. Hollanda. Prema [2], pretpostavimo da je genotip g ∈ G kodiran u obliku niza

znakova (binarni prikaz) fiksne duljine l. Za takve genome, kao svojstva genotipa

promatramo vrijednosti gena na odredenim mjestima (lokusima).

Definicija 3.0.2 Za genom fiksne duljine kodiran u binarnom prikazu definiramo skup

svih genotipskih maski Ml kao partitivni skup odgovarajucih lokusa Ml = P({1, . . . , l}).

Svaka maska mi ∈Ml definira svojstvo φi i relaciju ekvivalencije:

g ∼φi h⇔ g[j] = h[j] ∀j ∈ mi. (3.4)

Pri tome je red maske |mi| jednak broju lokusa definiranih s njom a duljina maske

δ(mi) je maksimalna udaljenost dva indeksa u maski.

Primjer 3.0.2 Prema [2], neka su genotipi nizovi duljine l = 3 sastavljeni u genomu

G = B3. Tada je skup maski M3 = {{1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}. Neka

maska m1 = {1, 2} odreduje da vrijednosti na lokusima 1 i 2 na genotipu oznacavaju

14The Schema Theorem

Genetski algoritam za optimizaciju funkcije 35

vrijednost svojstva φ1 i da je vrijednost bita na lokusu 3 nebitna. Na taj nacin mozemo

definirati cetiri forme:

Aφ1=(0,0) = {(0, 0, 0), (0, 0, 1)}Aφ1=(0,1) = {(0, 1, 0), (0, 1, 1)}Aφ1=(1,0) = {(1, 0, 0), (1, 0, 1)}Aφ1=(1,1) = {(1, 1, 0), (1, 1, 1)}.

Definicija 3.0.3 Forma definirana na binarno prikazanim genomima koja se tice vri-

jednosti bitova na odredenim lokusima se naziva shema.

Drugi nacin definiranja sheme je upotreba simbola “nebitan lokus” koji smjestamo na

onaj lokus koji se ne tice sheme, tj. koji nije bitan za svojstvo koje shema opisuje. Na

taj nacin kreiramo nacrte H po formuli (vidi [2]):

∀j ∈ 1 . . . l⇒ H[j] =

{g[j] , ako je j ∈ mi

∗ , inace(3.5)

Primjer 3.0.3 Sada se shema iz primjera 3.0.2 redefinira kao:

Aφ1=(0,0) ≡ H1 = (0, 0, ∗)Aφ1=(0,1) ≡ H2 = (0, 1, ∗)Aφ1=(1,0) ≡ H3 = (1, 0, ∗)Aφ1=(1,1) ≡ H4 = (1, 1, ∗).

Sheme u primjeru 3.0.3 prikazujemo pomocu hiperravnina u prostoru pretrage G, kao

na slici 3.2.

Brid koji spaja genotip (0, 1, 0) sa (0, 1, 1) na slici 3.2 smatramo nacrtom H2 =

(0, 1, ∗), brid koji spaja genotip (0, 0, 0) sa (0, 0, 1) nacrtom H1 = (0, 0, ∗), brid koji

spaja genotip (1, 1, 0) sa (1, 1, 1) nacrtom H4 = (1, 1, ∗) i brid koji spaja genotip (1, 0, 0)

sa (1, 0, 1) nacrtom H3 = (1, 0, ∗). Mozemo definirati i nacrt H5 = (1, ∗, ∗) koji za

bitna svojstva uzima samo gen na prvom lokusu kada je on vrijednosti 1. Tada je on

predstavljen desnom bocnom ravninom na crtezu 3.2 jer spaja sve genotipe sa zadanim

svojstvom (vidi [2]).

Hollandov teorem sheme je definiran za genetske algoritme sa jednostavnom pro-

porcionalnom selekcijom gdje je fitnes subjekt maksimizacije.

Genetski algoritam za optimizaciju funkcije 36

Slika 3.2: Primjer shemate za genom duljine 3 bita

Teorem 3.0.1 (Hollandov teorem sheme) Broj pojavljivanja genoma iz sheme H

u generaciji t+ 1 je

E(H, Pop)t+1 ≥E(H, Pop)t · v(H)t

vt(1− p) (3.6)

Pri cemu je:

• E(H, Pop)t broj pojavljivanja elemenata dane sheme definirane nacrtom H u po-

pulaciji Pop u trenutku (generaciji) t

• v(H)t prosjecan fitnes elemenata dane sheme

• vt prosjecan fitnes populacije u trenutku t

• p vjerojatnost da ce element dane sheme nestati prilikom reprodukcije

Iz ovako zadanog teorem moze se zakljuciti da genetski algoritmi, za sheme iznadpro-

sijecnog fitnesa, generiraju eksponencijalno rastuci broj uzoraka sheme, dakle genoma

sa iznadprosjecnim fitnesom. Medutim, takav zakljucak da dobre sheme rastu ekspo-

nencijalno nije uvijek istinit. Prema [5] ovaj teorem mozemo promatrati kao donju

granicu pojavljivanja dobrih genoma koja sigurno vrijedi za jednu generaciju t. Ako

jako dobra shema ima puno potomaka s jako dobrim fitnesom, tada se i fitnes ukupne

populacije mijenja, i s time se vjerojatnosti u formuli 3.6 mijenjaju. Takoder, genetski

Genetski algoritam za optimizaciju funkcije 37

algoritmi dijeluju na uzorku ogranicene velicine prostora pretrage G, pa ne mozemo sa

sigurnoscu tvrditi da prosjecan fitnes elemenata dane sheme v(H)t zaista predstavlja

prosjecan fitnes svih elemenata sheme v(H), osim u tom odredenom trenutku (genera-

ciji) t. Kao sto je vec spomenuto, za genetske algoritme ne mora uvijek biti dobro da se

rafiniraju samo elementi jedne odredene sheme, iako imaju iznadprosjecan fitnes, jer to

moze dovesti do preuranjene konvergencije u lokalnom optimumu. Upotreba teorema

kako bi se doslo do predvidanja rada genetskog algoritma za vise od jedne ili dvije

generacije unaprijed moze dovesti do pogresnih zakljucaka (vidi [2]).

Poglavlje 4

Usporedba rada genetskogalgoritma i metode simpleksa

U ovom poglavlju je dana usporedba rada genetskog algoritma i Nelder-Mead sim-

pleks algoritma. U usporedbama smo koristili programe iz programskog paketa Ma-

tlab. Nelder-Mead metoda optimizacije simpleksom je robusna metoda koja posjeduje

pseudo-globalne optimizacijske karakteristike. Simpleks je geometrijska figura od n+ 1

vrhova i spojnica tih vrhova u n dimenzija (u dvije dimenzije to je trokut, u tri di-

menzije je tetraedar)(vidi [4]). Vrhovi simpleksa {xj}n+1j=1 su aproksimacije rjesenja oko

optimalne tocke, sortirani u odnosu na vrijednosti funkcije:

f(x1) ≤ f(x2) ≤ . . . ≤ f(xn+1). (4.1)

Vrh x1 predstavlja najbolju, a xn+1 najlosiju aproksimaciju rjesenja. Nelder-Mead

algoritam zamjenjuje najlosiji vrh xn+1 sa novim vrhom po formuli

x(µ) = (1 + µ)x− µxn+1, (4.2)

pri cemu je x centroid konveksne ljuske podataka {xj}n+1j=1 izracunat po formuli

x =1

n

n∑i=1

xi. (4.3)

Vrijednost µ se nalazi u intervalima

−1 < µuk < 0 < µvk < µr < µe.

Algoritam ima tri osnovne radnje za pretrazivanje: refleksija, ekspanzija i kontrakcija,

pa mu vrijednost µ odreduje kakav ce se korak izvrsavati u algoritmu. Algoritam

zavrsava kada je razlika f(xn+1)− f(x1) manja od unaprijed zadane tolerancije tol ili

kada se izvrsi odredeni broj pozivanja funkcije f u cilju evaluacije vrhova kmax. Nelder-

Mead simpleks metoda ne moze garantirati konvergenciju ka globalnom optimumu, ali

u praksi pokazuje dobre performanse rada algoritma. Zato se u svrhu poboljsanja

38

Genetski algoritam za optimizaciju funkcije 39

konvergencije koristi iterirani simpleks. Ova metoda ponovo pokrece algoritam na

novom skupu tocaka, pri cemu se za jedan vrh takvog novog simpleksa uzme najbolje

rjesenje, prethodno dobiveno istim algoritmom (vidi [3]). Optimizacija Nelder-Mead

simpleksom je sastavni dio Matlab-ovih funkcija optimizacije i poziva se naredbom:

[x,fval,exitflag,output]=fminsearch(fun,x0,options)

pri cemu su izlazne varijable:

• x je konacno rjesenje,

• fval je vrijednost funkcije za dobiveno rjesenje,

• exitflag je oznaka nacina zavrsetka algoritma (zavrsetak zbog konvergencije

rjesenju x, dosegnutog maksimalnog broja iteracija ili maksimalnog broja eva-

luacija kmax),

• output je poruka zavrsetka koja sadrzi informacije o metodi optimizacije, broju

iteracija i broju evaluacija kmax.

Ulazne varijable su:

• fun je poziv funkcije koju minimiziramo,

• x0 je pocetna aproksimacija rjesenja,

• options su parametri kontrole optimizacijskog procesa kao sto su prikaz koraka

algoritma, maksimalno dozvoljeni broj iteracija, maksimalno dozvoljeni broj eva-

luacija funkcija kmax, tolerancija zavrsetka tol.

Genetski algoritam 2.1 je implementiran u Matlab-u u obliku skupa funkcija, od kojih

svaka implementira jedan dio algoritma. Funkcija koja simulira rad genetskog algoritma

oznacena je sa ga i poziva se naredbom (vidi [1]):

[x,endPop,bPop,traceInfo]=ga(bounds,evalFN,evalParams,params,startPop,

termFN,termParams,selectFN,selectParams,

xOverFNs,xOverParams,mutFNs,mutParams)

pri cemu su izlazne varijable:

• x je najbolje rjesenje (konacno rjesenje),

• endPop je zadnja populacija koja sadrzi najbolje rjesenje,

• bPop je matrica najboljih jedinki i odgovarajucih generacija u kojima su nadene,

• traceInfo je matrica optimalnih i srednjih funkcijskih vrijednosti populacije za

svaku generaciju.

Genetski algoritam za optimizaciju funkcije 40

Ulazne varijable su:

• bounds matrica donjih i gornjih granica kandidata za rjesenja,

• evalFN funkcija evaluacije

• evalParams matrica parametara za funkciju evaluacije

• params vektor opcija oblika [epsilon prob param disp param] sa zadanom vri-

jednoscu [1e−6 1 0] gdje epsilon odreduje minimalnu razliku izmedu dva kandi-

data za rjesenja da bi ih se smatralo razlicitim rjesenjima

• startPop matrica pocetne populacije i njihovih vrijednosti

• termFN funkcija zavrsetka rada algoritma

• termParams vektor parametara za termFN

• selectFN selekcijska funkcija postavljena na normalnu geometrijsku selekciju

• selectParams vektor parametara za selekcijsku funkciju

• xOverFN niz metoda krizanja populacije, ovisan o prikazu rjesenja

• xOverParams matrica parametara za krizanje

• mutFN niz metoda mutiranja, ovisan o prikazu rjesenja

• mutParams matrica parametara za krizanje.

Usporedba rada metode simpleksa i genetskog algoritma provedena je na funkciji

Corana definiranoj sa:

f(x) =

{0.15di(0.05S(zi) + zi)

2 , ako je |xi − zi| < 0.05dix

2i , inace

}.

Pri tome su:

zi = 0.2⌊∣∣∣ xi

0.2+ 0.49999

∣∣∣⌋S(xi),

S(zi) =

1 ako je zi > 00 ako je zi = 0−1 ako je zi < 0

,

di mod 4 = {1, 1000, 10, 100} .

Prema [1], ovako definiranu Corana funkciju mozemo zamisliti kao n-dimenzionalne

parabole sa pravokutnim “dzepovima” u kojima su lokalni minimumi, dok se globalni

minimum postize u tocki x∗ = (0, 0, . . . , 0) za koju je f(x∗) = 0. Prikaz Corana funkcije

s dvije varijable je vidljiv na slici 4.1a.

Genetski algoritam za optimizaciju funkcije 41

Takoder, usporedba se vrsi na Rosenbrock funkciji definiranoj sa:

f(x) =n−1∑i=1

[(1− xi)2 + 100

(xi+1 − x2i

)2]x ∈ Rn.

Ova funkcija postize globalni minimum u x∗ = (1, 1, . . . , 1) za koji je f(x∗) = 0. Prikaz

Rosenbrock funkcije s dvije varijable je vidljiv na slici 4.1b.

(a) Corana funkcija

(b) Rosenbrock funkcija

Slika 4.1: Slike funkcija za testiranje

Genetski algoritam za optimizaciju funkcije 42

4.1 Rezultati usporedbe metoda

Primjenom Nelder-Mead simpleks algoritma na minimalizaciju Rosenbrock funkcije

u deset nezavisnih pokusa dobivaju se rezultati prikazani u tablici 4.1. Podaci nam

pokazuju da ugradena Matlab funkcija primjenjuje Nelder-Mead algoritam na brz i

efikasan nacin. U prosjeku, globalni minimum biva pronaden unutar 319 koraka, tj.

refleksija, ekspanzija i kontrakcija s tocnoscu 10−9. Medutim, to mu polazi za rukom

u samo 7 od 10 neovisnih pokusa koji su izvedeni. Razlog tomu je taj sto Nelder-

Mead simpleks algoritam ovisi o odabiru pocetne aproksimacije, tj. pocetnog vrha

simpleksa x0, pa iako posjeduje pseudo-globalna svojstva, ne moze uvijek dohvatiti

globalni minimum.

x0 Pogreske |(1, 1, 1, 1)− x∗| f(x∗)Brojiteracija

(7.220, 0.275, 6.704, -3.72) 10−5 · (0.53, 0.83, 1.62, 2.89) 2.14 · 10−9 292(8.586, 7.462, 0.846, -1.06) 10−5 · (0.22, 0.36, 1.01, 1.90) 1.14 · 10−9 299(-3.09, 3.779, -1.37, 7.015) 10−5 · (0.17, 0.05, 0.32, 0.93) 2.18 · 10−9 348(8.701, 3.246, 1.059, -4.56) (1.776, 0.387, 0.618, 0.854) 3.70142 248(4.485, 8.758, -3.55, 8.933) 10−5 · (0.55, 0.93, 1.83, 3.88) 1.28 · 10−9 291(-3.54, -0.71, -3.02, 5.955) (1.747, 0.430, 0.668, 0.890) 3.70251 132(-0.82, 6.358, 9.131, 2.329) (1.776, 0.387, 0.618, 0.854) 3.70143 442(3.203, 6.306, 9.342, 3.678) 10−5 · (0.19, 0.13, 0.26, 0.19) 1.87 · 10−9 346(9.363, 0.707, 3.628, -1.44) 10−5 · (0.85, 1.89, 3.86, 7.25) 4.44 · 10−9 296(9.473, 3.517, -4.10, 1.883) 10−5 · (0.10, 0.18, 0.85, 1.85) 2.65 · 10−9 359

Tablica 4.1: 10 pokusa Nelder-Mead algoritma

S druge strane, genetski algoritam nam moze garantirati vecu vjerojatnost prona-

laska globalnog minimuma ali uz znatno vise iteracija. Pocetna populacija startPop

sastoji se od 80 jedinki slucajno generiranih unutar intervala [−5, 10], te se u 100000

generacija primjenjuje geometrijska sortirajuca selekcija s vjerojatnoscu 0.08 za odabir

najbolje jedinke. Koristimo heuristicko krizanje koje primjenjujemo 2 puta u sva-

koj generaciji s ogranicenjem da ga na jednom paru jedinki roditelja primjenjujemo

najvise t = 3 puta i multi neuniformnu mutaciju koju primjenjujemo 6 puta u svakoj

generaciji s parametrom oblika b = 3. Ovakav pokus nam daje globalni minimum

x∗ = (1.0003, 1.0006, 1.0012, 1.0023) s vrijednoscu f(x∗) = −1.7985 · 10−6. Medutim,

potrebno je previse vremena za izvrsavanje ovakvog algoritma. U smislu poboljsanja,

genetski algoritam izvrsavamo 10 puta, neovisno jedan o drugom, sa maksimalnim bro-

jem generacija 100 ali uz primjenu mutacije koja se izvrsava 26 puta u svakoj generaciji.

Na taj nacin dopustamo algoritmu da brzo pretrazuje prostor rjesenja, te dobivamo

podatke prikazane u tablici 4.2.

Genetski algoritam za optimizaciju funkcije 43

x∗ f(x∗)(0.9695, 0.9405, 0.8846, 0.7819) -0.0179(1.1557, 1.3380, 1.7914, 3.2123) -0.7665(-1.1397, 1.3120, 1.7270, 2.9862) -5.2259(0.8631, 0.7463, 0.5579, 0.3126) -0.2790(-1.1115, 1.2441, 1.5534, 2.4161) -4.8358(0.6281, 0.3952, 0.1576, 0.0192) -1.2172(0.5274, 0.2798, 0.0769, 0.0157) -1.6041(0.9310, 0.8705, 0.7575, 0.5743) -0.0818(0.8384, 0.7056, 0.4973, 0.2435) -0.3677(0.8438, 0.7119, 0.5043, 0.2523) -0.3541

Tablica 4.2: Prvih 10 pokusa genetskog algoritma za Rosenbrock funkciju

Ponovimo li ovim nacinom jos deset pokusa na pocetnoj populaciji, necemo dobiti

puno bolja globalna rjesenja (osim slucajno). Medutim, ugradimo li najbolje rjesenje

(0.9695, 0.9405, 0.8846, 0.7819) iz ovih 10 pokusa u pocetnu populaciju, navesti cemo

genetski algoritam prema dijelu prostora rjesenja gdje se nalazi globalni minimum.

Kako bi sada algoritam ostao u tom dijelu prostora rjesenja povecavamo broj genera-

cija na 1000. Kao najbolje rjesenje sada se dobije (0.9710, 0.9599, 0.9212, 0.8483) kojeg

takoder ugradujemo u pocetnu populaciju. U sljedecih 10 pokusa, smanjujemo muta-

ciju na 6 izvrsavanja po generaciji, te povecavamo vjerojatnost odabira najbolje jedinke

na 0.16 s ciljem zadrzavanja algoritma u zeljenom prostoru rjesenja. Nakon dva ponav-

ljanja ovakvog pokusa kao najbolja rjesenja dobivamo (0.9942, 0.9884, 0.9768, 0.9541)

i (0.9986, 0.9973, 0.9945, 0.9891). Zamijenimo li sada prva dva rjesenja usadena u

pocetnu populaciju s ova dva rjesenja, te povecamo selekcijski pritisak na 0.24 sa sma-

njenim brojem mutacija po generaciji na 3 dobivamo (0.9998, 0.9996, 0.9991, 0.9983).

Zorniji prikaz ovog postupka vidimo u tablici 4.3.

Broj Broj Selekcijski Brojx∗ f ∗(x)

pokusa gener. pritisak mut.10 100 0.08 26 (0.9695, 0.9405, 0.8846, 0.7819) -0.017910 1000 0.08 26 (0.9710, 0.9599, 0.9212, 0.8483) -0.008210 1000 0.16 6 (0.9942, 0.9884, 0.9768, 0.9541) -0.000710 1000 0.16 6 (0.9986, 0.9973, 0.9945, 0.9891) -3.91 · 10−5

10 1000 0.24 3 (0.9998, 0.9996, 0.9991, 0.9983) -9.92 · 10−7

Tablica 4.3: Ponasanje adaptivnog algoritma za Rosenbrock funkciju

Ovakav princip rada genetskog algoritma naziva se adaptivni genetski algoritam

jer mu dopustamo da zaustavi rad i prilagodi parametre pretrazivanja i operatora,

iako nije postigao globalni optimum. Vrijeme potrebno za izvodenje ovakvog algoritma

Genetski algoritam za optimizaciju funkcije 44

je znatno krace nego vrijeme potrebno za izvrsavanje 100000 generacija a dulje od

Nelder-Mead simpleks algoritma. S druge strane, adaptiranjem genetskog algoritma

ne nestaje njegova sposobnost odredivanja globalnog optimuma, pa je stoga slozenost

rada razumna zamjena za tocnost rezultata.

Na slican nacin testiramo Corana funkciju. Prvo izvodimo 10 neovisnih pokusa

primjenjujuci Nelder-Mead simpleks algoritam ugraden u Matlab cije rezultate rada

vidimo u tablici 4.4.

x0 Pogreske |(1, 1, 1, 1)− x∗| f(x∗)Brojiteracija

(1, 1, 1, 1) (1, 1, 1, 1) 183.7316 14(0.8, 0.8, 0.8, 0.8) (0.8, 0.8, 0.8, 0.8) 120.4046 10(0.6, 0.6, 0.6, 0.6) (0.6, 0.6, 0.6, 0.6) 70.4096 10(0.4, 0.4, 0.4, 0.4) (0.4, 0.4, 0.4, 0.4) 33.7466 9(0.1, 0.1, 0.1, 0.1) 10−4 · (1689, 0.019, 0.346, 0.003) 0.0094 123

(0.01, 0.01, 0.01, 0.01) 10−6 · (49.9, 1.18, 24.1, 0.59) 9.71 · 10−9 179(-0.2, -0.2, -0.2, -0.2) (0.2, 0.2, 0.2, 0.2) 10.4156 8(-0.4, -0.4, -0.4, -0.4) (0.4, 0.4, 0.4, 0.4) 33.7466 9(-0.8, -0.8, -0.8, -0.8) (0.8, 0.8, 0.8, 0.8) 120.4046 10

(-1, -1, -1, -1) (1, 1, 1, 1) 183.7316 14

Tablica 4.4: 10 pokusa Nelder-Mead algoritma

Ocito je da za Corana funkciju Nelder-Mead algoritam vrijedi samo kada mu damo

pocetnu aproksimaciju x0 = (0.01, 0.01, 0.01, 0.01) jer u svakom drugom slucaju algo-

ritam stane i ostane u lokalnom minimumu. Za ovako slozenu test funkciju njegova

pseudo-globalna svojstva nisu dovoljno jaka. Stoga primjenjujemo genetski algoritam

s pocetnom populacijom startPop od 80 jedinki slucajno generiranih unutar intervala

[−10000, 10000], te se u 100000 generacija primjenjuje geometrijska sortirajuca selek-

cija s vjerojatnoscu 0.08 za odabir najbolje jedinke. Koristimo heuristicko krizanje

koje primjenjujemo 2 puta u svakoj generaciji s ogranicenjem da ga na jednom paru

jedinki roditelja primjenjujemo najvise t = 3 puta i multi neuniformnu mutaciju koju

primjenjujemo 6 puta u svakoj generaciji s parametrom oblika b = 3. Ovakav pokus

nam daje globalni minimum x∗ = (−5.02 · 10−5,−9.11 · 10−6,−1.78 · 10−4,−6.75 · 10−5)

s vrijednoscu f(x∗) = −8.58 · 10−7.

Iako je vrijeme izvrsavanja algoritma znatno vece nego vrijeme potrebno za Nelder-

Mead simpleks, globalni minimum je postignut sa zadovoljavajucom tocnoscu. Po-

boljsanje brzine rada ovakvog genetskog algoritma mozemo postici na slican nacin kao

i kod Rosenbrock funkcije, adaptirajuci u hodu njegove parametre. Izvrsavamo deset

genetskih algoritama sa 100 generacija s povecanim brojem mutacija po generaciji na

26 kako bi omogucili brzu i siroku pretragu prostora rjesenja.

Genetski algoritam za optimizaciju funkcije 45

x∗ f(x∗)(378.9561, 0.1577, 23.5968, -0.8453) -2.24 · 104

(49,2284, 0.1850, -6.8046, -0.2353) -444.5306(-3.0066, 0.0274, 1.1745, -0.2379) -5.4296(20.5769, 0.0586, 4.4243, 1.5685) -137.9364

(53.4449, -0.2182, -2.7584, -0.2758) -457.7000(1030, 0.5832, 5.2301, 0.7569) -1.58 · 105

(-66.2436, 0.0179, 21.2310, 0.0277) -1.34 · 103

(45.9558, -0.0096, 13.4236, -0.6025) -595.8744(-208.4317, -0.0046, 3.2445, 1.3893) -6.57 · 103

(-60.8250, -0.0039, 4.6330, -2.4353) -677.8951

Tablica 4.5: Prvih 10 pokusa genetskog algoritma za Corana funkciju

U tablici 4.5 vidimo rezultate prvih deset nezavisnih izvrsavanja takvog genetskog

algoritma. Ugradimo li najbolje rjesenje (−3.0066, 0.0274, 1.1745,−0.2379) u pocetnu

populaciju i izvrsimo li jos deset takvih pokusa, ali sada na 1000 generacija, za najbolji

globalni minimum dobivamo (−3.98 · 10−5,−1.10 · 10−5,−4.57 · 10−4,−1.27 · 10−4).

Ugradimo li i to rjesenje u pocetnu populaciju mozemo povecati vjerojatnost odabira

najbolje jedinke na 0.16 kako bi sada algoritam dopustio vecem broju dobrih jedniki

da prezive. Takoder, smanjujemo broj mutacija po generaciji na 6 kako algoritam

ne bi pretrazivao sav prostor rjesenja, vec samo onaj dio prostora koji nam je od

interesa. Nakon treceg ponavljanja ovakvog algoritma kao globalni optimum dobivamo

(1.04 · 10−5, 2.76 · 10−6,−1.39 · 10−4, 1.11 · 10−5). Zorniji prikaz ove metode vidimo u

tablici 4.6.

Broj Broj Selekcijski Brojx∗ f ∗(x)

pokusa gener. pritisak mut.10 100 0.08 26 (-3.0066, 0.0274, 1.1745, -0.2379) -5.429610 1000 0.08 26 10−5·(-3.98, -1.10, -45.7, -12.7) -3.8 · 10−6

10 1000 0.16 6 10−5·(1.04, 0.276, -13.9, 1.11) -2.1 · 10−7

Tablica 4.6: Ponasanje adaptivnog algoritma za Corana funkciju

Kao i kod Rosenbrock funkcije, potrebno je vise vremena za izvrsavanje ovakvog

adaptivnog genetskog algoritma nego za Nelder-Mead simpleks. Medutim, kako nam

simpleks metoda nije u stanju odrediti globalni minimum iz slucajnog skupa podataka

(osim ako joj ne damo jako dobru pocetnu aproksimaciju), genetski algoritam je najbo-

lja metoda za globalnu minimizaciju Corana funkcije. Adaptacijom podataka u hodu

algoritma, vrijeme rada se skracuje a tocnost rezultata se ne gubi.

Literatura

[1] C. R. Houck, J. A. Joines, M. G. Kay: A Genetic Algorithm for Function

Optimization: A Matlab Implementation, Transactions on Mathematical Software,

22(1996), 1-14.

[2] T. Weise: Global Optimization Algorithms – Theory and Application, samostalno

objavljena na http://www.it-weise.de/projects/book.pdf, (26. 6. 2009.)

[3] P. Charbonneau: An introduction to genetic algorithms for numerical optimi-

zation, Atmospheric Research, 1(2002), 27-40

[4] R. Scitovski: Metode optimizacije - predavanja, Osijek, 2009.

[5] D. Whitley: A genetic algorithm tutorial, Statistic and Computing 4(1994),

65-85,

[6] Popis genetskih algoritama s primjenama

http://en.wikipedia.org/wiki/List of genetic algorithm applications (1.5.2012.)

[7] M. Golub: Genetski algoritam - skripta, Zagreb, 2010.

46

Sazetak

U ovom radu opisan je genetski algoritam za optimizaciju funkcije sa primjenom u

programskom paketu MATLAB.

U prvom poglavlju opisana je problematika optimizacije funkcije s naglaskom na

najcesce probleme i njihova rjesenja. Takoder su definirani osnovni pojmovi globalnih

optimizacijskih algoritama i njihove medusobne veze. Kroz primjere su opisane klase

funkcija za ciju optimizaciju nisu dovoljni klasicni algoritmi.

U drugom poglavlju se definira genetski algoritam kao metoda globalne optimizacije,

njegov nastanak i analogija s evolucijskim procesima. Navedeni su problemi koristenja

genetskih algoritama i rjesenja tih problema, te definirani su genetski operatori. Ovisno

o nacinu primjene, navedeni su primjeri za binarno i realno kodiranje rjesenja genetskih

algoritama, te jednodimenzionalnu i visedimenzionalnu optimizaciju.

U trecem poglavlju opisana je teorija na kojoj leze pretpostavke rada genetskih

algoritama, te je iskazan Holland-ov teorem sheme.

U cetvrtom poglavlju demonstrira se rad genetskog algoritma na testnim funkcijama

Corana i Rosenbrock, te se rezultati usporeduju s Nelder-Mead simpleks algoritmom za

optimizaciju funkcije. Dani su primjeri poboljsanja rada genetskih algoritama u smislu

procesorskog vremena, te tocnosti globalnog minimuma.

47

Summary

Genetic algorithm for function optimization

This paper describes the application of genetic algorithms using software package MA-

TLAB in global optimization.

The first chapter describes the most common problems of global optimization and

defines basic terms. We also explained on the examples different classes of function

problems for global optimization.

The second chapter defines genetic algorithm, his origin and evolution analogies. We

list problems for use of GA and solutions to these problems and define genetic operators.

Depending of the way we use GA, it describes binary vs. float number representation

and also gives examples for uni-modal and multi-modal function optimization.

The third chapter describes theory that gives meaning to use of GA.

The fourth chapter contains examples of GA use on Corana and Rosenbrock test

problems. It also compares performance of these GA examples with Nelder-Mead sim-

plex algorithm witch is part of MATLAB optimization functions. We give suggestions

how to improve GA performance in terms of processing time and calculating global

minimum.

48

Zivotopis

Ivan Kovacevic roden je 12.veljace.1985. godine u Nasicama, Republika Hrvatska. Os-

novnu skolu”Ivane Brlic - Mazuranic” u Koski zavrsava 1999. godine. Iste godine upi-

suje Prirodoslovno-matematicku gimnaziju u Nasicama. 2003. godine zavrsava srednju

skolu i upisuje se na prvu godinu studija na Sveucilistu J.J.Strossmayera, Odjel za

matematiku, smjer matematika i informatika, te 2005. godine prelazi na sveucilisni

nastvanicki studij matematike i informatike. Studij zavrsava 2012. godine.

49