08.03.2015 Views

Ceo rad - PDF (1.3 MB)

Ceo rad - PDF (1.3 MB)

Ceo rad - PDF (1.3 MB)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

72 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />

uključivanje u svoju potpopulaciju. Pošto je njihova vrednost već bila izračunata,<br />

direktno se preuzima bez potrebe da se ponovo računa. Pri preuzimanju jedinki<br />

od susednih procesora, prethodno se mora osloboditi mesto za njeno<br />

smeštanje. Pri tome se izbor jedinke za izbacivanje iz tekuće potpopulacije, da<br />

bi na njeno mesto bila smeštena preuzeta jedinka, može vršiti na različite<br />

načine. Najčešće se primenjuje pristup da se uvek izbacuje najlošija jedinka u<br />

potpopulaciji, ali takav izbor se može vršiti i turnirski, pri čemu se izbacuje<br />

najlošija jedinka na turniru. Time se daje određena šansa i najlošijoj jedinki u<br />

potpopulaciji da ostane, što u nekim slučajevima može da se odrazi pozitivno<br />

na izvršavanje lokalnog GA. Međutim, pošto u praksi oba ova pristupa daju vrlo<br />

slične rezultate, obično se primenjuje onaj prvi, pošto je nešto jednostavniji.<br />

Posle toga izračunavaju se vrednosti jedinki u populaciji za koje je to<br />

potrebno (nije već ranije poznata njihova vrednost) i računaju se odgovarajuće<br />

prilagođenosti svih jedinki u populaciji. Ukoliko je nastupila generacija u kojoj se<br />

vrši slanje jedinki, bira se odgovarajuća jedinka i šalje svim susednim<br />

procesorima. Izbor jedinke za slanje susedima takođe može da se vrši na više<br />

načina. Najjednostavnije je ukoliko biramo uvek najbolju jedinku u potpopulaciji,<br />

a izbor se takođe može vršiti i turnirski (šaljemo jedinku koja je najbolja na<br />

odgovarajućem turniru).<br />

3.3.2 Globalni i lokalni završetak izvršavanja GA<br />

Tokom daljeg izvršavanja proverava se da li postoji neka poruka o<br />

eventualnom kraju izvršavanja GA. Ukoliko takva poruka postoji, vrši se njen<br />

prijem, a zatim su moguća dva slučaja, u zavisnosti od sadržine date poruke.<br />

Ako je data poruka donosila informaciju o globalnom završetku izvršavanja<br />

GA, ona se prosleđuje dalje procesorima "potomcima" i prekida se dalje<br />

izvršavanje lokalnog GA. Nakon toga se samo primaju konačna rešenja od<br />

suseda "potomaka", kombinuju sa rešenjem lokalnog GA na tekućem procesoru<br />

i na kraju prosleđuju susedu "roditelju". Kada osnovni procesor primi sva<br />

rešenja od svojih suseda "potomaka" i generiše konačno rešenje, prekida se<br />

<strong>rad</strong> paralelnog programa i svi procesori prekidaju svoje izvršavanje.<br />

Po eventualnom prijemu poruke o lokalnom završetku izvršavanja GA na<br />

nekom od susednih procesora, beleži se ta informacija. Pri tome su moguće<br />

dve različite strategije:<br />

• Takvim susedima se više ne šalju jedinke, jer su oni završili izvršavanje svog<br />

lokalnog GA:<br />

• Jedinke se i dalje šalju svim susedima a dati susedni procesori pošto ne<br />

mogu sami da koriste ovakve jedinke, jer su završili <strong>rad</strong> svog lokalnog GA,<br />

prosleđuju ih dalje. Pri tome se beleže i informacije o prvom pošiljaocu<br />

jedinke, čime se efikasno spečava ciklično prosleđivanje jedinki.<br />

Ukoliko je završeno izvršavanje lokalnog GA i svi susedi su završili<br />

izvršavanje svojih lokalnih genetskih algoritama, odgovarajuća poruka se šalje<br />

susedu "roditelju". Ukoliko osnovni procesor primi takvu poruku od svih suseda<br />

potomaka i u međuvremenu je i sam završio svoj lokalni GA, on generiše<br />

poruku o globalnom završetku izvršavanja GA i šalje je svojim susedima<br />

"potomcima".

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

Saved successfully!

Ooh no, something went wrong!