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

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

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

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

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

prikupljanju svih rešenja, ona se kombinuju sa rešenjem tekućeg GA i konačno<br />

rešenje se šalje susedu roditelju.<br />

Po prijemu od suseda roditelja poruke o globalnom kraju <strong>rad</strong>a, ona se<br />

prosleđuje susedima potomcima i prekida se izvršavanje lokalnog GA. Kao i u<br />

prethodnom slučaju prikupljaju se konačna rešenja i šalju susedu roditelju.<br />

Data podstruktura sadrži sledeće podatke:<br />

• Indikator da li je nastupio globalni kraj izvršavanja paralelnog GA<br />

(distribuirani model);<br />

• Pokazivači na funkcije za slanje i prijem poruke o kraju izvršavanja GA<br />

(globalnom ili lokalnom).<br />

3.2.2 Shema izvršavanja paralelnog algoritma<br />

Shema izvršavanja paralelnog algoritma je data na slici 3.1, gde prefiksi M,<br />

S i A redom označavaju da se odgovarajuća funkcija izvršava samo na glavnom<br />

procesu, na ostalim procesima ili na svim procesima.<br />

M_Učitavanje_Paralelne_Konfiguracije();<br />

M_Slanje_Paralelne_Konfiguracije();<br />

S_Prijem_Paralelne_Konfiguracije();<br />

A_Inicijalizacija_Paralelne_Arhitekture();<br />

A_Inicijalizacija_GA_Strukture();<br />

M_Učitavanje_GA_Strukture();<br />

M_Slanje_GA_Strukture();<br />

S_Prijem_i_prosleđivanje_GA_Strukture();<br />

M_Učitavanje_Problem_Strukture();<br />

M_Slanje_Problem_Strukture();<br />

S_Prijem_i_prosleđivanje_Problem_Strukture();<br />

M_Štampanje_Konfiguracionih_Datoteka();<br />

while (! Globalni_Kraj_GA() )<br />

Izvršavanje_Paralelnog_Modela_GA();<br />

M_Štampanje_Rešenja();<br />

Slika 3.1 Opšta shema paralelnog algoritma<br />

Inicijalizacija i učitavanje paralelne strukture, koja sadrži sve podatake<br />

potrebne za paralelnu implementaciju, se vrši prvo na osnovnom procesu. On<br />

zatim svakom od ostalih procesa pojedinačno šalje datu paralelnu strukturu. Oni<br />

uporedo vrše inicijalizaciju paralelne strukture i prijem njenih podataka.<br />

Po prijemu cele paralelne strukture vrši se inicijalizacija odgovarajuće<br />

paralelne arhitekture zadate od strane korisnika (hiperkocka,<br />

jednodimenzionalni niz, dvodimenzionalni niz, i sl.). U distribuiranom modelu je<br />

važna uloga paralelne arhitekture jer ona definiše koje potpopulacije razmenjuju<br />

jedinke tokom <strong>rad</strong>a lokalnih GA. Ona takođe određuje i način prosleđivanja<br />

konačnih rešenja svakog lokalnog GA, tako da na kraju stignu do osnovnog<br />

procesa. Poželjno je da odgovarajuća zadata paralelna arhitektura odgovara<br />

fizičkim vezama između procesora datog višeprocesorskog računara, jer se u<br />

tom slučaju poboljšava efikasnost međuprocesorske komunikacije.<br />

Pošto je izvršen prijem paralelne strukture i inicijalizacija na datom procesu<br />

počinje sa izvršavanjem paralelni GA. Osnovni proces učitava GA strukturu i<br />

podatke specifične za problem koji se rešava. Koristeći izabranu paralelnu

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

Saved successfully!

Ooh no, something went wrong!