Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
108 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
• x ik daje informaciju o tome da li su postavljeni svi indeksi konfiguracije k što<br />
utiče na uštedu pri upitu i.<br />
⎧<br />
y j = 1 , ako je indeks j postavljen<br />
⎨<br />
⎩ 0,<br />
ako nije postavljen<br />
⎧<br />
x ik = 1 , postavljeni svi indeksi konf. k pri upitu i<br />
⎨<br />
⎩<br />
0,<br />
inace<br />
(7.4)<br />
7.2 Načini rešavanja<br />
Dve metode za rešavanje problema selekcije indeksa (ISP) su date u <strong>rad</strong>u<br />
[Cap95a]. Jedna je heuristika zasnovana na Lagrange-ovoj dekompoziciji<br />
pogodno definisanog potproblema ranca. Ona je primenjena na instancama<br />
datog problema velike dimenzije (m, n i p su nekoliko hiljada), ali je rešenje u<br />
nekim slučajevima bilo lošeg kvaliteta. Druga metoda je koristila ISP formulaciju<br />
preko 0-1 celobrojnog linearnog programiranja gde je korišćena metoda<br />
grananja i ograničavanja (Branch-and-Bound - BnB) zasnovana na LP<br />
relaksaciji, koja daje optimalno rešenje. Prezentirani su rezultati izvršavanja na<br />
UNDP instancama gde su m, n i p su nekoliko stotina.<br />
U [Cap95b] je prikazano jedno poboljšanje prethodne metode pomoću<br />
tehnike grananja i odsecanja (Branch-and-Cut - BnC), pri čemu je ISP<br />
formulisan kao problem pakovanja skupa (set packing problem) . U tom slučaju<br />
se matematički model ovog problema može izraziti isključivo preko nejednakosti<br />
oblika klike (clique inequalities), čiji je broj polinomske složenosti u odnosu na<br />
veličinu datog problema. Na taj način je gornja granica problema dobijena<br />
rešavanjem LP relaksacije u prethodnom pristupu, poboljšana korišćenjem<br />
Chvávtal Gomory-jevim pristupa na nejednakosti klike. Ova metoda daje<br />
optimalno rešenje, a primenjena je na UNDP instance dimenzije do m = 100, n<br />
= 100 i p = 1000.<br />
Osim ovih relatino novijih <strong>rad</strong>ova, neke od korisnih ideja za rešavanje ovog<br />
problema možemo naći i u <strong>rad</strong>ovima [Ip83], [Bon85], [Hat85], [Bar90] i [Gla90].<br />
7.3 GA implementacija<br />
Pošto je broj nenula vrednosti g ik (i ∈ M, k ∈ P) relativno mali u odnosu na<br />
dimenziju matrice, memorišu se samo nenulte vrednosti. To se za svaki upit i<br />
postiže pomoću tri promenljive: koliko je vrednosti g ik ≠ 0 za taj upit, niz tih<br />
vrednosti i niz njihovih k indeksa. Na taj način se postiže i brže izračunavanje<br />
vrednosne funkcije, jer se pretraživanje ne vrši preko svih vrednosti matrice g,<br />
već samo preko vrednosti koje mogu učestvovati u rešenju (g ik ≠ 0). Sličan<br />
zapis se koristi i kod memorisanja sadržaja konfiguracija, gde se za svaku<br />
konfiguraciju beleži koliko indeksa sadrži i svi njihovi redni brojevi.<br />
7.3.1 Kodiranje i vrednosna funkcija<br />
Pri rešavanju datog problema je izabrano binarno kodiranje niza postavljenih<br />
indeksa y. Svaki bit u genetskom kodu jedinke, čija je vrednost 1 označava da<br />
je indeks postavljen (y j = 1), a vrednost 0 da nije (y j = 0). Pošto je iz genetskog<br />
koda direktno očitana vrednost niza y, na osnovu njega pronalazimo koje su<br />
konfiguracije aktivne (svi njihovi indeksi su aktivni).<br />
Za svaki upit se nalazi ona aktivna konfiguracija koja mu najbolje odgovara,<br />
odnosno kada je ušteda vremena najveća (maksimalno g ik ). Tada samo