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