You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
56 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
2.4.3.2 Mutacija pomoću binomne raspodele<br />
Neka slučajna promenljiva X gene uzima vrednost 1 ako je dati gen mutiran, a<br />
u suprotnom uzima vrednost 0. Tada odgovarajuća slučajna promenljiva X ind<br />
odgovara celom genetskom kodu jedinke i označava broj mutiranih gena u njoj.<br />
Pošto je X gene prosta slučajna promenljiva, tada slučajna promenljiva X ind ima<br />
binomnu raspodelu B(N bits , p mut ).<br />
Koristeći datu osobinu operator mutacije možemo implementirati relativno<br />
efikasno. Na slučajan način izaberemo broj s ∈ [0,1], a zatim nađemo broj N mut<br />
takav da važi formula (2.11).<br />
F(N mut ) ≤ s < F(N mut + 1) (2.11)<br />
n<br />
⎛ n<br />
k n k<br />
F(n) = ⎜ ⎞ p q<br />
⎝ k⎠ ⎟ ⋅ ⋅ −<br />
∑<br />
k = 1<br />
F(n) je kumulativna funkcija raspodele za datu binomnu raspodelu, a dobijena<br />
vrednost N mut predstavlja broj gena koje treba mutirati u datom genetskom kodu<br />
jedinke. Zatim se na slučajan način biraju pozicije gena za mutiranje i nad tim<br />
genima vrše mutacije.<br />
Za realizaciju mutacije na ovakav način, potrebno je N mut koraka za<br />
računanje prve aproksimacije za F -1 (s), i još N mut koraka za mutiranje<br />
odgovarajućih gena. Dakle potrebno je O(N mut ) koraka, za razliku od O(N bits )<br />
koraka kod prethodnog načina. Ovakav pristup je i u praksi dosta brži od<br />
prethodnog, u slučajevima kada je N bits dovoljno veliko (N bits ≥20) a p mut<br />
dovoljno malo (p mut ≤ 0.05), što se dešava u velikom broju slučajeva primene<br />
GA.<br />
Pokazalo se da data realizacija operatora mutacije nije pogodna ako je broj<br />
gena u genetskom kodu jedinke veliki (N bits > 1000), pa se tada preporučuje<br />
primena nekog drugog pristupa. Data anomalija se javlja kao posledica<br />
računske greške kod izračunavanja sabiraka kumulativne funkcije raspodele, pa<br />
broj N mut nije tačno izračunat.<br />
2.4.3.3 Mutacija korišćenjem normalne raspodele<br />
U slučaju kada N bits --> ∞ slučajna promenljiva X ind teži normalnoj raspodeli<br />
N(N bits * p mut ; N bits * p mut * (1-p mut ) ). Zbog toga, kada je N bits dovoljno veliko a<br />
p mut dovoljno malo, slučajnu promenljivu X ind možemo aproksimirati datom<br />
normalnom raspodelom.<br />
Kao i kod prethodnog načina izračunavanja, prvo se računa broj gena koje<br />
treba mutirati N mut , a zatim se biraju na slučajan način pozicije i dati geni se<br />
mutiraju. Za izračunavanje broja N mut se koristi aproksimacija funkcije Φ -1 (x),<br />
gde funkcija Φ(x) definiše normalnu raspodelu N(0, 1). Pri tome se u datoteci<br />
tablično memorišu vrednosti funkcije Φ -1 (x), koje se učitavaju u fazi<br />
inicijalizacije programa, a na osnovu njih se broj N mut direktno nalazi.<br />
Aproksimacija slučajne promenljive X ind normalnom raspodelom se pokazala<br />
uspešnom u praksi ukoliko je N bits * p mut ≥ 5, inače se ne preporučuje, jer<br />
rezultati aproksimacije suviše odstupaju od originalnih vrednosti.<br />
Pošto izračunavanje broja N mut na ovaj način zahteva konstantno O(1) vreme<br />
izvršavanja, i pošto ne postoji gornje ograničenje za broj bitova N bits (kao kod<br />
prethodnog načina), realizovana je i varijanta ovog operatora mutacije koji