You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
102 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
čije su grane uspostavljene, i preko kojih se mogu transportovati artikli. Na<br />
datom redukovanom podgrafu G‘ se za svaki artikal k∈C primenjuje algoritam<br />
za nalaženje najkraćeg puta, i na taj način se rekonstruišu elementi x k ij .<br />
Za nalaženje najkraćeg puta u grafu je primenjen Dijkstra-in algoritam, prvi<br />
put opisan u [Dij59], a može se naći u skoro svim knjigama iz oblasti algoritama.<br />
Koristeći neke posebne strukture podataka (primer jedne od njih je detaljno<br />
opisan u [Fre84]), postoje modifikovane implementacije Dijkstra-inog i Bellmanovog<br />
algoritma ([Blm58]) koje nešto brže rešavaju problem nalaženja najkraćeg<br />
puta u grafu. Međutim, nijedna od tih modifikacija nije apsolutno najbolja, već je<br />
svaka od njih pogodna za neku posebnu klasu instanci. Opisi nekoliko ovakvih<br />
metoda su dati u [Joh77], [Gll88] i [GolA93], a njihova uporedna analiza i<br />
rezultati izvršavanja na raznim tipovima grafova se mogu videti u <strong>rad</strong>u [Che93].<br />
U tom <strong>rad</strong>u možemo uočiti da su razlike u vremenima izvršavanja značajne<br />
tek za instance vrlo velike dimenzije (grafovi sa nekoliko hiljada čvorova), što<br />
višestruko prevazilazi dimenzije UNDP instanci koje su rešavane u ovom <strong>rad</strong>u.<br />
Zbog toga je u ovom <strong>rad</strong>u, pri rešavanju UNDP problema, primenjivana<br />
osnovna varijanta Dijkstra-inog algoritma, a u budućnosti je moguće<br />
unapređenje korišćenjem neke od modifikacija.<br />
Teorema 6.1. U opštem slučaju vreme izvršavanja vrednosne funkcije nije<br />
veće od O(|A| + |C| ⋅ |N| 2 ).<br />
Dokaz: Za dobijanje niza y ij iz genetskog koda je potrebno |A| koraka. Posle<br />
toga je potrebno još |C| puta primeniti Dijkstra-in algoritam za nalaženje<br />
najkraćeg puta, koji je vremenske složenosti O(|N| 2 ), pa je ukupno vreme<br />
izvršavanja najviše O(|A| + |C| ⋅ |N| 2 )<br />
♦<br />
6.3.2 Genetski operatori<br />
6.3.2.1 Selekcija<br />
Kao i u primeni na prethodni problem (SPLP) zbirno su najbolji rezultati<br />
dobijeni korišćenjem selekcije bazirane na rangu. Takođe su primenjeni i isti<br />
parametri datog selekcionog operatora (linearno smanjivanje rangova od nivoa<br />
2.5 za najbolju do 0.712 za najlošiju jedinku sa korakom 0.012). Međutim, za<br />
razliku od prethodnog problema, vrlo su male razlike pri izvršavanju u odnosu<br />
na rezultate turnirske selekcije. Čak je turnirska selekcija dala bolje rezultate na<br />
nekim UNDP instancama, ali su ukupni rezultati korišćenjem selekcije bazirane<br />
na rangu zbirno ipak nešto bolji.<br />
6.3.2.2 Ukrštanje i mutacija<br />
Operator uniformnog ukrštanja je i u ovom slučaju pokazao najbolje<br />
performanse pri izvršavanju, mada su i dalje male razlike u odnosu na druge<br />
načine ukrštanja. Zadržan je nivo ukrštanja p cross = 0.85 i verovatnoće razmene<br />
bitova p unif = 0.3 .<br />
Primenjena je i dalje prosta mutacija implementirana korišćenjem Gausove<br />
(normalne) raspodele, ali je nivo mutacije malo izmenjen i dat je pomoću<br />
formule:<br />
1<br />
p mut =<br />
(6.6)<br />
2 ⋅ A<br />
Kao i u prethodnom slučaju dobar izbor nivoa mutacije značajno utiče na<br />
performanse celog genetskog algoritma.