Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Sekvencijalna GA implementacija 43<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
• Generisanje izveštaja o datom problemu;<br />
• Inicijalizacija generisanja završnog izveštaja za GA;<br />
• Generisanje završnog izveštaja za GA;<br />
• Generisanje završnog izveštaja o datom problemu.<br />
2.2.3.2 Keširanje GA<br />
Keširanje GA je originalni doprinos autora ovog <strong>rad</strong>a i ima veliki značaj u<br />
poboljšavanju performansi GA pri rešavanju NP-kompletnih problema. Zbog<br />
toga je ova podstruktura odvojena za parametre keširanja, i sastoji se od<br />
sledećih podataka:<br />
• Pokazivači na funkcije za: inicijalizaciju keširanja, pretraživanje keš<br />
memorije za zadatom jedinkom, ažuriranje bloka keš memorije koji sadrži<br />
pronađenu jedinku i dodavanje nove jedinke;<br />
• Maksimalan i tekući broj zauzetih blokova keš memorije;<br />
• CRC vrednost tekuće jedinke (CRC - Cyclic Redundancy Code);<br />
• Pokazivač na keš memoriju;<br />
• Koeficijenti pri generisanju CRC vrednosti;<br />
• Tekuće vrednosti heš-funkcije u obe heš-tabele ako se primenjuje keširanje<br />
pomoću dvostruke heš-tabele;<br />
• Minimalna, maksimalna i tekuća vrednost funkcije za oslobađanje blokova<br />
ukoliko je keš memorija puna, u slučaju keširanja pomoću dvostruke heštabele.<br />
Svaki blok keš memorije služi za memorisanje jedne jedinke i (kasnije)<br />
eventualno direktno očitavanje njene vrednosti, umesto ponovnog<br />
izračunavanja vrednosne funkcije nad datom jedinkom. U slučaju linearne<br />
organizacije keš memorija je organizovana kao niz pokazivača na blokove keš<br />
memorije, dok u slučaju dvostruke heš-tabele postoje dva niza pokazivača,<br />
svaki za po jednu heš-tabelu. Maksimalni broj blokova keš memorije je unapred<br />
zadat, a svaki od njih ima sledeću organizaciju:<br />
• Dužina genetskog koda memorisane jedinke;<br />
• Genetski kod memorisane jedinke;<br />
• Indikator da li je već izračunata vrednost jedinke:<br />
• Vrednost jedinke;<br />
• Indikator, da li je jedinka korektna;<br />
• Izračunata CRC vrednost jedinke;<br />
• Vrednosti heš-funkcije jedinke u heš-tabeli;<br />
• Pokazivači na sledeće i prethodne blokove keš memorije u dvostruko<br />
povezanim listama koje se formiraju za red i svaku poziciju heš-tabele.<br />
Indikator da li je već (ranije) izračunata vrednost jedinke datog bloka keš<br />
memorije koristi se samo u paralelnoj GA implementaciji. U sekvencijalnom<br />
modelu izračunavanja za njegovim korišćenjem nema potrebe, pošto je<br />
vrednost svake jedinke već izračunata u momentu pretraživanja druge jedinke u<br />
keš memoriji. Detaljnije o ovom indikatoru se može videti u narednom poglavlju<br />
gde je opisana PGANP implementacija.<br />
Poslednje četiri stavke se koriste samo u slučaju kada je za keširanje GA<br />
primenjena heš-red struktura i detalji o tome se mogu videti u poglavlju 4.