Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
22 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
Genetski algoritam je generalno najpogodniji za probleme koji se mogu<br />
binarno kodirati na prirodan način. Mogući su i slučajevi korišćenja alfabeta<br />
veće kardinalnosti od binarne. Goldberg u [Gol89] dokazuje da teorijski binarna<br />
reprezentacija daje veći broj shema, čija je posledica veći stepen implicitnog<br />
paralelizma. Međutim, Antonisse u <strong>rad</strong>u [Ant89], drugačije interpretira pojam<br />
sheme i potpuno suprotno zaključuje da GA nad alfabetima veće kardinalnosti<br />
sadrže više shema od binarnih.<br />
U primerima GA nad alfabetima veće kardinalnosti, simboli (geni) su<br />
najčešće predstavljeni celim ili realnim brojevima. U [Dav91] se zaključuje da su<br />
vrednosti u programu često numeričkog tipa, i da njihova direktna<br />
reprezentacija kao brojeva, umesto kao niza bitova, poseduje niz prednosti. Na<br />
primer, mnogo je lakše i prirodnije definisanje operatora ukrštanja i mutacije<br />
zavisnih od prirode problema. O nebinarnim reprezentacijama detaljnije se<br />
može videti u [Ant89], [BeD93b] i [Gol89], a jedna uporedna analiza performansi<br />
binarnih i reprezentacija pomoću realnih brojeva je data u [Jan91].<br />
1.2.3.2 Postupak u slučaju nekoreknih jedinki<br />
U praktičnim primenama je najpogodnije ako se pri kodiranju bijektivno<br />
preslikavaju parametri problema u genetske kodove. Međutim, za neke<br />
probleme je nemoguće naći takvo kodiranje, ili ono daje rezultate koji nisu<br />
zadovoljavajući. U tom slučaju smo prinuđeni na kodiranje koje nije bijekcija, ili<br />
čak nije preslikavanje. Mogući su sledeći slučajevi:<br />
• Za određenu jedinku ne postoji genetski kod. U tom slučaju kodiranje<br />
moramo odbaciti, jer ne postoji nikakav način za prevazilaženje datog<br />
nedostatka;<br />
• Za neke jedinke postoji više genetskih kodova. Iako to sa teorijskog<br />
stanovišta nije pogodno, ne postoji nikakva praktična prepreka za primenu<br />
datog kodiranja;<br />
• Određeni genetski kod predstavlja više jedinki. Kodiranje moramo odbaciti,<br />
kao i u prvom slučaju;<br />
• Određeni genetski kod ne odgovara nijednoj jedinki. Takav genetski kod<br />
nazivamo nekorektnim. Najčešće dati genetski kod ima interpretaciju u<br />
prostoru gde se problem rešava, ali ne pripada prostoru rešenja. Odnosno,<br />
nije ispunjen neki od uslova, koji definišu rešenje problema.<br />
Pošto su prvi i treći slučaj teorijski neprihvatljivi, a drugi možemo ignorisati,<br />
zanimljiv za rešavanje je jedino poslednji slučaj. Postoji nekoliko načina za<br />
rešavanje problema sa nekorektnim genetskim kodovima.<br />
Nekorektne genetske kodove možemo da ignorišemo, i dodelimo im nulu za<br />
vrednost funkcije prilagođenosti. U sledećoj generaciji će oni biti automatski<br />
izbačeni iz populacije. Na taj način u daljem postupku ostaju samo korektni<br />
genetski kodovi, a nekorektni ostaju najduže u tekućoj generaciji, a zatim<br />
nestaju. Iako teorijski dobar, dati postupak se u praksi može primeniti samo na<br />
slučajeve, gde u prostoru pretrage nekorektnih jedinki (kodova) ima najviše 50-<br />
70%. U praksi takvih problema ima zanemarljivo malo, jer su obično uslovi koji<br />
definišu rešenje problema jako restriktivni. Pri tome je korektnih jedinki u<br />
prostoru pretrage najčešće nekoliko redova veličine manje od nekorektnih. U<br />
tom slučaju, genetski algoritam uopšte ne može da se izvršava, jer na početku<br />
ili u toku izvršavanja, u datoj generaciji, populacija sadrži samo nekorektne<br />
jedinke.