Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Sekvencijalna GA implementacija 61<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
pristupilo se realizaciji generatora slučajnih brojeva. Realizovane su sledeće<br />
funkcije:<br />
• Dobijanje slučajnih neoznačenih celih brojeva iz 16-bitnog i 32-bitnog<br />
opsega;<br />
• Inicijalizacija generatora slučajnih brojeva nekom konstantom ili uz pomoć<br />
vremenske funkcije;<br />
• Generisanje slučajnog celog označenog broja iz zadatog intervala;<br />
• Simulacija prostog slučajnog događaja;<br />
• Zaokruživanje realnog broja dvostruke preciznosti celim brojem.<br />
Generisanje slučajnih brojeva iz 32-bitnog opsega je bilo potrebno zbog<br />
dobijanja početne populacije koje se najčešće vrši na slučajan način. Direktno<br />
se na slučajan način generiše svaka reč u genetskom kodu jedinki početne<br />
populacije. Ukoliko u budućnosti genetski kod bude podeljen na reči dužine<br />
veće od 32 bita, vrlo je lako promeniti odgovarajuću funkciju, tako da direktno<br />
inicijalizuje date reči na slučajan način u početnoj populaciji.<br />
Generator slučajnih brojeva je moguće inicijalizovati uz pomoć sistemske<br />
funkcije koja generiše tačno vreme. Takav način je pogodan upotrebi GA, kada<br />
je bitno da podaci generisani na slučajan način budu raznovrsni što je moguće<br />
više. Na taj način se postiže maksimalna verodostojnost dobijenih rezultata.<br />
Ovakav pristup se ne preporučuje u toku pisanja programskog koda koji je<br />
specifičan za rešavani problem, njegovog ispravljanja i testiranja. U toj fazi je<br />
najbolje da se program ponaša deterministički, da bi što efikasnije mogli da<br />
kontrolišemo sva njegova stanja. Zbog toga se u datim slučajevima generator<br />
slučajnih brojeva inicijalizuje nekom konstantom, tako da izvršavanje programa<br />
bude determinističko. Dati pristup se koristi i za merenje performansi keširanja<br />
GA.<br />
U nekim delovima GANP implementacije javlja se potreba za efikasnom<br />
realizacijom izbora kod prostog slučajnog događaja. Prost slučajni događaj ima<br />
samo dve mogu]nosti čije su verovatnoće p i q =1-p unapred poznate, a<br />
koristi se pri realizaciji genetskih operatora ukrštanja i mutacije kao i u nekim<br />
drugim aspektima GA.<br />
2.6 Funkcije koje zavise od prirode problema<br />
Osnovne funkcije zavisne od prirode samog problema koji se rešava su:<br />
inicijalizacija problema, učitavanje i štampanje podataka o samom problemu i<br />
vrednosna funkcija. Bez njih nije moguće izvršavanje genetskog algoritma, a<br />
dodeljuju se odgovarajućim funkcijskim pokazivačima u GA strukturi.<br />
2.6.1 Učitavanje i štampanje podataka<br />
Deo za učitavanje podataka uključuje:<br />
• Učitavanje konfiguracione datoteke za dati problem (u slučajevima kada ona<br />
postoji);<br />
• Ulaz podataka iz datoteke sa konkretnom instancom problema, i njihovo<br />
smeštanje u odgovarajuću (problem) strukturu;<br />
• Alociranje dinamičkih struktura koje se koriste za smeštanje ulaznih<br />
podataka;<br />
• Učitavanje podataka o optimalnom rešenju, ako je ono unapred dato.