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.

Paralelna GA implementacija 67<br />

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

suseda, pa je ubrzanje bilo blisko linearnom. Detaljnije informacije o osnovi date<br />

PGA implementacije se mogu naći i u [Grg89].<br />

Nešto drugačija PGA implementacija je izložena u <strong>rad</strong>u [Fog91]. Ona je<br />

korišćena za rešavanje problema kontrole u realnom vremenu uz pomoć<br />

višeprocesorskog transpjuterskog sistema. Prvi procesor izvršava GA na<br />

populaciji od 250 jedinki, uz pomoć ostalih procesora u izračunavanju vrednosti<br />

jedinki. Pomoć se sastoji u tome da prvi procesor šalje genetske kodove jedinki<br />

ostalim procesorima, a oni izračunavaju njihove vrednosti i prosleđuju ih nazad<br />

prvom procesoru. Pošto je u datom problemu računanje vrednosne funkcije<br />

vremenski vrlo zahtevno, dati prisatup je bio pogodan i postignuti su<br />

zadovoljavajući rezultati. Postignuto je skoro linearno ubrzanje pri paralelnom<br />

<strong>rad</strong>u do 20 procesora, međutim, ubrzanje pri <strong>rad</strong>u većeg broja procesora brzo<br />

opada.<br />

Levine je za rešavanje problema podele skupa (Set Partitioning Problem -<br />

SPP) primenio oba globalna modela paralelizacije GA:<br />

• Distribuirani model je primenjen u implementaciji opisanoj u [Lvi93a] i<br />

[Lvi93b]. Dati PGA je zasnovan na relativno nezavisnim potpopulacijama,<br />

gde svaka od njih izvršava stacionarni GA, i one povremeno razmenjuju<br />

svoje najbolje jedinke. Odabir jedinke, koja će biti izbačena iz populacije da<br />

bi se na njeno mesto kopirala najbolja jedinka susedne populacije, vrši se<br />

turnirskom selekcijom. Dati pristup, gde se izbacuje najlošija jedinka na<br />

turniru sa nekoliko slučajno izabranih jedinki, se u praksi pokazao boljim od<br />

stalnog izbacivanja najlošije jedinke u populaciji. To se može objasniti<br />

činjenicom da, u prvom slučaju, i najlošija jedinka u populaciji ima neke<br />

šanse za izbor u narednu generaciju pa time doprinosi raznovrsnosti<br />

genetskog materijala. Izvršavanje je obavljeno na paralelnom računaru IBM<br />

SP1 sa 128 procesora, i dobijeni su vrlo dobri rezultati. Pri tome su rešene<br />

neke SPP instance veće dimenzije, sa nekoliko desetina hiljada celobrojnih<br />

promenljivih, koje su se pojavljivale u praksi.<br />

• PGAPack paralelna biblioteka za razvoj paralelnih genetskih algoritama<br />

koristi i mogućnost postojanja jedinstvene globalne populacije, a poslovi<br />

izračunavanja vrednosnih funkcija se dele među procesorima odnosno<br />

procesima. Za paralelizaciju je korišćen model prosleđivanja poruka pa je,<br />

osim izvršavanja na specijalizovanom paralelnom računaru, ostavljena i<br />

mogućnost korišćenja mreže <strong>rad</strong>nih stanica. PGAPack biblioteka je<br />

dostupna preko Interneta [Lvi95a], uz detaljno uputstvo dato u [Lvi95b]. Ova<br />

implementacija je takođe iskorišćena za rešavanje problema podele skupa,<br />

a rezultati su izloženi u <strong>rad</strong>u [Lvi96].<br />

Detaljniji pregled osnovnih karakteristika distribuiranog modela paralelizacije<br />

GA, kao i uporedna analaiza sa ostalim modelima se može naći u [Bld95].<br />

Postoji još i veliki broj drugih PGA implementacija, koje zbog obima ovog<br />

<strong>rad</strong>a, ne mogu sve biti detaljnije opisane, a navodimo literaturu gde se mogu<br />

pronaći detaljniji opisi: [Col91], [Shr91] i [Sho93].<br />

3.2 Zajednički deo<br />

MPI standard podržava paralelne konstrukcije relativno visokog nivoa, uz<br />

istovremeno očuvanje efikasnosti same implementacije. Time je omogućeno da<br />

programski kod ove paralelne implementacije bude relativno kratak a da<br />

ubrzanje bude blisko optimalnom.

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

Saved successfully!

Ooh no, something went wrong!