You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
68 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
3.2.1 Opis paralelne strukture<br />
Svi podaci specifični za PGANP implementaciju su grupisani u paralelnu<br />
strukturu. Osnovna paralelna struktura je po načinu korišćenja podeljena na<br />
podstrukture koje su zadužene za:<br />
• Arhitekturu zadatu od strane korisnika;<br />
• Razmenu jedinki;<br />
• Prosleđivanje rešenja;<br />
• Kraj izvršavanja GA.<br />
Osim date postoji i struktura zadužena za opis podataka u konfiguracionoj<br />
datoteci, kao i više nizova funkcijskih pokazivača, ali su oni manje važni za opis<br />
paralelne implementacije pa će detaljno biti opisani u Dodatku B.<br />
3.2.1.1 Paralelna arhitektura<br />
Kao što se može videti kasnije, arhitektura zadata od strane korisnika može,<br />
u nekim slučajevima, znatno uticati na performanse paralelnog GA. Ukoliko sve<br />
procese koji se izvršavaju na paralelnom računaru posmatramo kao čvorove, a<br />
susedne procese koji razmenjuju jedinke obeležimo kao grane, implicitno je<br />
definisan graf razmene jedinki tokom izvršavanja paralelnog GA. Pošto se<br />
jedinke razmenjuju između susednih procesa samo u distribuiranom modelu,<br />
dati graf nema uticaja na centralizovani model izvršavanja.<br />
Za sve modele paralelizacije je značajan način prosleđivanja GA i problem<br />
strukture od osnovnog procesa kao svim ostalim procesima. Ovakav način<br />
prosleđivanja se može formalno opisati nekom drvoidnom strukturom, koju<br />
nazivamo drvo prosleđivanja. U takvoj formalizaciji, za svaki proces možemo<br />
definisati dva pojma: sused roditelj i susedi potomci. Svaki proces, osim<br />
osnovnog, ima tačno jednog suseda roditelja od koga dobija GA i problem<br />
strukturu na početku i prosleđuje ih svojim susedima potomcima. Ova struktura<br />
(drvo prosleđivanja) se, ali u obrnutom smeru, koristi u distribuiranom modelu<br />
za prikupljanje konačnih rešenja i njihovo prosleđivanje ka osnovnom procesu.<br />
Data podstruktura sadrži sledeće podatke:<br />
• Redni broj tekućeg procesa;<br />
• Broj svih suseda (susednih procesa), niz njihovih indeksa i redni broj<br />
tekućeg suseda;<br />
• Indeks suseda roditelja;<br />
• Broj suseda potomaka i niz njihovih indeksa;<br />
• Niz indikatora koji označavaju da li je odgovarajući sused završio sa <strong>rad</strong>om<br />
svoj lokalni GA;<br />
• Pokazivač na funkciju za inicijalizaciju date paralelne arhitekture;<br />
Pokazivači na funkcije za slanje GA odnosno problem strukture, kao i<br />
odgovarajuće funkcije za njihov prijem.<br />
3.2.1.2 Razmena jedinki<br />
U distribuiranom modelu se jedinke razmenjuju relativno retko, najčešće<br />
samo jednom u nekoliko generacija, i to samo između potpopulacija koje se<br />
izvršavaju na susednim procesima. Zbog toga, nije toliko važna efikasnost<br />
razmene jedinki i sinhronizacija procesa u okviru višeprocesorskog računara,<br />
već su mnogo važniji učestanost razmene i izbor odgovarajućih jedinki koje se<br />
razmenjuju.