08.03.2015 Views

Ceo rad - PDF (1.3 MB)

Ceo rad - PDF (1.3 MB)

Ceo rad - PDF (1.3 MB)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

88 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />

Početna implementacija zasnovana na prostom GA za rešavanje SPLP je u<br />

praksi pokazala dobre rezultate, ali ne i dovoljno dobre da može da se uporedi<br />

sa najboljim rezultatima dobijenim pomoću ostalih metoda. Zbog toga se<br />

pristupilo postepenom poboljšanju osnovne implementacije, koje je redom<br />

opisano u <strong>rad</strong>ovima [Kra98b], [Kra99a], [Kra99c], kao i u ovom poglavlju.<br />

5.3 GA implementacija<br />

5.3.1 GA reprezentacija<br />

Za rešavanje problema (SPLP) izabrano je binarno kodiranje potencijalnih<br />

lokacija snabdevača. Svaki bit u genetskom kodu jedinke, čija je vrednost 1<br />

označava da je na datoj lokaciji postavljen snabdevač, a vrednost 0 da nije.<br />

Genetski kod jedinke je alociran kao niz 32-bitnih reči, <strong>rad</strong>i bržeg izvršavanja,<br />

pri primeni genetskih operatora.<br />

Primer 5.2.<br />

Za m=5, genetski kod jedinke 01011⏐000000010000000010001110101<br />

1. - 5. 6. - 32.<br />

označava da:<br />

• su na lokacijama 2, 4 i 5 su postavljeni snabdevači;<br />

• na lokacijama 1 i 3 nisu postavljeni snbdevači;<br />

• se ignorišu bitovi 6-32.<br />

Iz genetskog koda se direktno nalazi niz indikatora y i (i=1, 2, ... , m) koji<br />

kazuju da li je na odgovarajućoj potencijalnoj lokaciji postavljen snabdevač ili<br />

ne. Pošto za snabdevača na određenoj lokaciji ne postoji ograničenje u<br />

kapacitetu lokacije i pošto je poznato na kojim su sve lokacijama postavljeni<br />

snabdevači a na kojima nisu (niz y i ), svaki korisnik može da izabere sebi<br />

najbližeg snabdevača. Primetimo da se, u slučaju kada su snabdevači fiksirani,<br />

minimizacijom troškova za svakog korisnika ujedno dobija i minimum ukupnih<br />

troškova.<br />

5.3.2 Vrednosna funkcija<br />

Vrlo važan deo koji garantuje brzu implementaciju funkcije za računanje<br />

vrednosti jedinke (vrednosne funkcije - objective value function) je izbor prave<br />

strukture podataka. Radi ubrzanja pri računanju vrednosne funkcije, koristimo<br />

dodatni memorijski prostor za memorisanje rednih brojeva potencijalnih lokacija.<br />

Za svakog korisnika lista indeksa potencijalnih lokacija je uređena u<br />

neopadajućem poretku troškova transporta.<br />

Pri inicijalizaciji programa, formiramo listu indeksa za svakog klijenta, i to<br />

korišćenjem ugrađene qsort() funkcije. Pri tome je zauzeće memorije oko 50%<br />

veće, ali je nekoliko puta brže izvršavanje programa.<br />

Zavisno od broja postavljenih lokacija za snabdevanje e i izračunate<br />

vrednosti e 0 = c⋅<br />

m, predloženo je korišćenje dve različite strategije za<br />

računanje vrednosne funkcije. Konstanta c je eksperimentalno određena na<br />

nivou 0.4 - 0.5, jer su tada dobijeni najbolji rezultati u praksi.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!