08.03.2015 Views

Ceo rad - PDF (1.3 MB)

Ceo rad - PDF (1.3 MB)

Ceo rad - PDF (1.3 MB)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Dodatak B Detaljan opis implementacije 145<br />

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />

koja služi u slučaju selekcije zasnovane na rangu kao pokazivač na datoteku<br />

gde je smešten niz rangova.<br />

Sledeće varijante selekcije su implementirane:<br />

SimpleSelect()<br />

Proste rulet selekcija, koja je detaljno opisana u odeljku 2.2.2.1, je<br />

realizovana simuliranjem bacanje kuglice na ruletu, gde su širine polja na ruletu<br />

direktno proporcionalne prilagođenosti jedinke. To se realizuje na sledeći način:<br />

• Za svaku jedinku i koju biramo za prolaz u sledeću generaciju, se slučajno<br />

bira broj rndf iz intervala [0, sumf ], gde je sumf zbir prilagođenosti svih<br />

jedinki u populaciji;<br />

• Traži se jedinka j čiji opseg prilagođenosti (polje na ruletu) sadrži dati broj<br />

rndf ;<br />

• Kopira genetski kod jedinke j u privremeni genetski kod jedinke i.<br />

U narednu generaciju se direktno selektuje najboljih N elite + N pass (ga-<br />

>newgener.nelite + ga->select.npass) jedinki. Da date jedinke ne bi bile<br />

neopravdano favorizovane u odnosu na ostale jedinke u populaciji, jer je jedna<br />

kopija svake od njih direktno prošla proces selekcije, vrši se popravka<br />

prilagođenosti po formuli (2.9).<br />

InitRankBasedSelect()<br />

Vrši inicijalizaciju niza rangova kod selekcije zasnovane na rangu,<br />

učitavanjem iz datoteke određene pokazivačem rankfile, gde je naziv<br />

odgovarajuće datoteke na disku "RANK.DAT". Ukoliko u datoteci ima više<br />

vrednosti od broja jedinki u populaciji N pop (ga->nitem), učitava se prvih N pop<br />

vrednosti. U suprotnom, ako u datoteci ima manje od N pop vrednosti, niz<br />

rangova se popunjava sve dok ima vrednosti, a sva nepopunjena mesta se<br />

popunjavaju vrednošću poslednjeg učitanog elementa. Niz rangova na koji<br />

pokazuje odgovarajući pokazivač (ga->select.rank) i koji se alocira dinamički,<br />

memoriše učitane vrednosti i kasnije ih prosleđuje u populaciju.<br />

RankBasedDirectSelect()<br />

Primenjena je selekcija zasnovana na rangu, koja je već opisana u odeljku<br />

2.2.2.2, pri čemu se preporučuje da jedinke u populaciji budu uređene u<br />

nerastuđem poretku po prilagođenosti. Pri tome se insistira da niz rangova bude<br />

uređen u nerastućem poretku. Prilagođenost jedinki se direktno očitava iz niza<br />

rangova (*ga->select.rank). Broj kopija date jedinke u narednoj generaciji se<br />

određuje na osnovu prilagođenosti date jedinke. Nedostatak ove metode je<br />

potpuno deterministički način izbora jedinki u narednu generaciju, što ne<br />

doprinosi u dovoljnoj meri raznovrsnosti genetskog materijala.<br />

RankBasedRouletteSelectR()<br />

Ova funkcija realizuje selekciju zasnovanu na rangu, za izbor jedinki u<br />

sledećoj generaciji. Prva faza dodele niza rangova za prilagođenost jedinki je

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!