Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
76 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
date metode keširanja izbor strategije i primenjena linearna struktura podataka<br />
(jednodimenzioni niz) za njenu implementaciju.<br />
4.2.1 LRU primenjen na linearnoj strukturi<br />
I pored uočenih nedostataka u implementaciji, data ideja o keširanju GA se<br />
pokazala veoma perspektivnom. Nastavljeno je sa eksperimentima za<br />
nalaženje bolje strategije keširanja i strukture podataka prilagođene datoj<br />
strategiji. Od nekoliko strategija preuzetih iz literature, najpogodnijom se<br />
pokazala LRU. Eksperimentisano je i sa nekoliko raznih struktura podataka (RB<br />
stabla, heš-tabela), ali se one nisu mogle uspešno uklopiti u LRU strategiju. Pri<br />
tome je nivo prepoznavanja istih jedinki (duplikata) bio znatno smanjen, a time i<br />
performanse keširanja. Zbog toga je zadržana linearna struktura podataka.<br />
Struktura datog algoritma za keširanje, zasnovanog na LRU strategiji, se može<br />
videti na slici 4.1 . Pri tome dati programski segment zamenjuje funkciju za<br />
računanje vrednosti funkcije Vrednosna_Funkcija() u originalnoj šemi GA datoj<br />
na slici 1.1 .<br />
if ( Sadrži (keš_memorija, genetski_kod_jedinke) )<br />
Dodeli_Vrednost(jedinka, keš_blok)<br />
else<br />
{<br />
Vrednosna_Funkcija();<br />
if(Popunjena(keš_memorija)) Obriši(keš_memorija, Najstariji_Blok());<br />
Dodaj(keš_memorija, jedinka);<br />
}<br />
Postavi_za_Najnoviji(keš_blok);<br />
Slika 4.1 LRU strategija<br />
U <strong>rad</strong>u [Kra99b] je detaljno opisana data metoda za keširanje i prikazani su<br />
rezultati primene na prostom GA i na složenijem GA za rešavanje SPLP.<br />
Keširanje je poboljšalo vreme izvršavanja obe varijante GA na svim instancama<br />
datog problema. Međutim, rezultati keširanja (ubrzanje u odnosu na osnovni<br />
GA) složenijeg GA su bili prilično lošiji od rezultata keširanja prostog GA. To se<br />
može objasniti time da je primenom složenijih genetskih operatora dobijeno<br />
rešenje boljeg kvaliteta u dosta kraćem vremenu izvršavanja, pa je ostalo<br />
daleko manje potencijala za dalja poboljšavanja.<br />
Takođe su na SPLP instancama veće dimenzije, u obe varijante GA, dobijeni<br />
znatno lošiji rezultati keširanja u odnosu na instance manje dimenzije.<br />
Višestruki su uzroci ove pojave, a jedan od njih je relativno mala veličina keš<br />
memorije koja je primenjena, imajući u vidu način njenog pretraživanja. Detaljniji<br />
opis svih aspekata koji utiču na ove pojave se može videti u <strong>rad</strong>u [Kra99b].<br />
Keširanje je kao metoda već uspešno iskorišćeno za poboljšanje<br />
performansi GA implementacije za rešavanje NP-kompletnih problema, kao što<br />
se može videti u <strong>rad</strong>ovima [Kra98b], [Kra99a] i [Kra99c].<br />
4.2.2 LRU primenjen na dvostrukoj heš-tabeli<br />
Da bi se prevazišli gore pomenuti problemi (koji se javljaju u prethodnom<br />
algoritmu za keširanje GA) primenjena je posebna struktura podataka,