You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
46 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
f(x) = x (2.1)<br />
Funkcija prilagođenosti data u (2.1) se može primeniti samo u slučaju<br />
problema maksimizacije, što je još jedan njen nedostatak. Ovaj nedostatak je<br />
moguće relativno lako ispraviti ako za minimizacione probleme primenimo<br />
sledeću funkciju datu u (2.2).<br />
f(x) = M - x (2.2)<br />
Potrebno je da vrednost M bude dovoljno velika da bi funkcija prilagođenosti f<br />
bila nenegativna. Ovo je neophodno da bi se mogao primeniti operator<br />
selekcije. Svi operatori selekcije zahtevaju da sve jedinke imaju nenegativnu<br />
prilagođenost. Ni ovo nije najpogodnije za primenu jer vrednost M nije uvek<br />
lako unapred odrediti.<br />
Međutim, čak i da to ispravimo, ovakav pristup nije u skladu sa praktičnim<br />
aspektima GA. Pošto u praksi daje loše rezultate čak i na ''školskim' testprimerima<br />
relativno manje dimenzije, dati pristup se primenjuje samo u slučaju<br />
prostog genetskog algoritma, i to samo za rešavanje relativno prostijih<br />
problema.<br />
2.3.2.2 Linearno skaliranje<br />
U ovom slučaju se primenjuje funkcija prilagođenosti oblika:<br />
f(x) = c A ⋅ x + c B (2.3)<br />
Koeficijenti c A i c B su konstantni i unose se iz konfiguracione datoteke. Iako je<br />
nešto bolji od prethodnog pristupa, ovakav način računanja prilagođenosti ima<br />
slične nedostatke. Zbog toga se situacija može prilično popraviti ako koeficijenti<br />
A i B nisu konstantni, već se menjaju tokom generacija.<br />
Jedan od takvih pristupa određuje koeficijente A i B tako da je sredina<br />
intervala u koji skaliramo približno jednaka srednjoj vrednosti jedinki u<br />
populaciji. Funkcija koristi parametar C čija se vrednost bira eksperimentalno, a<br />
obično je u intervalu [1, 3]. U slučaju da je interval u koji skaliramo već<br />
nenegativan, odgovarajuća formula je (2.4), a u suprotnom se koristi formula<br />
(2.5).<br />
δ = max - x<br />
A = (C - 1) * x / δ<br />
B = x * (max - C * x ) / δ (2.4)<br />
δ = x - min<br />
A = x / δ<br />
B = - min * x / δ (2.5)<br />
Vrednosti min, max i x su redom minimalna, maksimalna i srednja vrednost<br />
jedinki u populaciji. Primetimo da je ovo skaliranje takvo da rezultujuća funkcija<br />
prilagođenosti vraća isključivo nenegativne vrednosti.