Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
126 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
instancama problema veće dimenzije, ova datoteka sadrži samo informacije o<br />
rešenju dobijenom u tekućem izvršavanju.<br />
NBit = fp<br />
U ovoj implementaciji je osim pojedinačne primene nekog od operatora<br />
ukrštanja dozvoljeno i kombinovanje više različitih operatora ukrštanja, i<br />
primena na jedinke u populaciji. Pri tome je svaki od pojedinačnih operatora<br />
zadužen za ukrštanje jednog dela jedinke. Granične pozicije bitova svakog dela<br />
u okviru jedinke, izračunavaju se pomoću posebne funkcije. Posle toga se svaki<br />
pojedinačni operator ukrštanja primenjuje direktno na odgovarajući deo jedinke,<br />
umesto na celu jedinku što je bio slučaj pri samostalnoj primeni.<br />
U ovom redu konfiguracione datoteke se vrši izbor odgovarajuće funkcije<br />
koja generiše date granične pozicije bitova u slučaju kombinovanog ukrštanja.<br />
Ukoliko se primenjuje pojedinačni operator ukrštanja, ova funkcija nema<br />
nikakvih efekata na izvršavanje GA.<br />
Napomenimo da kombinovano ukrštanje nije dalo rezultate koji su očekivani,<br />
u rešavanju problema opisanih u ovom <strong>rad</strong>u. Međutim ova mogućnost je<br />
ostavljena ukoliko se pokaže kao pogodna u nekim budućim primenama.<br />
ImprovingHeuristic = fp<br />
Služi pri zadavanju heuristike za poboljšavanje rešenja (jedinki) u svakoj<br />
generaciji, ukoliko se koristi takav pristup.<br />
[CachingGA]<br />
Parametri vezani za keširanje GA se postavljaju u ovoj sekciji. Oni mogu<br />
značajno da utiču na uspešnost ove metode (procenat jedinki čija se vrednost<br />
preuzima direktno iz keš memorije umesto izračunavanja), a tako i na<br />
performanse cele GA implementacije.<br />
Length = n<br />
Kao što je već rečeno za keširanje GA se koristi sistemska memorija<br />
računara. Na ovaj način (postavljanjem ovog parametra) se zadaje maksimalna<br />
veličina sistemske memorije koja može biti utrošena za keširanje GA.<br />
Napomenimo, da time nije fiksno određena veličina keš memorije u KB, već ona<br />
zavisi od veličine svake od jedinki. Maksimalno je dopušten broj jedinki određen<br />
konstantom MAXBUF, koja u ovoj implementaciji iznosi 50 000.<br />
U slučaju linearne strukture podataka (FirstLinear) se preporučuje da<br />
veličina keš memorije bude u opsegu 20 - 200, a u nekom od pristupa<br />
korišćenjem heš-tabela 500 - 50 000. Ovo je posledica činjenice da je<br />
pretraživanje heš-tabele u prosečno konstantnom vremenu izvršavanja, pa<br />
povećanje veličine keš memorije praktično ne utiče na povećanje vremena<br />
pretrage keš memorije. Međutim, pri alokaciji i inicijalizaciji velike keš memorije<br />
se ipak troši značajno vremena, iako se te operacije izvršavaju samo jednom<br />
(na početku <strong>rad</strong>a GA).<br />
Povećanje veličine keš memorije utiče primetno, ali manje nego što je to<br />
očekivano, na povećavanje broja jedinki koje su pronađene u keš memoriji.