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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

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

Ovo uvodno poglavlje daje osnovne informacije o najvažnijim oblastima koje<br />

su zastupljene u <strong>rad</strong>u, a to su:<br />

• Složenost algoritama, NP-kompletni problemi i načini za njihovo rešavanje<br />

dati u odeljku 1.1;<br />

• Kratak opis GA i njihova primena u rešavanju NP-kompletnih problema<br />

prezentirani u odeljku 1.2;<br />

• Višeprocesorske arhitekture i paralelni algoritmi opisani u odeljku <strong>1.3</strong> .<br />

1.1 Složenost algoritama i NP-kompletni problemi<br />

Čest je slučaj sintaksno i semantički ispravnih programa koji korektno <strong>rad</strong>e<br />

na demonstracionim test-primerima manjih dimenzija, ali izvršavanje na<br />

instancama veće dimenzije datog problema preuzetih iz prakse traje<br />

neprihvatljivo dugo ili je nedostižno. Tada se, prirodno, postavlja pitanje da li je<br />

moguće primeniti neki bolji (brži) algoritam.<br />

Zbog toga se javila potreba za kvantifikovanjem vremena izvršavanja svakog<br />

složenijeg algoritma odnosno programa. Pri tome se nužno javlja ideja o<br />

klasifikaciji algoritama po brzini izvršavanja a takođe i klasifikacija problema koji<br />

se njima rešavaju. Vrlo važan aspekt svakog algoritma je pored vremena<br />

izvršavanja (vremenska složenost) takođe i njegova potrošnja memorijskog<br />

prostora (prostorna složenost). Za opšte infomacije o algoritmima i njihovim<br />

primenama u raznim oblastima, mogu se pogledati [Brs88], [Crm90] i [Man91] a<br />

od domaćih autora [Uro96] i [Pau97]. Osim njih mogu se koristiti i knjige [Grn72]<br />

i [Nem89] gde je dat sveobuhvatan pregled algoritama iz oblasti kombinatorne<br />

optimizacije i celobrojnog programiranja.<br />

1.1.1 Vremenska složenost algoritama<br />

Vremenska i prostorna složenost se ocenjuju asimptotski u terminima<br />

elementarnih operacija i podataka hipotetičkog računara. Postupa se na taj<br />

način da bi se izbegle razlike u konstrukciji i performansama konkretnih<br />

računara, a kao posledica pojavljuje se mogućnost da teorijski vrednujemo<br />

kvalitet datog algoritma, bez obzira na kojoj se platformi izvršava.<br />

Definicija 1.1 Za dati problem, čiji su ulazni podaci dimenzije n, kažemo da je<br />

određeni algoritam vremenske složenosti O(g(n)), ako vreme izvršavanja<br />

algoritma u najgorem slučaju ne prelazi vrednost c ⋅ g(n), gde je c konstanta.<br />

Definicija 1.2 Algoritam je polinomske složenosti po vremenu izvršavanja, ako<br />

je vremenske složenosti najviše O(n k ), za neku konstantu k.<br />

Na primer, polinomske složenosti su algoritmi za:<br />

• pretragu uređenog niza, nalaženje Fibonacci-jevih brojeva, ... (složenosti<br />

O(log n));<br />

• pretragu neuređenog niza, zbir elemenata niza, ... (složenosti O(n));<br />

• sortiranje elemenata niza, brzu Furier-ovu transformaciju (FFT), ...<br />

(složenosti O(n log n));<br />

• sabiranje matrica, množenje matrice vektorom, nalaženje najkraćeg puta<br />

(Dijkstra-in algoritam [Dij59]), nalaženje minimalnog drveta razapinjanja ...<br />

(složenosti O(n 2 )) itd.

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

Saved successfully!

Ooh no, something went wrong!