Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
150 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
memoriju na lokaciji ga->mut.norm, a eksperimentalno je utvrđeno da je 100<br />
memorisanih vrednosti garantuje dovoljnu tačnost pri izračunavanju.<br />
Na osnovu vrednosti N bits (CODEBITS = ga->pop[...]->codelen * 32) i p mut<br />
(ga->mut.prob) određuju se očekivanje i devijacija date raspodele (ex = N bits *<br />
p mut ; sigmax = N bits * p mut * (1-p mut ) ). Zatim se na slučajan način bira broj ceo<br />
broj num iz intervala [0, 99] i znak sign∈{-1,1}. Očitavanjem s = Φ -1 (num) iz<br />
tabele normalne raspodele dobija se broj bita (gena) m koje treba mutirati na<br />
sledeći način:<br />
m = int( ex + sign * s * sigmax + 0.3 )<br />
(B.2)<br />
Funkcija int() označava funkciju za računanje celobrojne vrednosti izraza, a<br />
vrednost 0.3 se dodaje zbog odsecanja razlomljenog dela izraza. Kao što se<br />
može videti ovaj korak se izvršava u konstantnom vremenu izvršavanja.<br />
Posle ovog koraka, vrši se m mutacija sa slučajnim izborom mutiranih bitova<br />
(gena). Pošto se data aproksimacija može primeniti u praksi ako je ispunjen<br />
uslov N bits * p mut ≥ 5, u takvim slučajevima je pogodno primeniti i ovaj operator.<br />
SimpleNormAll()<br />
I kod ove funkcije se koristi normalna raspodela za izračunavanje broja<br />
bitova (gena) koje treba mutirati. Pošto gorepomenuta aproksimacija zahteva<br />
da broj bitova bude što veći, u ovoj funkciji se računa broj bitova koje treba<br />
mutirati u celoj populaciji (a ne u pojedinačnoj jedinki). Zbog toga je prethodni<br />
uslov sada promenjen (N pop * N bits * p mut ≥ 5) i skoro uvek ispunjen, osim u<br />
eventualno nekim ekstremnim slučajevima vrlo male populacije, sa vrlo malim<br />
brojem bitova i malim nivoom mutacije.