Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
42 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
neiskorišćeni. U nekim slučajevima je pogodnije ako genetske operatore, ili<br />
neke druge funkcije, primenjujemo samo na korisne bitove u genetskom kodu,<br />
pa je zbog toga potrebno memoristi njihov ukupan broj. Ovaj podatak zavisi od<br />
prirode samog problema i veličine instance koji se izvršava, pa vrednost date<br />
promenljive postavlja funkcija za inicijalizaciju konkretnog problema. Međutim,<br />
kada je on memorisan u ovoj promenljivoj, on postaje opšti pa se može koristiti<br />
nezavisno od prirode samog problema.<br />
2.2.2.3 Mutacija<br />
U podstukturi zaduženoj za mutaciju date su sledeće promenljive:<br />
• Pokazivač na funkciju za inicijalizaciju operatora mutacije;<br />
• Pokazivač na funkciju za realizaciju operatora mutacije;<br />
• Maska koja služi za postavljanje svih neiskorišćenih bitova u genetskom<br />
kodu na nultu vrednost;<br />
• Nivo (učestanost) mutacije p mut ;<br />
• Indikator da li je nivo mutacije stalan ili se menja tokom generacija;<br />
• Parametar koji se koristi pri statičkoj eksponencijalnoj ili dinamičkoj promeni<br />
nivoa mutacije;<br />
• Koeficijent eksponenta pri statičkoj eksponencijalnoj promeni mutacije;<br />
• Pokazivač na niz inverznih vrednosti normalne raspodele.<br />
U ovoj implementaciji postoji samo jedan generalni operator mutacije, samo<br />
je on realizovan na različite načine, od kojih su neki efikasniji od drugih. Kod<br />
realizacije preko normalne raspodele se unapred na slučajan način određuje<br />
broj mutacija, a zatim mesta mutacije. Na taj način se obrađuju samo reči koje<br />
imaju gene za mutiranje što je, u najvećem broju slučajeva, efikasnije od<br />
direktnog pristupa gde se obrađuje ceo genetski kod jedinke. Pri tome se na<br />
početku iz datoteke učitava niz koji sadrži inverzne vrednosti normalne<br />
raspodele, koji se kasnije koristi. I u slučaju operatora mutacije, isto kao i kod<br />
ukrštanja, je moguće statički ili dinamički menjati nivo mutacije tokom<br />
generacija.<br />
2.2.3 Ostali podaci<br />
2.2.3.1 Zajedničke funkcije<br />
U ovom delu su dati pokazivači na zajedničke funkcije GANP<br />
implementacije. Iako su skoro sve ove funkcije definisane u delu koji zavisi od<br />
prirode problema, pokazivač je zadat u ovom zajedničkom delu pa je moguće<br />
pozivanje date funkcije nezavisno od prirode samog problema. Funkcijski<br />
pokazivači dati u ovoj podstrukturi su:<br />
• Inicijalizacija parametara za dati problem koji rešavamo;<br />
• Ulaz podataka za konkretni problem;<br />
• Konverzija genetskog koda jedinke u argumente datog konkretnog<br />
problema;<br />
• Konverzija argumenata datog problema u genetski kod jedinke;<br />
• Na osnovu argumenata problema računanje vrednosti (jedinke);<br />
• Eventualna heuristika za poboljšavanje vrednosti neke jedinke u populaciji;<br />
• Inicijalizacija generisanja izveštaja za GA;<br />
• Generisanje izveštaja za GA;