10.02.2014 Views

Usporedba heurističkih algoritama na problemima ... - Zemris - FER

Usporedba heurističkih algoritama na problemima ... - Zemris - FER

Usporedba heurističkih algoritama na problemima ... - Zemris - FER

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.5 Optimiranje funkcija primjenom genetskog algoritma<br />

3.5.1 Uvod<br />

Dosezi i mogućnosti genetskog algoritma testirani su <strong>na</strong> problemu optimizacije funkcija.<br />

Odabrano je 11 različitih realnih funkcija jedne varijable, od polinoma do zahtjevnih funkcija<br />

s mnoštvom lokalnih optimuma. Ispitne funkcije odabrane su s <strong>na</strong>stojanjem da budu<br />

reprezentativne, kako bi se, eventualno, došlo do nekih generalizacija o po<strong>na</strong>šanju genetskog<br />

algoritma <strong>na</strong> ovoj klasi problema.<br />

Konkretno, cilj je ustanoviti efikasnost genetskog algoritma <strong>na</strong> ovoj klasi problema. Što je<br />

broj generacija (iteracija) potrebnih da se dođe do globalnog opitimuma, odnosno broj<br />

izraču<strong>na</strong> funkcije cilja, manji to je algoritam efikasniji. Karakteristika heurističkih <strong>algoritama</strong><br />

je da, u pravilu, daju ili optimalno rješenje ili rješenje koje je blisko opitmalnom; međutim za<br />

to nema nikakve čvrste garancije. Načelno, za realni problem koji se rješava heurističkim<br />

algoritmom ne može se z<strong>na</strong>ti koliko je algoritam pouzdan, tj. koliko se dobiveno rješenje<br />

razlikuje od optimalnog. Međutim, određe<strong>na</strong> sigurnost ipak postoji zbog statističke<br />

zakonitosti; u većini slučajeva pouzdanost algoritma je velika pa očekujemo da će tako biti i<br />

za rješavani problem. Posebice će to vrijediti ako je primijenjeno <strong>na</strong> određenu klasu problema.<br />

Zato će se u testiranjima ustanoviti koliko se prosječno rješenje razlikuje od optimalnog kako<br />

bi se utvrdila očekiva<strong>na</strong> pouzdanost za cijelu klasu problema. Treća mjere<strong>na</strong> karakteristika<br />

algoritma je preciznost.<br />

Na osnovi dobivenih rezultata <strong>na</strong>stojati će se “standardizirati” ulazni parametri genetskog<br />

algoritma kada se on primjenjuje <strong>na</strong> optimiranje realnih funkcija jedne varijable. Promatrati će<br />

se da li se uopće može utvrditi neka zakonitost, da li se parametri podudaraju sa općim<br />

parametrima, predstavljenim u tablici 2.1, ili postoje neke specifičnosti.<br />

3.5.2 Genetski algoritmi s elimi<strong>na</strong>cijskom selekcijom<br />

Genetski_algoritam {<br />

}<br />

Generiraj slučajno VEL_POP jedinki;<br />

Sve dok (ima_vreme<strong>na</strong>) radi<br />

Evaluiraj i selektiraj;<br />

- izraču<strong>na</strong>j vrijednosti fje cilja za sve jedinke<br />

- primijeni translaciju<br />

- izraču<strong>na</strong>j vrijednosti fje kazne za sve jedinke<br />

- izbriši M jedinki <strong>na</strong> <strong>na</strong>čin da je vjerojatnost brisanja prop. vrijednosti fje kazne<br />

Križaj s jednom točkom prekida; //kod GA_2 UniformnoKrižaj;<br />

- s jed<strong>na</strong>kom vjerojatnošću odaberi roditelje od opstalih jedinki<br />

- ako su jedinke jed<strong>na</strong>ke tada mutiraj jednu od njih<br />

i<strong>na</strong>če primijeni križanje s jednom točkom prekida<br />

- po<strong>na</strong>vljaj postupak sve dok se ne generira M djece<br />

Jednostavno mutiraj;<br />

- radi za svaku jedinku u populaciji, samo ne <strong>na</strong>jbolju:<br />

- radi za svaki bit tekuće jedinke:<br />

- izraču<strong>na</strong>j vjerojatnost i po potrebi promijeni bit<br />

Ispiši zadnju generaciju;<br />

Algoritam 3.3 Jednostavni elemi<strong>na</strong>cijski genetski algoritam<br />

13

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!