157
[email protected] www.matf.bg.ac.rs/ ~ ezivkovm [email protected] www.matf.bg.ac.rs/ ~ vesnap

Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Konstrukcija i analiza algoritamaMaterijal sa predava�a

Miodrag �ivkovi�

e-mail: [email protected]

URL: www.matf.bg.ac.rs/~ezivkovm

Vesna Marinkovi�

e-mail: [email protected]

URL: www.matf.bg.ac.rs/~vesnap

Matematiqki fakultet, Beograd

1

Page 2: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

2

Autori:prof. dr Miodrag �ivkovi�, redovni profesor Matematiqkog fakultetau Beogradudr Vesna Marinkovi�, docent Matematiqkog fakulteta u Beogradu

KONSTRUKCIJA I ANALIZA ALGORITAMA

Sva prava zadr�ana. Nijedan deo ovog materijala ne mo�e biti reprodukovan

niti smexten u sistem za pretra�iva�e ili transmitova�e u bilo kom obliku,

elektronski, mehaniqki, fotokopira�em, sma�e�em ili na drugi naqin, bez

prethodne pismene dozvole autora.

Page 3: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Sadr�aj

Sadr�aj 3

1 Pregled tehnika dokaziva�a 51.1 Pravila izvo�e�a . . . . . . . . . . . . . . . . . . . . . . . . . 61.2 Dokazi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3 Strategije dokaziva�a . . . . . . . . . . . . . . . . . . . . . . 141.4 Hipoteze, dokazi, kontraprimeri . . . . . . . . . . . . . . . . 171.5 Algoritamski nerazrexivi problemi . . . . . . . . . . . . . 19

2 Matematiqka indukcija 212.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2 Dva jednostavna primera . . . . . . . . . . . . . . . . . . . . . 222.3 Broja�e oblasti na koje je podeena ravan . . . . . . . . . . 222.4 Problem sa boje�em ravni . . . . . . . . . . . . . . . . . . . . 232.5 Primer sa sumira�em . . . . . . . . . . . . . . . . . . . . . . 242.6 Ojlerova formula . . . . . . . . . . . . . . . . . . . . . . . . . 242.7 Grejovi kodovi . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.8 Nejednakost izme�u aritmetiqke i geometrijske sredine . . 272.9 Invarijanta pete | dokaz ispravnosti algoritma . . . . . 282.10 Najqex�e grexke . . . . . . . . . . . . . . . . . . . . . . . . . 292.11 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3 Analiza algoritama 313.1 Asimptotske oznake . . . . . . . . . . . . . . . . . . . . . . . . 323.2 Rexava�e rekurentnih jednaqina metodom zamene . . . . . . 353.3 Rexava�e rekurentnih relacija metodom stabla rekurzije . 363.4 Probabilistiqka analiza algoritama . . . . . . . . . . . . . 41

4 Konstrukcija algoritama indukcijom 454.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.2 Izraqunava�e vrednosti polinoma . . . . . . . . . . . . . . . 454.3 Maksimalni indukovani podgraf . . . . . . . . . . . . . . . . 474.4 Nala�e�e bijekcije . . . . . . . . . . . . . . . . . . . . . . . . 494.5 Problem pronala�e�a zvezde . . . . . . . . . . . . . . . . . . 514.6 Primer primene razlaga�a: maksimum skupa pravougaonika 53

3

Page 4: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Sadr�aj 4

4.7 Izraqunava�e faktora ravnote�e binarnog stabla . . . . . 554.8 Nala�e�e maksimalnog uzastopnog podniza . . . . . . . . . 564.9 Pojaqava�e induktivne hipoteze . . . . . . . . . . . . . . . . 574.10 Uobiqajene grexke . . . . . . . . . . . . . . . . . . . . . . . . . 584.11 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5 Strategije konstrukcije algoritama 615.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615.2 Dinamiqko programira�e . . . . . . . . . . . . . . . . . . . . 625.3 Strategija razlaga�a . . . . . . . . . . . . . . . . . . . . . . . 775.4 Probabilistiqki algoritmi . . . . . . . . . . . . . . . . . . 79

6 Strukture podataka 836.1 Problem formira�a unija . . . . . . . . . . . . . . . . . . . . 83

7 Grafovski algoritmi 877.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877.2 Ojlerovi grafovi . . . . . . . . . . . . . . . . . . . . . . . . . 897.3 Pretraga u dubinu usmerenih grafova { novi pojmovi i osobine 907.4 Topoloxko sortira�e . . . . . . . . . . . . . . . . . . . . . . 937.5 Jako povezane komponente usmerenog grafa . . . . . . . . . . 957.6 Najkra�i putevi iz zadatog qvora . . . . . . . . . . . . . . . 987.7 Belman-Fordov algoritam . . . . . . . . . . . . . . . . . . . . 1047.8 Minimalno povezuju�e stablo . . . . . . . . . . . . . . . . . . 1077.9 Svi najkra�i putevi . . . . . . . . . . . . . . . . . . . . . . . 1117.10 Tranzitivno zatvore�e . . . . . . . . . . . . . . . . . . . . . . 114

8 Algebarski algoritmi 1178.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178.2 Stepenova�e . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188.3 Euklidov algoritam . . . . . . . . . . . . . . . . . . . . . . . 1198.4 Brza Furijeova transformacija . . . . . . . . . . . . . . . . 122

9 Redukcije 1299.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1299.2 Nala�e�e trouglova u neusmerenom grafu . . . . . . . . . . 130

10 NP-kompletnost 13310.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13310.2 Redukcije polinomijalne vremenske slo�enosti . . . . . . . 13410.3 Nedeterminizam i Kukova teorema . . . . . . . . . . . . . . . 13610.4 Primeri dokaza NP-kompletnosti . . . . . . . . . . . . . . . 13910.5 Tehnike za rad sa NP-kompletnim problemima . . . . . . . . 14910.6 Rezime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

Literatura 157

Page 5: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Glava 1

Pregled tehnika dokaziva�a

Svrha dokaza je da utvrdi taqnost nekog tvr�e�a 1. Dokaz se sastoji odniza tvr�e�a koji se zavrxava zakuqkom. Da bi dokaz bio ispravan(korektan), zakuqak mora da sledi iz premisa (pretpostavki) od kojih sepolazi. Za izvo�e�e novih tvr�e�a od onih koja su ve� izvedena, koriste sepravila izvo�e�a | obrasci za konstrukciju ispravnih dokaza. Pravilaizvo�e�a predstavaju osnovni alat kojim se obezbe�uje istinitost tvr�e�a.

Razmotrimo slede�e zakuqiva�e.

"Ako imax va�e�u lozinku, mo�ex da se prijavix na mre�u."

"Imax va�e�u lozinku."

Dakle:

"Mo�ex da se prijavix na mre�u."

Ako sa 𝑝 oznaqimo tvr�e�e "imax va�e�u lozinku", a sa 𝑞 "mo�ex dase prijavix na mre�u", onda se ovo zakuqiva�e mo�e zapisati u obliku

𝑝 (𝑝→ 𝑞)

𝑞

Iznad horizontalne linije napisane su premise, a ispod zakuqak. Akosu 𝑝 i 𝑞 logiqke promenive, onda je izraz (𝑝∧ (𝑝→ 𝑞))→ 𝑞 tautologija,xto se mo�e neposredno proveriti pomo�u tablice istinitosti:

(𝑝 ∧ (𝑝 → 𝑞)) → 𝑞0 0 0 1 0 1 00 0 0 1 1 1 11 0 1 0 0 1 01 1 1 1 1 1 1

Kao xto je poznato, postoji vixe vrsta matematiqkih tvr�e�a,

∙ teorema (tvr�e�e za koje treba dokazati da je taqno)

∙ aksioma (tvr�e�e koje se prihvata kao taqno bez dokaza)

∙ definicija (tvr�e�e kojim se uvodi neki pojam)

1Osnova za ovaj tekst je k�iga [1].

5

Page 6: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

1.1. Pravila izvo�e�a 6

∙ lema (tvr�e�e koje, kao i teorema, podle�e dokaziva�u, me�utimma�eg je znaqaja i slu�i za dokaziva�e teoreme)

∙ posledica (teorema qije se tvr�e�e relativno jednostavno izvodipolaze�i od teoreme)

∙ hipoteza (tvr�e�e za koje se pretpostava da je taqno, ali �egovdokaz jox nije poznat)

Dokaz teoreme je niz tvr�e�a koji poqi�e pretpostavkama teoreme, zavrxavase tvr�e�em teoreme, pri qemu svako naredno tvr�e�e sledi iz prethodnihna osnovu pravila izvo�e�a, ili je aksioma, definicija, ili prethodnodokazana teorema ili lema.

Metode izvo�e�a dokaza koje se razmatraju u ovom poglavu su znaqajnene samo zato xto se koriste za dokaziva�e matematiqkih teorema, ve�tako�e i za mnoge primene u raqunarstvu. Te primene obuhvataju proveruispravnosti raqunarskih programa, zakuqiva�e u oblasti vextaqke in-teligencije, dokaziva�e da je neka specifikacija sistema konzistentna isliqno.

1.1 Pravila izvo�e�a

Pravila izvo�e�a povezuju delove dokaza tako xto obezbe�uju logiqkoizvo�e�e zakuqaka na osnovu skupa pretpostavki. Pravila izvo�e�a suva�na ne samo za dokaziva�e teorema, nego i za dokaze korektnosti algori-tama, programa, sigurnosti operativnog sistema, konzistentnosti sistemaspecifikacija.

Osnovno pravilo izvo�e�a je modus ponens. Prema tom pravilu, ako sutaqna tvr�e�a 𝑝 i 𝑝→ 𝑞, onda je taqno i tvr�e�e 𝑞. Ovo pravilo se kra�ezapisuje na slede�i naqin:

𝑝 (𝑝→ 𝑞)

𝑞

Ostala va�na pravila izvo�e�a za iskaznu logiku su prikazana uslede�oj tabeli:

Page 7: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7 1. Pregled tehnika dokaziva�a

Ime pravila Pravilo Odgovaraju�a tautologija

1 Modus ponens𝑝 (𝑝→ 𝑞)

𝑞(𝑝 ∧ (𝑝→ 𝑞))→ 𝑞

2 Dodava�e𝑝

𝑝 ∨ 𝑞𝑝→ (𝑝 ∨ 𝑞)

3 Uprox�ava�e𝑝 ∧ 𝑞

𝑝(𝑝 ∧ 𝑞)→ 𝑝

4 Konjunkcija𝑝 𝑞

𝑝 ∧ 𝑞(𝑝 ∧ 𝑞)→ (𝑝 ∧ 𝑞)

5 Modus tolens¬𝑞 (𝑝→ 𝑞)

¬𝑝(¬𝑞 ∧ (𝑝→ 𝑞))→ ¬𝑝

6 Hipotetiqki silogizam(𝑝→ 𝑞) (𝑞 → 𝑟)

𝑝→ 𝑟((𝑝→ 𝑞) ∧ (𝑞 → 𝑟))→ (𝑝→ 𝑟)

7 Disjunktivni silogizam(𝑝 ∨ 𝑞) ¬𝑝

𝑞((𝑝 ∨ 𝑞) ∧ ¬𝑝)→ 𝑞

8 Rezolucija(𝑝 ∨ 𝑞) (¬𝑝 ∨ 𝑟)

𝑞 ∨ 𝑟((𝑝 ∨ 𝑞) ∧ (¬𝑝 ∨ 𝑟))→ (𝑞 ∨ 𝑟)

Ispravan dokaz tvr�e�a (𝑝1∧𝑝2∧· · ·∧𝑝𝑛)→ 𝑞 je izveden ako se poka�eda iz taqnosti svih pretpostavki (premisa) 𝑝1, 𝑝2, . . . 𝑝𝑛, sledi da je taqnotvr�e�e 𝑞.

Ako je zakuqiva�e ispravno, a neka pretpostavka nije taqna, ondadokazivano tvr�e�e ne mora da bude taqno

Primer. U zakuqiva�u:

"Ako je√2 > 3

2 , onda je (√2)2 > ( 32 )

2. Znamo da je√2 > 3

2 . Dakle,

(√2)2 = 2 > ( 32 )

2 = 94"

prime�eno je ispravno pravilo zakuqiva�a (modus ponens), ali jetvr�e�e 2 > 9

4 netaqno. To je zato xto je korix�ena premisa√2 > 3

2 kojanije taqna.

Primer. Pokazati da iz premisa

"ako mi poxaex poruku, zavrxi�u program",

"ako mi ne poxaex poruku, idem ranije na spava�e",

"ako odem ranije na spava�e, probudi�u se odmoran",

sledi zakuqak

"ako ne zavrxim program, probudi�u se odmoran".

Zgodno je da najpre uvedemo oznake 𝑝, 𝑞, 𝑟, 𝑠 redom za reqenice "posla�exmi poruku", "zavrxi�u program", "idem ranije na spava�e", "probudi�use odmoran". Dakle, treba pokazati da iz premisa (1) 𝑝 → 𝑞, (2) ¬𝑝 → 𝑟,(3) 𝑟 → 𝑠, sledi zakuqak ¬𝑞 → 𝑠.

Dokaz:

(1) 𝑝→ 𝑞 premisa (1)(2) ¬𝑞 → ¬𝑝 kontrapozicija linije (1)(3) ¬𝑝→ 𝑟 premisa (2)(4) ¬𝑞 → 𝑟 hipotetiqki silogizam od linije (2) i linije (3)(5) 𝑟 → 𝑠 premisa (3)(6) ¬𝑞 → 𝑠 hipotetiqki silogizam od linije (4) i linije (5)

Page 8: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

1.1. Pravila izvo�e�a 8

1.1.1 Rezolucija

Rezolucija se qesto koristi u programima za automatsko dokaziva�eteorema. Pravilo rezolucije opravdava tautologija ((𝑝 ∨ 𝑞) ∧ (¬𝑝 ∨ 𝑟))→(𝑞∨𝑟). Ovde se (𝑞∨𝑟) zove rezolventa premisa (𝑝∨𝑞) i (¬𝑝∨𝑟). Specijalno,za 𝑞 = 𝑟, dobija se tautologija ((𝑝 ∨ 𝑞) ∧ (¬𝑝 ∨ 𝑞))→ 𝑞.

Primer. Iz premisa "Jasmina ide na fakultet ili je neradni dan","Radni je dan ili Marko putuje ku�i" sledi zakuqak "Jasmina ide nafakulet ili Marko putuje ku�i".

Oznaqimo sa 𝑝 tvr�e�e "Jasmina ide na fakultet", sa 𝑞 tvr�e�e "radnije dan", a sa 𝑟 tvr�e�e "Marko putuje ku�i", onda mo�emo premise dazapixemo kao 𝑝∨¬𝑞 i 𝑞∨𝑟, te iz premisa korix�e�em pravila rezolucijesledi tvr�e�e 𝑝 ∨ 𝑟.

U dokazima u kojima se prime�uje rezolucija premise i tvr�e�a morajuse prikazati u obliku konjunkcije klauza, gde su klauze disjunkcije pro-menivih ili �ihovih negacija.

∙ Zbog 𝑝 ∨ (𝑞 ∧ 𝑟) ≡ (𝑝 ∨ 𝑞) ∧ (𝑝 ∨ 𝑟) premisa 𝑝 ∨ (𝑞 ∧ 𝑟) zame�uje sa dvenove premise 𝑝 ∨ 𝑞 i 𝑝 ∨ 𝑟.

∙ Zbog ¬(𝑝∨ 𝑞) ≡ ¬𝑝∧¬𝑝 premisa ¬(𝑝∨ 𝑞) zame�uje sa dve nove premise¬𝑝 i ¬𝑝.

∙ Zbog 𝑝 → 𝑞 ≡ ¬𝑝 ∨ 𝑞 premisa 𝑝 → 𝑞 zame�uje se (jednom) premisom¬𝑝 ∨ 𝑞.

Ovde veznik ≡ oznaqava ekvivalentnost dva logiqka izraza, odnosno qi-�enicu da su �ihove logiqke vrednosti jednake za bilo koje vrednostipromenivih.

Primer. Pokazati da iz premisa (𝑝 ∧ 𝑞) ∨ 𝑟 i 𝑟 → 𝑠 sledi zakuqak𝑝 ∨ 𝑠.

Dokaz. Premisa (𝑝 ∧ 𝑞) ∨ 𝑟 ≡ (𝑝 ∨ 𝑟) ∧ (𝑞 ∨ 𝑟) ima za posledicu klauzu𝑝 ∨ 𝑟, a premisa 𝑟 → 𝑠 ≡ ¬𝑟 ∨ 𝑠 ima za posledicu klauzu ¬𝑟 ∨ 𝑠. Primenomrezolucije na ove dve klauze, 𝑝 ∨ 𝑟 i ¬𝑟 ∨ 𝑠, dobija se tra�eni zakuqak𝑝 ∨ 𝑠.

Pogrexna zakuqiva�a

Qest naqin na koji se dolazi do pogrexnih zakuqaka je zakuqiva�e naosnovu pogrexnih pravila zakuqiva�a. Na primer, ne mo�e se prime�ivatipravilo zakuqiva�a

𝑝→ 𝑞 𝑞

𝑝

jer ((𝑝→ 𝑞)∧𝑞)→ 𝑝 nije tautologija (za 𝑝 ≡ 0, 𝑞 ≡ 1 ovaj izraz je netaqan).Primer. Iz premisa "ako rexix sve zadatke iz k�ige, nauqi�ex

diskretnu matematiku" i "nauqio si diskretnu matematiku" ne mo�e seizvesti zakuqak "rexio si sve zadatke iz k�ige".

Sliqno, izraz ((𝑝 → 𝑞) ∧ ¬𝑝) → ¬𝑞 nije tautologija, pa se ne mo�eprime�ivati pravilo zakuqiva�a

𝑝→ 𝑞 ¬𝑝¬𝑞

Page 9: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

9 1. Pregled tehnika dokaziva�a

Primer. Iz premisa "ako rexix sve zadatke iz k�ige, nauqi�exdiskretnu matematiku" i "nisi rexio sve zadatke iz k�ige" ne mo�e seizvesti zakuqak "nisi nauqio diskretnu matematiku".

1.1.2 Pravila izvo�e�a u logici prvog reda

Postoje qetiri osnovna pravila izvo�e�a koja se koriste za dokaziva�etvr�e�a u kojima se koriste kvantifikatori i ona su data u slede�ojtabeli:

Pravilo specijalizacija generalizacija

Univerzalna∀𝑥𝑃 (𝑥)

𝑃 (𝑐)

𝑃 (𝑐)

∀𝑥𝑃 (𝑥)

Egzistencijalna∃𝑥𝑃 (𝑥)

𝑃 (𝑐)

𝑃 (𝑐)

∃𝑥𝑃 (𝑥)

Primer. Neka 𝐼(𝑥) oznaqava reqenicu "𝑥 je na modulu I", i neka 𝐴(𝑥)oznaqava reqenicu "𝑥 sluxa ASP". Pokazati da iz premisa ∀𝑥(𝐼(𝑥) →𝐴(𝑥)) i 𝐼(𝑀𝑎𝑟𝑖𝑗𝑎) sledi zakuqak 𝐴(𝑀𝑎𝑟𝑖𝑗𝑎)

Dokaz.

(1) ∀𝑥(𝐼(𝑥)→ 𝐴(𝑥) premisa(2) 𝐼(𝑀𝑎𝑟𝑖𝑗𝑎)→ 𝐴(𝑀𝑎𝑟𝑖𝑗𝑎) univerzalna specijalizacija od linije 1(3) 𝐼(𝑀𝑎𝑟𝑖𝑗𝑎) premisa(4) 𝐴(𝑀𝑎𝑟𝑖𝑗𝑎) modus ponens od linije (2) i linije (3)

Primer. Neka 𝐺(𝑥),𝐾(𝑥), 𝐼(𝑥), oznaqavaju redom reqenice "𝑥 je u ovojgrupi", "𝑥 je proqitao k�igu o algoritmima" i "𝑥 je polo�io ispit izalgoritama". Pokazati da iz premisa ∃𝑥(𝐺(𝑥)∧¬𝐾(𝑥)) i ∀𝑥(𝐺(𝑥)→ 𝐼(𝑥))sledi zakuqak ∃𝑥(𝐼(𝑥) ∧ ¬𝑃 (𝑥)).

Dokaz.

(1) ∃𝑥(𝐶(𝑥) ∧ ¬𝐵(𝑥)) premisa(2) 𝐶(𝑎) ∧ ¬𝐵(𝑎) egzistencijalna specijalizacija od linije (1)(3) 𝐶(𝑎) uprox�ava�em od linije (2)(4) ∀𝑥(𝐶(𝑥)→ 𝑃 (𝑥)) premisa(5) 𝐶(𝑎)→ 𝑃 (𝑎) univerzalna specijalizacija od linije (4)(6) 𝑃 (𝑎) modus ponens od linije (3) i linije (5)(7) ¬𝐵(𝑎) uprox�ava�em od linije (2)(8) 𝑃 (𝑎) ∧ ¬𝐵(𝑎) proxiriva�em od linije (6) i linije (7)(9) ∃𝑥(𝑃 (𝑥) ∧ ¬𝐵(𝑥)) egzistencijalnom generalizacijom od linije (8)

1.2 Dokazi

Dokaziva�e teorema mo�e biti texko. U ovom poglavu da�emo primereizvo�e�a dokaza, kao i primere pogrexnog zakuqiva�a koji vode pogrexnimdokazima.

1.2.1 Vrste dokaza

Dokazi se najqex�e odnose na teoreme oblika 𝑝 → 𝑞. Najjednostavnijisu direktni dokazi. Polazi se od pretpostavke da je 𝑝 taqno i pokazuje se

Page 10: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

1.2. Dokazi 10

da je tada 𝑞 taqno.

Direktni dokaz

Tvr�e�e 𝑝→ 𝑞 se dokazuje tako xto se doka�e da ako je 𝑝 taqno, onda je 𝑞taqno.

Naredni primer je primer direktnog dokaza.Primer. Dokazati da ako je broj 𝑛 neparan, onda je i 𝑛2 neparan broj.Dokaz. Po definiciji broj 𝑛 paran ako je 𝑛 = 2𝑘, gde je 𝑘 celi broj;

broj 𝑛 je neparan ako je 𝑛 = 2𝑘+1, gde je 𝑘 celi broj. Poxto je 𝑛 neparan,mo�e se zapisati u obliku 𝑛 = 2𝑘+1. Tada je 𝑛2 = (2𝑘+1)2 = 4𝑘2+4𝑘+1 =2(2𝑘2 + 2𝑘) + 1 tako�e neparan broj.

Indirektni dokaz

Umesto implikacije 𝑝 → 𝑞 dokazuje se �ena kontrapozicija, odnosno im-plikacija ¬𝑞 → ¬𝑝 (polaze�i od ¬).

Primer. Dokazati da ako je 3𝑛2 + 2 neparan broj, onda je i 𝑛 neparanbroj.

Dokaz. Pretpostavimo suprotno, da je 𝑛 paran broj, odnosno da je 𝑛 =2𝑘, gde je 𝑘 neki celi broj. Tada je 3𝑛2 + 2 = 3(2𝑘)2 + 2 = 2(6𝑘2 + 1) paranbroj, qime je dokazana implikacija ¬𝑞 → ¬𝑝, a time i implikacija 𝑝→ 𝑞.

Prazan dokaz

Ako je 𝑝 netaqno, implikacija 𝑝→ 𝑞 je uvek taqna.Primer. Neka je 𝑃 (𝑛) oznaka za tvr�e�e "Ako je 𝑛 > 1, onda je 𝑛2 > 𝑛".

Dokazati 𝑃 (0).

Trivijalan dokaz

Ako je 𝑞 taqno, implikacija 𝑝→ 𝑞 je uvek taqna.Primer. Neka je 𝑃 (𝑛) oznaka za tvr�e�e "Ako je 𝑎, 𝑏 ∈ 𝑁 , 𝑎 ≥ 𝑏, onda

je 𝑎𝑛 ≥ 𝑏𝑛". Dokazati 𝑃 (0).

Dokaz izvo�e�em kontradikcije

Tvr�e�e 𝑝 dokazuje se tako xto se pretpostavi suprotno, tj. da je taqno¬𝑝, pa se iz toga izvede kontradikcija.

Primer. Dokazati da je√2 iracionalan broj.

Dokaz. Pretpostavimo suprotno, da je√2 racionalan broj, odnosno da

se√2 mo�e napisati u obliku nesvodivog razlomka

√2 = 𝑎

𝑏 . Kvadrira�emse dobija 𝑎2 = 2𝑏2, pa se zakuquje da je 𝑎2 paran broj. U jednom odprethodnih primera pokazano je da iz ove qi�enice sledi da je i 𝑎 paranbroj, odnosno da se mo�e napisati u obliku 𝑎 = 2𝑎1. Kvadrira�em sedobija (2𝑎1)

2 = 2𝑏2, odnosno 2𝑎21 = 𝑏2, iz qega sledi da je 𝑏2, a time i 𝑏,paran broj. Doxli smo do zakuqka da su oba broja 𝑎 i 𝑏 parna, odnosnoda se razlomak 𝑎

𝑏 mo�e skratiti, suprotno pretpostavci da je nesvodiv.

Izvedena kontradikcija dokazuje da pretpostavka da je√2 racionalan

broj nije taqna, odnosno da je√2 iracionalan broj.

Page 11: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

11 1. Pregled tehnika dokaziva�a

Primer. Dokazati da najma�e 4 od 22 proizvonih dana u godinimoraju da padnu u isti dan u nedei.

Dokaz. Pretpostavimo suprotno, da najvixe 3 od 22 dana u godinimogu da padnu u isti dan u nedei. Obzirom da postoji sedam razliqitihdana u nedei, ovo nam daje da bi mogli da razmatramo najvixe 21 dan, ane 22 dana koliko je potrebno, te dobijamo kontradikciju.

Dokaz razmatra�em sluqajeva

Izraz

((𝑝1 ∨ 𝑝2 ∨ · · · ∨ 𝑝𝑛)→ 𝑞)↔ ((𝑝1 → 𝑞) ∧ (𝑝2 → 𝑞) ∧ · · · ∧ (𝑝𝑛 → 𝑞))

je tautologija. Zbog toga se tvr�e�e oblika (𝑝1 ∨ 𝑝2 ∨ · · · ∨ 𝑝𝑛) → 𝑞 mo�edokazati tako xto se doka�e da va�i 𝑝𝑖 → 𝑞 za svako 𝑖 = 1, 2, . . . , 𝑛.

Primer. Dokazati da za realne brojeve 𝑥, 𝑦, va�i jednakost |𝑥𝑦| =|𝑥||𝑦|.

Dokaz . Svaki od brojeva 𝑥, 𝑦 mo�e da bude negativan, ili ve�i ilijednak od nule, pa su mogu�a qetiri sluqaja

1. 𝑥 ≥ 0 ∧ 𝑦 ≥ 0: |𝑥𝑦| = 𝑥𝑦, |𝑥||𝑦| = 𝑥𝑦;

2. 𝑥 < 0 ∧ 𝑦 ≥ 0: |𝑥𝑦| = −𝑥𝑦, |𝑥||𝑦| = (−𝑥)𝑦 = −𝑥𝑦;

3. 𝑥 ≥ 0 ∧ 𝑦 < 0: sliqno kao u prethodnom sluqaju |𝑥𝑦| = −𝑥𝑦, |𝑥||𝑦| =𝑥(−𝑦) = −𝑥𝑦;

4. 𝑥 < 0 ∧ 𝑦 < 0: |𝑥𝑦| = 𝑥𝑦, |𝑥||𝑦| = (−𝑥)(−𝑦) = 𝑥𝑦.

Poxto je u sva qetiri sluqaja implikacija taqna, tvr�e�e je dokazano.

Dokazi ekvivalentnosti

Izraz (𝑝 ↔ 𝑞) ↔ ((𝑝→ 𝑞) ∧ (𝑞 → 𝑝)) je tautologija. Zbog toga se tvr�e�eoblika 𝑝 ↔ 𝑞 (𝑝 je taqno ako i samo ako je taqno 𝑞) dokazuje tako xto sedoka�u obe implikacije 𝑝→ 𝑞 i 𝑞 → 𝑝.

Primer. Dokazati da je broj 𝑛 neparan ako i samo ako je broj 𝑛2

neparan.Taqnost ovog tvr�e�a posledica je dve implikacije koje su dokazane u

prethodnim primerima.Opxtije, u sluqaju kada treba dokazati ekvivalenciju

𝑝1 ↔ 𝑝2 ↔ · · · ↔ 𝑝𝑛

(odnosno da je za svaki par indeksa 𝑖, 𝑗, 1 ≤ 𝑖 < 𝑗 ≤ 𝑛, taqna ekvivalencija𝑝𝑖 ↔ 𝑝𝑗) zbog taqnosti tautologije

(𝑝1 ↔ 𝑝2 ↔ · · · ↔ 𝑝𝑛)↔ ((𝑝1 → 𝑝2) ∧ (𝑝2 → 𝑝3) ∧ · · · ∧ (𝑝𝑛 → 𝑝1))

dovono je dokazati 𝑛 (umesto(𝑛2

)) implikacija

(𝑝1 → 𝑝2) ∧ (𝑝2 → 𝑝3) ∧ · · · ∧ (𝑝𝑛 → 𝑝1).

Primer. Dokazati da su slede�a tri tvr�e�a ekvivalentna:

Page 12: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

1.2. Dokazi 12

1. Broj 𝑛 je paran.

2. Broj 𝑛− 1 je neparan.

3. Broj 𝑛2 je paran.

Dokaz. Dokaz se mo�e izvesti tako xto se doka�u tri implikacije:

1. Ako je 𝑛 paran (tj. 𝑛 = 2𝑘), onda je 𝑛−1 (= 2(𝑘−1)+1) neparan broj.

2. Ako je 𝑛−1 neparan broj (tj. 𝑛−1 = 2𝑘+1, odnosno 𝑛 = 2𝑘+2), ondaje 𝑛2 (= 2 · 2(𝑘 + 1)2) paran broj.

3. Ako je 𝑛2 paran broj, onda je 𝑛 paran broj (ovo tvr�e�e dokazano jeu jednom od prethodnih primera).

1.2.2 Teoreme sa kvantifikatorima

U ovom poglavu bi�e razmotrene teoreme u obliku tvr�e�a sa egzi-stencijalnim kvantifikatorom, odnosno sa univerzalnim kvantifikato-rom.

Tvr�e�a sa egzistencijalnim kvantifikatorom

Tvr�e�e ∃𝑥𝑃 (𝑥) mo�e se dokazati tako xto se prona�e konkretno 𝑎 za kojeje 𝑃 (𝑎) taqno; to je konstruktivni dokaz. Ako se pak taqnost tog tvr�e�adoka�e ne pronaxavxi pri tome objekat 𝑎 za koji je 𝑃 (𝑎) taqno, onda setakav dokaz zove nekonstruktivni dokaz.

Primer. Dokazati da postoji broj 𝑛 ∈ 𝑁 koji se mo�e na dva naqinanapisati u obliku zbira dva kuba prirodnih brojeva.

Dokaz. Neposredno se proverava da je 1729 = 103+93 = 123+13, tj. broj1729 se mo�e na dva naqina napisati u obliku zbira dva kuba prirodnihbrojeva. Ovo je primer konstruktivnog dokaza.

Primer. Dokazati da postoje iracionalni brojevi 𝑥, 𝑦 takvi da je𝑥𝑦 racionalan broj.

Dokaz. U jednom od prethodnih primera dokazano je da je√2 iraciona-

lan broj. Posmatrajmo broj 𝑎 =√2√2. Broj 𝑎 mo�e da bude ili racionalan

ili iracionalan.

∙ Ako je broj 𝑎 racionalan, onda je za iracionalne brojeve 𝑥 = 𝑦 =√2

stepen 𝑥𝑦 racionalan broj.

∙ Ako je broj 𝑎 iracionalan, onda je za iracionalne brojeve 𝑥 = 𝑎 i

𝑦 =√2 stepen 𝑥𝑦 = (

√2√2)√2 =√2√2·√2=√22= 2 racionalan broj.

Time je tra�eno tvr�e�e dokazano, iako nije prona�en ni jedan primeriracionalnih brojeva 𝑥, 𝑦 za koje je definitivno utvr�eno da je 𝑥𝑦 raci-onalan broj.

Dokazi jedinstvenostiPonekad je potrebno dokazati ne samo ∃𝑥𝑃 (𝑥), nego i da postoji samo

jedan objekat 𝑥 za koji je 𝑃 (𝑥) taqno, odnosno ∃𝑥𝑃 (𝑥)∧∀𝑦((𝑦 = 𝑥)→ ¬𝑃 (𝑦)).Primer. Svaki celi broj ima jedinstveni aditivni inverz.

Page 13: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

13 1. Pregled tehnika dokaziva�a

Dokaz. Broj 𝑥 ima bar jedan aditivni inverz −𝑥, jer je 𝑥+(−𝑥) = 0. Dabismo dokazali da je aditivni inverz jedinstven, pretpostavimo suprotno,da postoji drugi aditivni inverz 𝑦 broja 𝑥, tj. da va�i 𝑥+ 𝑦 = 0. Ako jeto taqno, onda je 𝑦 = 𝑦+0 = 𝑦+(𝑥+(−𝑥)) = (𝑦+𝑥)+(−𝑥) = 0+(−𝑥) = −𝑥,tj. suprotno pretpostavci, 𝑦 = −𝑥, i aditivni inverz 𝑥 je jedinstven.

Tvr�e�a sa univerzalnim kvatifikatorom

Da bi se dokazalo da tvr�e�e ∀𝑥𝑃 (𝑥) nije taqno, dovono je prona�i jedanobjekat 𝑎 za koji 𝑃 (𝑎) nije taqno. Ka�e se da je 𝑃 (𝑎) kontraprimer zatvr�e�e ∀𝑥𝑃 (𝑥).

Primer. Svaki prirodan broj 𝑛 jednak je zbiru tri kvadrata nene-gativnih celih brojeva.

Dokaz. Za 𝑛 = 1, 2, 3, 4, 5, 6 tvr�e�e da se 𝑛 mo�e napisati kao zbirtri kvadrata nenegativnih celih brojeva je taqno:

1 = 02 + 02 + 12,

2 = 02 + 12 + 12,

3 = 12 + 12 + 12,

4 = 02 + 02 + 22,

5 = 02 + 12 + 22,

6 = 12 + 12 + 22.

Me�utim, ispostava se da se 𝑛 = 7 ne mo�e napisati kao zbir trikvadrata nenegativnih celih brojeva. Zaista, pretpostavimo da je 7 =𝑥2 + 𝑦2 + 𝑧2, 𝑥 ≤ 𝑦 ≤ 𝑧. Najve�a vrednost koju mogu da uzmu brojevi 𝑥, 𝑦, 𝑧je 2, jer je 32 = 9. Najve�i od ova tri broja 𝑧 mora biti jednak 2, jer bi uprotivnom bilo 𝑥2+𝑦2+𝑧2 ≤ 12+12+12 = 3. Posle zamene 𝑧 = 2 jednaqinapostaje 3 = 𝑥2 + 𝑦2. Me�utim, ova jednaqina nema celobrojno rexe�e:

∙ ako je 𝑦 ≤ 1, onda je 𝑥2 + 𝑦2 ≤ 12 + 12 = 2 < 3;

∙ ako je 𝑦 ≥ 2, onda je 𝑥2 + 𝑦2 ≥ 02 + 22 = 4 > 3.

Time je dokazano da razmatrano tvr�e�e sa univerzalnim kvantifikatoromnije taqno.

1.2.3 Pogrexni dokazi

Ponekad imamo situaciju da postoji niz koraka za koje se tvrdi daje dokaz datog tvr�e�a; pritom se za to tvr�e�e ne zna da li je taqno,ili jox gore, za to tvr�e�e se zna da nije taqno. U tom sluqaju dokaz jesigurno pogrexan, odnosno bar jedan korak u dokazu je pogrexan (taqnostodgovaraju�eg tvr�e�a u stvari nije dokazana).

Primer. Razmotrimo slede�i dokaz oqigledno pogrexnog tvr�e�a1 = 2.

Dokaz.

Page 14: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

1.3. Strategije dokaziva�a 14

( 1) Neka su 𝑎 = 𝑏 ∈ 𝑁 dva broja( 2) 𝑎2 = 𝑎𝑏 dobija se od (1) mno�e�em sa 𝑎( 3) 𝑎2 − 𝑏2 = 𝑎𝑏− 𝑏2 oduzima�em 𝑏2 od obe strane u (2)( 4) (𝑎− 𝑏)(𝑎+ 𝑏) = 𝑏(𝑎− 𝑏) transformisa�em leve i desne strane (3)( 5) 𝑎+ 𝑏 = 𝑏 skra�iva�em jednakosti (4)( 6) 2𝑏 = 𝑏 zamenom 𝑎 sa 𝑏 u (5)( 7) 2 = 1 skra�iva�em jednakosti (6)

Dokazano tvr�e�e je oqigledno pogrexno; koji korak u dokazu je pogrexan?To je korak (5): u jednakosti (4) ura�eno je (pogrexno) skra�iva�e brojem𝑎− 𝑏 = 0.

Primer. Razmotrimo slede�i "dokaz" oqigledno pogrexnog tvr�e�a.Ako je 𝑛2 > 0, onda je 𝑛 > 0: iz "𝑛 > 0 → 𝑛2 > 0" i 𝑛2 > 0 sledi 𝑛 > 0.Dokaz je pogrexan, jer je prime�eno pogrexno pravilo zakuqiva�a.

1.3 Strategije dokaziva�a

Posle pregleda tipova dokaza, razmotri�emo primere strategija dokazi-va�a, odnosno metoda i postupaka dokaziva�a, korak po korak. Razmatrajuse mogu�i recepti za konstrukciju dokaza: polaze�i unazad od tvr�e�a kojetreba dokazati, preprava�em poznatog dokaza sliqnog tvr�e�a, odnosnorazmatra�em sluqajeva.

Rezultat rada matematiqara su najpre matematiqke formulacije hi-poteza, do kojih oni dolaze uopxtava�em pojedinaqnih primera. Zatimoni pokuxavaju da doka�u formulisane hipoteze, ili da ih opovrgnu,pronala�e�em kontraprimera. Vide�emo primere koji ilustruju procesformulisa�a hipoteza, �ihovog dokaziva�a, odnosno opovrgava�a, kao iprimere poznatih hipoteza koje su i danas samo hipoteze. Na kraju �e bitiizlo�en dokaz va�nog tvr�e�a: da ne postoji algoritam (procedura) kojiza dati program i dati ulaz utvr�uje da li se dati program na datom ulazuikad zavrxava.

Konstrukcija dokaza skoro nikad nije jednostavna. Poqi�e se zamenomreqi �ihovim definicijama, analizira�em znaqe�a pretpostavki i tvr-�e�a koje treba dokazati. Zatim se mo�e pokuxati se direktnim dokazom;ako to ne bude uspexno, mo�e se pokuxati sa indirektnim dokazom ilisvo�e�em na kontradikciju.

1.3.1 Direktno zakuqiva�e, zakuqiva�e unazad

Direktno zakuqiva�e biva uspexno samo kad se dokazuju najjednostav-nija tvr�e�a, pa se najqex�e prime�uje zakuqiva�e unazad. Ako trebadokazati tvr�e�e 𝑞, onda se pokuxava sa pronala�e�em nekog tvr�e�a 𝑝,koje je lakxe dokazati nego 𝑞, ali takvog da je taqna implikacija 𝑝 → 𝑞.Tra�e�e tvr�e�a 𝑟 takvog da je taqna implikacija 𝑞 → 𝑟 je beskorisno,jer 𝑞 ne sledi iz 𝑞 → 𝑟 i 𝑟.

U slede�em primeru dokazuje se da je aritmetiqka sredina 𝑎+𝑏2 dva

nenegativna broja 𝑎 i 𝑏 uvek ve�a ili jednaka od �ihove geometrijskesredine

√𝑎𝑏.

Primer. Dokazati da za proizvona dva nenegativna broja 𝑎 i 𝑏 va�i

Page 15: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

15 1. Pregled tehnika dokaziva�a

nejednakost𝑎+ 𝑏

2≥√𝑎𝑏.

Dokaz. Prirodno je ovu nejednakost kvadrirati, da se izbegne pojavakorena. Poxto su obe strane nejednakosti pozitivne, iz nove nejednakostisledi stara (u stvari, ove dve nejednakosti su ekvivalentne, prva od �ihva�i ako i samo ako va�i druga):(

𝑎+ 𝑏

2

)2

≥ 𝑎𝑏.

Sre�iva�em ove nejednakosti dobija se redom (𝑎+ 𝑏)2 ≥ 4𝑎𝑏, odnosno 𝑎2 +2𝑎𝑏 + 𝑏2 ≥ 4𝑎𝑏, odnosno 𝑎2 − 2𝑎𝑏 + 𝑏2 ≥ 0, odnosno (𝑎 − 𝑏)2 ≥ 0. Posled�anejednakost je oqigledno uvek taqna. Poxto iz �e slede sve prethodnenejednakosti, time je u stvari dokazana polazna nejednakost.

Primer. Na stolu je gomila od 15 kamenqi�a. Dva igraqa igraju igruu kojoj naizmeniqno vuku poteze, pri qemu u jednom potezu mogu da skinu sagomile jedan, dva ili tri kamenqi�a. Pobe�uje igraq koji skine sa gomileposled�i kamenqi�. Dokazati da prvi igraq mo�e da igra tako da uvekpobedi, bez obzira na poteze drugog igraqa.

Dokaz.Igra se mo�e predstaviti na drugi naqin. Na liniji su ispisanibrojevi 0, 1, . . . , 15, i na broju 15 nalazi se �eton. Igraqi naizmeniqnopomeraju �eton ka ma�im brojevima za jedno, dva ili tri mesta. Pobe�ujeonaj ko postavi �eton na broj 0.

0− 1− 2− 3− 4− 5− 6− 7− 8− 9− 10− 11− 12− 13− 14− 15

Igraq koji je na potezu mo�e da igra tri razliqita poteza, pa ako se kreneod pozicije 15, broj varijanti je ogroman, i ne vidi se kako bi trebalo daigra prvi igraq da bi sigurno pobedio. Zato je boe krenuti od kraja, odzavrxne pozicije, kada je �eton na broju 0. Igraq koji stavi �eton na 0,pobedio je. Prema tome, pozicija 0 je za igraqa koji je u tom trenutku napotezu je izgubena:

0 − 1− 2− 3− 4− 5− 6− 7− 8− 9− 10− 11− 12− 13− 14− 15

Poxto se iz pozicija 1, 2 i 3 mo�e jednim potezom do�i u poziciju 0(koja je za protivnika izgubena), te tri pozicije su dobijene za igraqana potezu:

0 −�� ��1 − �� ��2 − �� ��3 − 4− 5− 6− 7− 8− 9− 10− 11− 12− 13− 14− 15

Igraq koji je na potezu u poziciji 4 jednim potezom mo�e da do�e samo ujednu od pozicija koje su za protivnika dobijene, pa je pozicija 4 izgubena:

0 −�� ��1 − �� ��2 − �� ��3 − 4 − 5− 6− 7− 8− 9− 10− 11− 12− 13− 14− 15

Produ�uju�i dae unazad, zakuquje se da su pozicije 5, 6, 7 dobijene, azatim da je pozicija 8 izgubena:

0 −�� ��1 − �� ��2 − �� ��3 − 4 −

�� ��5 − �� ��6 − �� ��7 − 8 − 9− 10− 11− 12− 13− 14− 15

Page 16: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

1.3. Strategije dokaziva�a 16

Na kraju dobijamo za sve pozicije podatak da li su dobijene ili izgubene:

0 −�� ��1 −�� ��2 −�� ��3 − 4 −

�� ��5 −�� ��6 −�� ��7 − 8 −�� ��9 −�� ��10 −�� ��11 − 12 −

�� ��13 −�� ��14 −�� ��15Dakle, igraq koji je prvi na potezu, skida tri kamenqi�a da bi doxaou poziciju 12, izgubenu za protivnika. Xta god odigrao protivnik, ondopu�uje broj skinutih kamenqi�a do 4 i prebacuje protivnika u novuizgubenu poziciju 8. Posle toga protivnik biva doveden u poziciju 4,posle qega u narednom potezu prvi igraq mo�e da skine sa gomile svepreostale kamenqi�e i tako pobedi.

1.3.2 Olakxava�e dokaza svo�e�em na sluqajeve

Kada se ne vidi kako izvesti dokaz, dopunska informacija u vezi sarazliqitim sluqajevima mo�e da olakxa dokaz. Na primer, ako se dokazujetvr�e�e o celim brojevima, mogu se razdvojiti sluqajevi sa parnim, odnosnoneparnim brojevima, ili sa negativnim, odnosno nenegativnim brojevima.Pri tome je va�no ne preskoqiti ni jedan od mogu�ih sluqajeva.

Primer. Ako 2 - 𝑛, 3 - 𝑛, onda 24 | 𝑛2 − 1 (𝑛2 − 1 je deivo sa 24).Dokaz. Prirodno je iskoristiti razlaga�e 𝑛2 − 1 = (𝑛 − 1)(𝑛 + 1),

ali se ne vidi kakve to ima veze sa deivox�u sa 24. S obzirom na uslove2 - 𝑛, 3 - 𝑛, koji su mogu�i ostaci pri dee�u 𝑛 sa 6? Svaki broj 𝑛 mo�ese predstaviti u obliku 6𝑘 + 𝑗, 𝑗 = 0, 1, 2, 3, 4, 5. Me�utim, brojevi 6𝑘 + 𝑗,𝑗 = 0, 2, 4 su deivi sa 2, a brojevi 6𝑘 + 𝑗, 𝑗 = 0, 3 deivi su sa 3. Prematome, ostaje da se razmotre samo dva sluqaja, da je 𝑛 oblika 6𝑘 + 𝑗, gde je𝑗 = 1 ili 𝑗 = 5.

∙ U prvom sluqaju je 𝑛2 − 1 = (6𝑘 + 1)2 − 1 = 36𝑘2 + 12𝑘 = 12𝑘(3𝑘 + 1);ovaj broj je oqigledno deiv sa 12. Pored toga, ako je 𝑘 parno, brojje deiv sa 24; ako je 𝑘 neparno, onda je 3𝑘 + 1 parno, pa je i u tomsluqaju 𝑛2 − 1 deiv sa 24.

∙ U drugom sluqaju je 𝑛2 − 1 = (6𝑘 + 5)2 − 1 = 36𝑘2 + 60𝑘 + 24 =12(3𝑘2 + 5𝑘 + 2); ovaj broj je oqigledno deiv sa 12. Pored toga, akoje 𝑘 parno, broj je deiv sa 24; ako je 𝑘 neparno, onda je 3𝑘2 + 5𝑘 + 2parno, pa je i u tom sluqaju 𝑛2 − 1 deiv sa 24.

Poxto su razmotrena oba mogu�a sluqaja, dokazano je da je 𝑛2 − 1 uvekdeivo sa 24.

Uobiqajena grexka je da se pogrexan zakuqak izvede na osnovu primera(na primer, pogrexan zakuqak da su svi neparni brojevi prosti). Kolikogod dobrih primera pronaxli, to nikad ne predstava dokaz. Sliqno,bez obzira koliko testova program prolazi, to ne predstava dokaz da jeprogram korektan.

Primer. Dokazati da jednaqina 𝑥2+3𝑦2 = 8 nema celobrojna rexe�a.Dokaz. Ako je |𝑥| ≥ 3, onda je leva strana bar 9 > 8; sliqno, ako je

|𝑦| ≥ 2, onda je leva strana bar 12 > 8. Prema tome, mogu�e vrednosti za|𝑥| su 0, 1, 2, a mogu�e vrednosti za |𝑦| su 0, 1. Za |𝑦| = 0 jednaqina postaje𝑥2 = 8 i nema celobrojnih rexe�a; za |𝑦| = 1 jednaqina postaje 𝑥2 = 5 itako�e nema celobrojnih rexe�a. Time je razmatra�em oba mogu�a sluqajadokazano da ova jednaqina nema celobrojna rexe�a.

Page 17: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

17 1. Pregled tehnika dokaziva�a

1.3.3 Prilago�ava�e poznatog dokaza sliqnog tvr�e�a

Korisno je qitati i razumeti dokaze tvr�e�a, jer to omogu�uje izvo�e�enovih dokaza tvr�e�a koja su sliqna prethodnim.

Primer. Dokazati da prostih brojeva oblika 4𝑘 + 3 (odnosno 4𝑘 − 1)ima beskonaqno mnogo.

Dokaz. Sliqno tvr�e�e je da prostih brojeva ima beskonaqno mnogo,i dokaz tog tvr�e�a je poznat. Dokaz poqi�e tako xto se pretpostavi daje broj prostih brojeva konaqan i jednak 𝑛 ∈ 𝑁 , tj. svi mogu�i prostibrojevi su 𝑝1, 𝑝2,. . . , 𝑝𝑛, onda broj 𝑃 = 𝑝1𝑝2 . . . 𝑝𝑛 +1 nije deiv ni jednimod prostih brojeva 𝑝𝑖, 𝑖 = 1, 2, . . . , 𝑛. Prema tome, broj 𝑃 je ili prost (anije jednak nekom od brojeva 𝑝1, 𝑝2,. . . , 𝑝𝑛), ili je deiv nekim prostimbrojem koji nije me�u prostim brojevima 𝑝1, 𝑝2,. . . , 𝑝𝑛. To je u oba sluqaja ukontradikciji sa pretpostavkom da sem 𝑝1, 𝑝2,. . . , 𝑝𝑛 nema drugih prostihbrojeva.

Ideja je prepraviti ovaj dokaz tako da se doka�e da prostih brojevaoblika 4𝑘 − 1 ima beskonaqno mnogo. Pretpostavimo da je broj prostihbrojeva oblika 4𝑘− 1 konaqan i jednak 𝑛 ∈ 𝑁 , tj. da su svi mogu�i prostibrojevi tog oblika 𝑞1, 𝑞2,. . . , 𝑞𝑛. Posmatrajmo broj 𝑄 = 4𝑞1𝑞2 . . . 𝑞𝑛−1. Broj𝑄 je oblika 4𝑘− 1, pa mora da ima bar jedan prost qinilac oblika 4𝑘− 1(u protivnom, ako bi imao samo proste qinioce oblika 4𝑘 + 1, onda bi isam bio oblika 4𝑘 + 1); kako 𝑄 nije deiv ni jednim od brojeva 𝑞1, 𝑞2,. . . ,𝑞𝑛, zakuqujemo da, suprotno pretpostavci, 𝑄 mora biti deiv bar joxjednim prostim brojem oblika 4𝑘− 1. Ova kontradikcija dokazuje �eenotvr�e�e.

1.4 Hipoteze, dokazi, kontraprimeri

1.4.1 Hipoteze i dokazi

Kako se pronalaze novi rezultati u matematici? U svakom sluqaju neonako kako je to ispriqano u ubenicima. Najpre se na osnovu specijalnihsluqajeva zapa�aju neke zakonitosti, na osnovu qega se formulixu hipoteze.Do hipoteze se ponekad dolazi promenom poznatog tvr�e�a, ili na osnovuintuicije. Formulisanu hipotezu zatim treba dokazati ili opovrgnuti.Ako je verovatnije da je hipoteza taqna, pokuxava se sa izvo�e�em dokaza.Ako se ne uspeva sa izvo�e�em dokaza, pokuxava se sa pronala�e�em kon-traprimera; ako to ne uspe, ponovo se pokuxava sa dokazom. Mnoge hipotezesu brzo rexene, ali su zato neke hipoteze ostale otvorene stotinama godina.Slede�i primer je ilustracija procesa formulisa�a i dokaziva�a hipoteze.

Primer. Postava se pita�e kada su brojevi 𝑎𝑛 − 1 prosti?Analiza primera: Posmatraju�i primere 23 − 1 = 7, 25 − 1 = 31,

26−1 = 63 = 7·9, 29−1 = 511 = 7·73, 34−1 = 80 = 5·16, 45−1 = 1023 = 3·341,mo�e se zakuqiti da je 𝑎𝑛 − 1 slo�en broj ako je 𝑎 > 2 ili ako je 𝑎 = 2i 𝑛 je slo�en broj.

Dokaz. Na osnovu razlaga�a 𝑎𝑛 − 1 = (𝑎− 1)(𝑎𝑛−1 + 𝑎𝑛−2 + · · ·+ 𝑎+1)zakuquje se da je 𝑎𝑛−1 slo�en broj ako je 𝑎 > 2 (jer je tada 𝑎𝑛−1 deivosa 𝑎− 1 ≥ 2). Na sliqan naqin je i broj 2𝑎𝑏 − 1 = (2𝑎)𝑏 − 1 slo�en, jer za𝑎 > 1 va�i 2𝑎 > 2.

Zakuquje se da broj 2𝑛 − 1 mo�e biti prost jedino ako je eksponent 𝑛prost broj; prosti brojevi tog oblika su tzv. Mersenovi prosti brojevi.

Page 18: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

1.4. Hipoteze, dokazi, kontraprimeri 18

Primer. Postoje dugaqki nizovi uzastopnih slo�enih brojeva, naprimer 24, 25, 26, 27, 28; 90, 91, 92, 93, 94, 95, 96. Postava se pita�e: da lipostoje proizvono dugaqki nizovi uzastopnih slo�enih brojeva? Ispos-tava se da je odgovor na ovo pita�e - da.

Dokaz. Posmatrajmo niz od 𝑛−1 uzastopnih brojeva 𝑛!+2, 𝑛!+3, 𝑛!+4,. . . , 𝑛! +𝑛. Prvi od �ih je uvek deiv sa 2; drugi od �ih je uvek deiv sa3; tre�i je uvek deiv sa 4 . . . ; posled�i je uvek deiv sa 𝑛. Prema tome,svi brojevi u nizu su slo�eni, a �ihov broj (𝑛−1) mo�e biti proizvonoveliki.

1.4.2 Hipoteze i kontraprimeri

Za neke od hipoteza ispostavilo se da su netaqne, poxto su za �ihprona�eni kontraprimeri.

Primer. Jedan od izazova je pronala�e�e takvog izraza 𝑓(𝑛) qijevrednosti za svaki prirodni broj 𝑛 su prosti brojevi. Zanimiv primerje funkcija 𝑓(𝑛) = 𝑛2 − 𝑛 + 41, qije su vrednosti prosti brojevi za 𝑛 =1, 2, . . . , 40; me�utim, oqigledno je da 𝑓(41) nije prost broj, jer je deiv sa41.

Primer. Ponekad pronala�e�e kontraprimera nije jednostavno. Svo-jevremeno je Ojler postavio hipotezu da za 𝑛 ≥ 3 va�i da zbir 𝑛− 1 𝑛-tihstepena ne mo�e biti jednak 𝑛-tom stepenu prirodnog broja. Me�utim,1966. godine Lander i Parkin su pronaxli kontraprimer za 𝑛 = 5:

1445 = 275 + 845 + 1105 + 1335.

Kontraprimer za 𝑛 = 4 pronaxao je Elkiz 1988. godine

958004 + 2175194 + 4145604 = 4224814.

Za 𝑛 ≥ 6 ne zna se da li je hipoteza taqna.

1.4.3 Primeri nerexenih hipoteza

Neke od otvorenih hipoteza odigrale su znaqajnu ulogu u razvoju ma-tematike.

Posled�a Fermaova teorema Za 𝑛 > 2 i pozitivne cele brojeve𝑥, 𝑦 i 𝑧, jednaqina 𝑥𝑛 + 𝑦𝑛 = 𝑧𝑛 nema celobrojna rexe�a. Za 𝑛 = 2 ovajednaqina ima rexe�a | Pitagorine trojke, na primer 32 + 42 = 52.Za 𝑛 = 3 tvr�e�e je dokazao Ojler, a za 𝑛 = 4 sam Ferma. Bilo je vixepogrexnih dokaza ovog tvr�e�a. Pokuxaji da se tvr�e�e doka�e dovelisu do razvoja algebarske teorije brojeva. Endrju Vajls je konaqno dokazaoovo tvr�e�e (objaveno 1995. godine); pri tome je morala da bude razvijenateorija eliptiqkih krivih. Za dokaz ovog tvr�e�a dobio je 2016. godineAbelovu nagradu.

Navodimo jox nekoliko primera jox uvek otvorenih hipoteza.

Goldbahova hipoteza: Svaki parni broj 𝑛 > 2 mo�e se izraziti kaozbir dva prosta broja. Za prvih nekoliko parnih brojeva tvr�e�e je taqno:4 = 2+2, 6 = 3+3, 8 = 3+5, 10 = 5+5, 12 = 5+7, . . . . Uz pomo� raqunaratvr�e�e je provereno za 𝑛 ≤ 4 · 1014. Ramare je 1995. godine dokazao da je

Page 19: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

19 1. Pregled tehnika dokaziva�a

svaki dovono veliki prirodni broj jednak zbiru najvixe xest prostihbrojeva.

Mersenovi prosti brojevi: Kao xto smo videli, 2𝑛 − 1 mo�e dabude prost broj samo ako je eksponent 𝑛 prost broj. Mersen je u 17. vekupostavio hipotezu da prostih brojeva oblika 2𝑝 − 1, gde je 𝑝 prost broj,ima beskonaqno mnogo. Za 𝑝 = 2, 3, 5, 7 to su prosti brojevi 3, 7, 31, 127. Za𝑝 = 11 broj 2𝑝 − 1 = 2047 = 23 · 89 je slo�en. Najve�i poznat Mersenovprost broj je 77232917 (50. po redu).

U vezi sa prostim brojevima je i hipoteza da prostih brojeva oblika𝑛2 + 1 ima beskonaqno mnogo, kao i da parova prostih brojeva blizanaca(parova prostih brojeva koji se razlikuju za dva), kao xto su 5, 7; 11, 13;29, 31, ima beskonaqno mnogo. Najve�i poznat par prostih blizanaca je2996863034895 · 21290000 ± 1.

Hipoteza \3𝑥+ 1" Neka je

𝑓(𝑥) =

{𝑥/2, ako je 𝑛 paran3𝑥+ 1, ako je 𝑛 neparan

Polaze�i od nekog broja 𝑛 formira se niz 𝑛, 𝑓(𝑛), 𝑓(𝑓(𝑛)), 𝑓(𝑓(𝑓(𝑛))),. . . . Na primer, za 𝑛 = 1 dobija se periodiqni niz 1, 4, 2, 1, 4, 2, 1, . . ., a za𝑛 = 13 niz 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, . . . Hipoteza 3𝑥 + 1 glasi: zabilo koji prirodni broj 𝑛 ovaj niz ranije ili kasnije postaje periodiqan,sa periodom 1, 4, 2, 1, . . .. Du�ina niza do prve jedinice za 𝑛 = 27 je 111, aza 𝑛 = 63728127 je 949. Hipoteza je proverena za brojeve ma�e od 5.8 · 1018.

1.5 Algoritamski nerazrexivi problemi

Jedna od najpoznatijih teorema u matematici glasi da postoje problemikoji se ne mogu rexiti algoritmom. Postoji vixe dokaza ovog tvr�e�a.Jedan od �ih sastoji se u tome da se poka�e da ne postoji algoritam kojirexava halting problem (problem zaustava�a).

Halting problem glasi: da li postoji procedura (algoritam) koji zadati program 𝑃 i ulaz 𝑈 utvr�uje da li se program 𝑃 sa ulazom 𝑈 ikadazaustava (zavrxava sa radom)?

Ako bi postojao takav algoritam, on bi se mogao koristiti npr. zaisprava�e grexaka u programima. Me�utim, Alan Tjuring je 1936. godinedokazao da takav algoritam ne mo�e da postoji.

Treba zapaziti da se odgovor na pita�e da li se program 𝑃 zaustavana ulazu 𝑈 ne mo�e dobiti prostim izvrxava�em programa 𝑃 na ulazu 𝑈 :mo�e se desiti da se program zaustava, ali da radi jako dugo. Lako jenapraviti primer programa qije izvrxava�e traje 1000 godina.

Dokaz. Pretpostavimo suprotno, da postoji takav algoritam 𝐻, kojiza proizvoni program 𝑃 i ulaz 𝑈 posle poziva 𝐻(𝑃,𝑈) zavrxava rad ixtampa poruku "zavrxava se" ili "zaglavuje".

Svaki program, odnosno ulaz, mo�e se kodirati nizom nula i jedinica,pa se oni mogu pore�ati u leksikografski ure�eni niz. Zbog toga se npr.mo�e izvrxiti poziv 𝐻(𝑃, 𝑃 ), gde ulogu ulaza za program 𝑃 igra samtekst (binarni) programa 𝑃 . Neka je 𝐾(𝑃 ) takav program (algoritam) kojipoziva 𝐻(𝑃, 𝑃 ), i

∙ zavrxava se ako 𝐻(𝑃, 𝑃 ) daje na izlazu "zaglavuje"

Page 20: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

1.5. Algoritamski nerazrexivi problemi 20

∙ zaglavuje se (npr. ulaskom u beskonaqnu petu) ako 𝐻(𝑃, 𝑃 ) daje naizlazu "zavrxava se"

Postava se pita�e: da li se 𝐾(𝐾) zavrxava ili se zaglavuje?

∙ ako se𝐾(𝐾) zavrxava, onda bi𝐻(𝐾,𝐾) na izlazu davalo "zaglavuje",odnosno poziv 𝐾(𝐾) bi morao da dovede do zaglaviva�a;

∙ ako se𝐾(𝐾) zaglavuje, onda bi𝐻(𝐾,𝐾) na izlazu davalo "zavrxavase", odnosno poziv 𝐾(𝐾) bi morao da se zavrxava.

Ova kontradikcija pokazuje da pretpostavka da postoji algoritam 𝐻 sadatim svojstvima nije taqna.

Page 21: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Glava 2

Matematiqka indukcija

2.1 Uvod

Matematiqka indukcija igra znaqajnu ulogu pri konstrukciji mnogihalgoritama. U daem tekstu razmotri�emo nekoliko karakteristiqnihprimera primene indukcije.

Neka je N = {1, 2, . . .} skup prirodnih brojeva. Princip matematiqkeindukcije mo�e se formulisati na slede�i naqin. Pretpostavimo da trebadokazati da je tvr�e�e 𝑇 (𝑛) taqno za svaki prirodan broj 𝑛 ∈ N. Umestoda se ovo tvr�e�e "napada" direktno, dovono je dokazati slede�a dvatvr�e�a:

∙ 𝑇 (𝑛) je taqno za 𝑛 = 1, i

∙ za svako 𝑛 > 1 va�i: ako je taqno 𝑇 (𝑛− 1), onda je taqno i 𝑇 (𝑛).

Ova qi�enica je takozvani princip matematiqke indukcije, i posledicaje definicije skupa prirodnih brojeva: 1 ∈ N, a ako za neko 𝑛 > 1 va�i𝑛− 1 ∈ N onda 𝑛 ∈ N.

U praksi se obiqno prvo tvr�e�e (baza indukcije) lako dokazuje. Dokazdrugog tvr�e�a olakxan je pretpostavkom da je taqno 𝑇 (𝑛−1), takozvanominduktivnom hipotezom. Drugim reqima, dovono je tvr�e�e svesti nasluqaj kad je 𝑛 uma�eno za jedan. Ilustrova�emo to jednim jednostavnimprimerom.

Teorema 2.1. Za svaka dva broja 𝑥, 𝑛 ∈ N va�i 𝑥− 1|𝑥𝑛 − 1.

Dokaz. Dokaz se izvodi indukcijom po 𝑛. Za 𝑛 = 1 tvr�e�e glasi 𝑥−1|𝑥−1i oqigledno je taqno. Svo�e�e sluqaja 𝑛 na sluqaj 𝑛−1 zasniva se na izrazu𝑥𝑛 − 1 = (𝑥𝑛−1 − 1)𝑥 + (𝑥 − 1), jer on pokazuje da iz induktivne hipoteze𝑥− 1|𝑥𝑛−1 − 1 sledi da je taqno 𝑥− 1|𝑥𝑛 − 1.

Princip matematiqke indukcije qesto se koristi u nexto prome�enimoblicima, koji su neposredna posledica osnovnog oblika.

Teorema 2.2. Ako je taqno tvr�e�e 𝑃 (1) i za svako 𝑛 > 1 iz pretpostavkeda je 𝑃 (𝑘) taqno za svako 𝑘 < 𝑛 sledi taqnost 𝑃 (𝑛), onda je 𝑃 (𝑛) taqnoza svako 𝑛 ∈ N.

21

Page 22: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

2.2. Dva jednostavna primera 22

Ovo je tzv. potpuna indukcija, a dobija se od osnovne varijante primenomna tvr�e�e 𝑇 (𝑛) =

⋀𝑛𝑘=1 𝑃 (𝑘).

Teorema 2.3 (Regresivna indukcija). Neka je 𝑎1, 𝑎2, . . . rastu�i niz pri-rodnih brojeva. Ako je tvr�e�e 𝑃 (𝑛) taqno za 𝑛 = 𝑎𝑘, 𝑘 = 1, 2, . . . i zasvako 𝑛 ≥ 2 iz pretpostavke da je taqno 𝑃 (𝑛) sledi da je taqno 𝑃 (𝑛−1),tada je 𝑃 (𝑛) taqno za svako 𝑛 ∈ N.

Prvi deo pretpostavke, da je 𝑃 (𝑎𝑘) taqno za 𝑘 ≥ 1 dokazuje se indukcijom(𝑃 (1), i ako 𝑃 (𝑎𝑘) onda 𝑃 (𝑎𝑘+1), 𝑘 ≥ 1). Dakle, najpre se dokazuje dapostoje proizvono veliki brojevi 𝑛 takvi da je 𝑃 (𝑛) taqno, a onda daje 𝑃 (𝑛) taqno i za sve "izostavene" brojeve. Ovo je tzv. regresivnaindukcija.

2.2 Dva jednostavna primera

Potrebno je izraqunati sumu 𝑆(𝑛) = 1+2+ . . .+𝑛. Odgovor na ovo pita�edaje slede�a teorema.

Teorema 2.4. Neka je 𝑆(𝑛) =∑𝑛

𝑖=1 𝑖. Za svako 𝑛 ∈ N je 𝑆(𝑛) = 12𝑛(𝑛+ 1).

Dokaz. Kako je 1 = 12 · 1 · 2, tvr�e�e je taqno za 𝑛 = 1. Ako se pretpostavi

da je ono taqno za neko 𝑛, onda je

𝑆(𝑛+1) = 1+2+. . .+𝑛+(𝑛+1) = 𝑆(𝑛)+𝑛+1 =1

2𝑛(𝑛+1)+(𝑛+1) =

1

2(𝑛+1)(𝑛+2),

odnosno zakuqujemo da je tvr�e�e taqno i za 𝑛+ 1.

Teorema 2.5. Ako je 𝑛 ∈ N i 1 + 𝑥 > 0 onda je (1 + 𝑥)𝑛 ≥ 1 + 𝑛𝑥.

Dokaz. Za 𝑛 = 1 tvr�e�e je oqigledno taqno. Ako je tvr�e�e teoremetaqno za neko 𝑛 (induktivna hipoteza), onda se mno�e�em te nejednakostipozitivnim brojem dobija:

(1+𝑥)𝑛+1 = (1+𝑥)(1+𝑥)𝑛 ≥ (1+𝑥)(1+𝑛𝑥) = 1+(𝑛+1)𝑥+𝑛𝑥2 ≥ 1+(𝑛+1)𝑥,

odnosno tvr�e�e teoreme je taqno i ako se u �emu 𝑛 zameni sa 𝑛+ 1.

2.3 Broja�e oblasti na koje je podeena ravan

Za nekoliko pravih u ravni ka�e se da su u opxtem polo�aju ako nikojedve nisu paralelne, a nikoje tri se ne seku u istoj taqki. Treba odreditibroj oblasti na koje ravan deli 𝑛 ≥ 1 pravih u opxtem polo�aju (pretpo-stavka da su prave u opxtem polo�aju uvedena je da pojednostavi problem,jer tada nema potrebe za analizom raznih mogu�ih specijalnih sluqajeva).

Neposredno se vidi da jedna, dve, odnosno tri prave u opxtem polo�ajudele ravan redom na dve, qetiri, odnosno sedam oblasti. Naslu�uje seda ukuqiva�e 𝑛-te prave pove�ava za 𝑛 broj oblasti na koje je ravanpodeena. Ako se pretpostavi da je to taqno, onda je broj oblasti na koje 𝑛pravih u opxtem polo�aju deli ravan 2+2+3+4+ . . .+𝑛 = 1

2𝑛(𝑛+1)+1.Dakle, ostaje da se doka�e

Page 23: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

23 2. Matematiqka indukcija

Hipoteza 2.6. Dodava�e 𝑛-te prave u ravni (pri qemu su svih 𝑛 pravihu opxtem polo�aju) pove�ava broj oblasti na koje je ravan podeena za𝑛.

Dokaz. Dokaza�emo ovo tvr�e�e indukcijom po 𝑛. Tvr�e�e je oqiglednotaqno za 𝑛 = 1, 2, 3. Pretpostavimo da je ono taqno za neko 𝑛; neka je dato𝑛+ 1 pravih u ravni u opxtem polo�aju, i neka je 𝑝 jedna od tih pravih.Zbog toga xto su prave u opxtem polo�aju, prava 𝑝 sa proizvonom oblax�u,od onih na koju ravan dele ostalih 𝑛 pravih, nema zajedniqkih taqaka, ilije seqe. Prava 𝑝 seqe svih ostalih 𝑛 pravih (jer nije paralelna ni sa jednomod �ih; seqe ih u razliqitim taqkama, po pretpostavci), i taqke presekadele pravu 𝑝 na 𝑛+1 segmenata, od kojih svaki le�i u razliqitoj oblasti.Svaku od tih oblasti prava 𝑝 deli na dve, te se dodava�em prave 𝑝 brojoblasti pove�ava za 𝑛+ 1.

Primedba. Ovde je indukcija prime�ena dva puta: pove�a�e broja oblas-ti dodava�em 𝑛-te prave, a zatim ukupan broj oblasti na koje ravan deli𝑛 pravih. Ovakav postupak, ponekad i sa vixe nivoa, qesto se prime�uje.

2.4 Problem sa boje�em ravni

Proizvonih 𝑛 pravih u ravni deli ravan na oblasti; za prave se nepretpostava da su u opxtem polo�aju. Ka�emo da je ravan obojena sa dveboje (na primer crnom i belom) ako je svaka oblast obojena jednom od tedve boje, a svake dve susedne oblasti (one koje imaju deo prave ili celupravu kao granicu) su obojene razliqitim bojama.

Teorema 2.7. Ravan podeena sa proizvonih 𝑛 pravih mo�e se obojitisa dve boje.

Dokaz. Tvr�e�e teoreme dokazuje se indukcijom po broju pravih 𝑛. Za𝑛 = 1 tvr�e�e je oqigledno taqno (ravan je podeena na dve oblasti, jednaod �ih boji se crno, druga belo). Pretpostavimo da se ravan, izdeenasa proizvonih 𝑛 − 1 pravih, mo�e obojiti sa dve boje. Dodava�e 𝑛-teprave na proizvoan naqin deli neke oblasti na dva susedna dela obojenaistom bojom. Me�utim, ako se svim oblastima sa jedne strane 𝑛-te praveboja promeni u suprotnu, dobija se ispravno boje�e ravni. Zaista, graniceizme�u susednih oblasti mogu se podeliti na tri vrste: granice sa jedne,odnosno druge strane 𝑛-te prave, i granice na 𝑛-toj pravoj. Granice svetri vrste odvajaju oblasti obojene razliqitim bojama. Dakle, polaze�i odinduktivne hipoteze da se mo�e obojiti ravan podeena se 𝑛− 1 pravih,pokazano je kako se dobija boje�e ravni podeene sa 𝑛 proizvonih pravih.

Primedba. Ovaj primer je ilustracija maksimalnog, elastiqnog korix-�e�a induktivne hipoteze: od boje�a oblasti u jednoj poluravni naprav-eno je drugo ispravno boje�e zamenom bele i crne boje.

Page 24: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

2.5. Primer sa sumira�em 24

2.5 Primer sa sumira�em

Pretpostavimo da su svi neparni brojevi ispisani u okviru xeme u oblikutrougla, tako da u 𝑖-toj vrsti ima 𝑖 brojeva, 𝑖 = 1, 2, . . .:

𝑖 suma1 1 12 3 5 83 7 9 11 274 13 15 17 19 64

. . .

Potrebno je izraqunati sumu brojeva u 𝑖-toj vrsti.Izraqunavxi sume u prvih nekoliko vrsta, zapa�amo da je suma jednaka

kubu rednog broja vrste. Da se ovo tvr�e�e doka�e indukcijom, dovonoje dokazati da je razlika zbirova u (𝑖 + 1)-oj i 𝑖-toj vrsti jednaka (𝑖 +1)3 − 𝑖3 = 3𝑖2 + 3𝑖 + 1. Dae, ako sa 𝑎𝑖 oznaqimo posled�i broj u 𝑖-tojvrsti, razlika zbirova u (𝑖 + 1)-oj i 𝑖-toj vrsti jednaka je 𝑖 · 2𝑖 + 𝑎𝑖+1 jerje svaki od prvih 𝑖 brojeva u (𝑖 + 1)-oj vrsti ve�i od odgovaraju�eg u 𝑖-toj vrsti za 2𝑖 (poxto u 𝑖-toj vrsti ima 𝑖 uzastopnih neparnih brojeva,razlika prvog u (𝑖+1)-oj vrsti i prvog u 𝑖-toj vrsti je 2𝑖). Dakle, da bi sedokazalo drugo tvr�e�e, dovono je dokazati da je 2𝑖2+𝑎𝑖+1 = 3𝑖2+3𝑖+1,odnosno 𝑎𝑖+1 = 𝑖2 + 3𝑖 + 1 = (𝑖 + 1)2 + (𝑖 + 1) − 1, ili 𝑎𝑖 = 𝑖2 + 𝑖 − 1.Ovo posled�e tvr�e�e �emo naravno dokazati indukcijom. Za 𝑖 = 1 je𝑎1 = 1 = 12 + 1 − 1, tj. tvr�e�e je taqno. Iz pretpostavke da je za neko 𝑖𝑎𝑖 = 𝑖2 + 𝑖 − 1 sledi (jer u (𝑖 + 1)-oj vrsti ima 𝑖 + 1 uzastopnih neparnihbrojeva) da je 𝑎𝑖+1 = 𝑎𝑖 + 2(𝑖+ 1) = 𝑖2 + 3𝑖− 1 = (𝑖+ 1)2 + (𝑖+ 1)− 1, qimeje dokazano posled�e pomo�no tvr�e�e, a samim tim i polazno tvr�e�e.

U slede�em primeru vide�emo da se u dokazu induktivna hipoteza morakoristiti elastiqno, a ne onako kako bi na prvi pogled izgledalo da trebauqiniti.

Teorema 2.8. Za svaki prirodan broj 𝑛 je 12 + 1

4 + . . .+ 12𝑛 < 1.

Dokaz. Za 𝑛 = 1 je ovo oqigledno taqno. Nejednakost(1

2+

1

4+ . . .+

1

2𝑛

)+

1

2𝑛+1< 1

ne sledi iz prethodne, jer ako je zbir u zagradi ma�i od 1, on poslepove�ava�a za 1

2𝑛+1 ne mora da ostane ma�i od 1. Problemi se izbegavajuako se induktivna hipoteza primeni na posled�ih 𝑛 sabiraka u ovojnejednakosti:

1

2+

(1

4+ . . .+

1

2𝑛+

1

2𝑛+1

)=

1

2+

1

2

(1

2+

1

4+ . . .+

1

2𝑛

)<

1

2+

1

2· 1 = 1.

2.6 Ojlerova formula

Sada �emo dokazati tvr�e�e poznato kao Ojlerova formula (L. Euler, 1707-1783.). Posmatrajmo povezanu planarnu mapu (povezani neusmereni graf

Page 25: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

25 2. Matematiqka indukcija

koji se mo�e nacrtati u ravni tako da �egove grane kao zajedniqke taqkeimaju samo qvorove grafa). Brojeve qvorova, grana i oblasti na koje mapadeli ravan (ukuquju�i i spoax�u beskonaqnu oblast) oznaqimo redomsa 𝑉 , 𝐸, 𝐹 . Ka�emo da je mapa povezana ako za svaka dva �ena qvora postojiniz grana koje ih povezuju. Specijalno, povezana planarna mapa sa jednomoblax�u (𝐹 = 1) je stablo. Na slici 2.1 prikazani su primeri mape (sa𝑉 = 4 qvora, 𝐸 = 5 grana i 𝐹 = 3 oblasti), odnosno stabla.

hhh

h hhhhh�

��

QQQ

h h

hh@@@@@@@

Slika 2.1: Primer planarne mape, odnosno stabla.

Teorema 2.9 (Ojlerova formula). Za povezanu planarnu mapu va�i jed-nakost 𝑉 + 𝐹 = 𝐸 + 2.

Dokaz. Dokaz �e biti izveden dvostrukom indukcijom: najpre po brojuoblasti 𝐹 , a u okviru toga po broju qvorova 𝑉 . Posmatrajmo najpre sluqaj𝐹 = 1. Tada mapa (u ovom sluqaju stablo) ne sadr�i ni jednu zatvorenuoblast, jer bi u protivnom zbog postoja�a spoax�e beskonaqne oblastibilo 𝐹 ≥ 2. Treba dokazati da tada va�i 𝑉 = 𝐸 + 1. Ovo tvr�e�edokaza�emo indukcijom po broju qvorova 𝑉 = 𝑛. Ako je 𝑛 = 1 onda nemagrana i tvr�e�e je taqno. Neka je tvr�e�e taqno za 𝑉 = 𝑛. Posmatrajmoproizvono stablo sa 𝑛+1 qvorova. To stablo mora da ima bar jedan qvor𝑣 sa samo jednim susednim qvorom, jer bi u protivnom mapa sadr�alazatvorenu oblast. Mapa, koja se od ove dobija ukla�a�em qvora 𝑣 i grane𝑒 koja ga povezuje sa susednim qvorom, povezana je i nema zatvorenihoblasti, a broj qvorova u �oj je 𝑛. Za tu mapu va�i induktivna hipoteza:(𝑉 − 1) = (𝐸 − 1) + 1, pa je 𝑉 = 𝐸 + 1, qime je zavrxen dokaz teoreme zasluqaj 𝐹 = 1.

Pretpostavimo da je tvr�e�e teoreme taqno za planarne mape sa 𝐹 = 𝑛oblasti, 𝑉 + 𝐹 = 𝐸 + 2. Proizvona mapa 𝐺 sa 𝐹 ′ = 𝑛 + 1 oblasti imabar jednu oblast koja je susedna sa spoax�om oblax�u. Izbaciva�em izmape neke od grana koje odvajaju tu oblast od spoax�e, dobija se mapa 𝐺′

koja je i dae povezana i planarna, pri qemu ona ima 𝐹 ′ = 𝐹 − 1 oblastii 𝐸′ = 𝐸 − 1 grana. Na osnovu induktivne hipoteze za novu mapu va�i𝑉 + (𝐹 − 1) = (𝐸 − 1) + 2, iz qega neposredno sledi da za polaznu mapuva�i tvr�e�e teoreme.

2.7 Grejovi kodovi

Grejov kod (𝑘-bitni) du�ine 𝑛 > 1 je niz 𝑘-torki bitova (𝑘 ≥ 1) 𝑠1, 𝑠2, . . . , 𝑠𝑛takvih da se u tom nizu svaka dva uzastopna qlana, kao i 𝑠1, 𝑠𝑛, razlikujuna taqno jednoj poziciji. Na primer, 00, 01, 11, 10 je Grejov dvobitni kod

Page 26: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

2.7. Grejovi kodovi 26

du�ine 4. Zbog ove svoje osobine Grejovi kodovi imaju xiroku primenu.Lako je videti da ne postoje Grejovi kodovi neparne du�ine. Zaista, 𝑠1 i𝑠𝑖 se za 𝑖 > 1 razlikuju na parnom, odnosno neparnom broju pozicija ako je𝑖 neparno, odnosno parno. Zbog toga se 𝑠1 i 𝑠𝑛 za neparno 𝑛 razlikuju naparnom, (dakle razliqitom od jedan) broju pozicija.

Teorema 2.10. Za svaki paran broj 𝑛 postoji Grejov kod du�ine 𝑛.

Dokaz. Grejov kod du�ine dva je, na primer, niz 0, 1. Ako postoji Grejovkod 𝑠1, 𝑠2, . . . , 𝑠𝑛 du�ine 𝑛 = 2𝑘 za neko 𝑘 ∈ N (odnosno 𝑠𝑖, 𝑠𝑖+1, 𝑖 =1, 2, . . . , 𝑛− 1, kao i 𝑠𝑛, 𝑠1, razlikuju se na taqno jednoj poziciji), onda jejasno da je 0𝑠1, 1𝑠1, 1𝑠2, 0𝑠2, 0𝑠3, 0𝑠4, . . . , 0𝑠𝑛 Grejov kod du�ine 𝑛+2, videtisliku 2.2. Ovde su sa 0𝑠𝑖 odnosno 1𝑠𝑖 oznaqeni blokovi bitova dobijeni od𝑠𝑖 dodava�em nule, odnosno jedinice sa leve strane.

d

d

dddd

0𝑠2𝑘

0𝑠3

0𝑠1 1𝑠1

0𝑠2 1𝑠2

XXX���XXX���

Slika 2.2: Produ�ava�e Grejovog koda za dva

Na opisani naqin polaze�i od 1-bitnog Grejovog koda 0, 1 dobijaju sedvobitni Grejov kod 00, 10, 11, 01 i trobitni Grejov kod 000, 100, 110, 010, 011, 001.Opisana konstrukcija Grejovih kodova parne du�ine ima va�an nedos-tatak: za kod du�ine 2𝑘 koriste se 𝑘-torke bitova, tj. du�ine blokovabitova pove�avaju se za jedan svaki put kad se du�ina koda pove�a zadva. S druge strane, ako ne bi postojao zahtev o odnosu susednih qlanovaniza, niz du�ine 𝑛 > 1 mogao bi se kodirati 𝑘-torkama bitova, gde je𝑘 = ⌈log2 𝑛⌉; sa ⌈𝑥⌉ oznaqen najma�i ceo broj ve�i ili jednak od realnogbroja 𝑥. Neracionalnost opisane konstrukcije mo�e se ispraviti takoxto bi se pove�ava�em du�ine blokova za jedan konstruisao dva putadu�i, a ne Grejov kod du�i za dva:

0𝑠1, 0𝑠2, . . . , 0𝑠𝑛, 1𝑠𝑛, 1𝑠𝑛−1, . . . , 1𝑠1, (2.1)

videti sliku 2.3. Specijalno, ovako se polaze�i od jednobitnog Grjovogkoda 0, 1 dobijaju tzv. binarni reflektovani Grejovi kodovi 00, 01, 11, 10;000, 001, 011, 010, 110, 111, 101, 100; . . .

Nazovimo niz blokova bitova 𝑠1, 𝑠2, . . . , 𝑠𝑛 |kod koga se susedni blokovibitova 𝑠𝑖, 𝑠𝑖+1 za svako 𝑖 = 1, 2, . . . , 𝑛−1 razlikuju na taqno jednoj poziciji| zatvorenim, odnosno otvorenim Grejovim kodom ako jeste, odnosno nijeispu�en uslov da se blokovi 𝑠1, 𝑠𝑛 razlikuju na taqno jednoj poziciji.Dokaz slede�e teoreme daje konstrukciju Grejovog koda sa minimalnomdu�inom blokova bitova.

Page 27: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

27 2. Matematiqka indukcija

d

d

dddd

0𝑠2

0𝑠𝑛−1

0𝑠1

0𝑠𝑛

XXX���XXX���

d

d

dd

1𝑠2

1𝑠𝑛−1

1𝑠1

1𝑠𝑛

���XXX���XXX

Slika 2.3: Udvostruqava�e du�ine Grejovog koda

Teorema 2.11. Za svako 𝑛 > 1 postoji Grejov kod du�ine 𝑛 sa ⌈log2 𝑛⌉bita, i to zatvoren ako je 𝑛 parno, odnosno otvoren ako je 𝑛 neparno.

Dokaz. Oqigledno je da postoje Grejovi kodovi du�ine jedan i dva sablokovima du�ine jedan. Pretpostavimo da postoje otvoreni, odnosno za-tvoreni Grejovi kodovi svih du�ina 𝑘 < 𝑛, sa veliqinom bloka ⌊log2 𝑘⌋.

∙ Ako je 𝑛 parno, onda se primenom konstrukcije (2.1) (slika 2.3) nakod du�ine 𝑛/2 sa ⌈log2(𝑛/2)⌉ bita (koji po induktivnoj hipotezipostoji), dobija kod du�ine 𝑛 sa 1 + ⌈log2(𝑛/2)⌉ = ⌈log2 𝑛⌉ bita.

∙ Neka je sad 𝑛 = 2𝑚+1 neparno. Prema induktivnoj hipotezi postojiGrejov kod du�ine 𝑚 + 1 sa ⌈log2(𝑚 + 1)⌉ bita. Od �ega se na istinaqin dobija kod du�ine 2𝑚+ 2 sa 𝑑 = 1+ ⌈log2 𝑚⌉ = ⌈log2(2𝑚+ 2)⌉bita. Izbaciva�em recimo posled�eg bloka, dobija se otvoreni koddu�ine 2𝑚+ 1 = 𝑛. Broj bita u blokovima ovog koda je

⌈log2(2𝑚+ 2)⌉ = ⌈log2(2𝑚+ 1)⌉ = ⌈log2 𝑛⌉.

d

d

dddd

0𝑠2

0𝑠𝑛−1

0𝑠1

0𝑠𝑛

XXX���XXX���

d

d

dd

1𝑠2

1𝑠𝑛−1

1𝑠1

1𝑠𝑛

���XXX���XXX

ddd

1𝑠𝑖 𝑠′

1𝑠𝑖+1

��

6

Slika 2.4: Konstrukcija otvorenog Grejovog koda

2.8 Nejednakost izme�u aritmetiqke i geometrijske sredine

Kao primer tvr�e�a koje se mo�e dokazati primenom regresivne indukcijeiskoristi�emo nejednakost izme�u aritmetiqke i geometrijske sredine.

Page 28: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

2.9. Invarijanta pete | dokaz ispravnosti algoritma 28

Teorema 2.12. Neka su 𝑥1, 𝑥2, . . . , 𝑥𝑛 pozitivni realni brojevi. Tada je

𝑛√𝑥1𝑥2 . . . 𝑥𝑛 ≤

𝑥1 + 𝑥2 + · · ·+ 𝑥𝑛

𝑛(2.2)

Dokaz. Tvr�e�e �emo dokazati primenom regresivne indukcije. Najpre�emo dokazati da ono va�i za brojeve oblika 𝑛 = 2𝑘, dakle za proizvonovelike brojeve, a zatim da iz pretpostavke da ono va�i za neko 𝑛 sledi daono va�i za 𝑛− 1.

U prvom delu dokaza baza indukcije (𝑛 = 21) je nejednakost

√𝑥1𝑥2 ≤

1

2(𝑥1 + 𝑥2),

koja je posledica oqigledne nejednakosti (𝑥1 − 𝑥2)2 ≥ 0 (odakle se dobija

𝑥21 + 2𝑥1𝑥2 + 𝑥2

2 ≥ 4𝑥1𝑥2, odnosno14 (𝑥1 + 𝑥2)

2 ≥ 𝑥1𝑥2). Iz pretpostavkeda (2.2) va�i za 𝑛 = 2𝑘 sledi da za 2𝑛 = 2𝑘+1 brojeva 𝑥1, 𝑥2, . . . , 𝑥2𝑛 va�i

2𝑛

⎯⎸⎸⎷ 2𝑛∏𝑖=1

𝑥𝑖 =

⎯⎸⎸⎸⎷ 𝑛

⎯⎸⎸⎷ 𝑛∏𝑖=1

𝑥𝑖𝑛

⎯⎸⎸⎷ 2𝑛∏𝑖=𝑛+1

𝑥𝑖 ≤

⎯⎸⎸⎷( 1

𝑛

𝑛∑𝑖=1

𝑥𝑖

)( 1

𝑛

2𝑛∑𝑖=𝑛+1

𝑥𝑖

)≤

≤ 1

2

( 1

𝑛

𝑛∑𝑖=1

𝑥𝑖 +1

𝑛

2𝑛∑𝑖=𝑛+1

𝑥𝑖

)=

1

2𝑛

2𝑛∑𝑖=1

𝑥𝑖,

odnosno tvr�e�e (2.2) va�i za dvostruko ve�i broj brojeva 𝑥𝑖. Time jezavrxen prvi deo dokaza.

Sada �emo pokazati da ako jednakost (2.2) va�i za proizvonih 𝑛brojeva, onda ona va�i i za proizvonih 𝑛 − 1 brojeva. Da bi se u (2.2)sma�io broj promenivih, jedna od �ih mo�e se izraziti preko ostalih.Neka je dakle 𝑥𝑛 = 1

𝑛−1

∑𝑛−1𝑖=1 𝑥𝑖, tj. 𝑥𝑛 biramo tako da bude jednako aritmetiqkoj

sredini ostalih 𝑛− 1 promenivih. Tada desna strana nejednakosti (2.2)postaje jednaka 𝑥𝑛:

1

𝑛

𝑛∑𝑖=1

𝑥𝑖 =𝑛− 1

𝑛

( 1

𝑛− 1

𝑛−1∑𝑖=1

𝑥𝑖

)+

1

𝑛𝑥𝑛 =

𝑛− 1

𝑛𝑥𝑛 +

1

𝑛𝑥𝑛 = 𝑥𝑛,

pa (2.2) prelazi u 𝑥𝑛

∏𝑛−1𝑖=1 𝑥𝑖 ≤ 𝑥𝑛

𝑛, odnosno

𝑛−1

⎯⎸⎸⎷𝑛−1∏𝑖=1

𝑥𝑖 ≤ 𝑥𝑛 =1

𝑛− 1

𝑛−1∑𝑖=1

𝑥𝑖.

Prema tome, zavrxetkom drugog dela dokaza dokazano je da nejednakost (2.2)izme�u aritmetiqke i geometrijske sredine va�i za svako 𝑛 ∈ N.

2.9 Invarijanta pete | dokaz ispravnosti algoritma

Matematiqka indukcija qesto se koristi za dokaziva�e korektnosti al-goritma, posebno u sluqaju kad se algoritam sastoji od pete. Ideja jeda se poka�e da je neko tvr�e�e (invarijanta pete) taqno pre ulaska

Page 29: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

29 2. Matematiqka indukcija

u petu i posle svakog prolaska kroz petu, a da iz �egove taqnosti nakraju izvrxe�a algoritma sledi korektnost algoritma.

Ovaj metod ilustrova�emo dokazom korektnosti algoritma koji za zadatiprirodni broj 𝑛 izraqunava �egove binarne cifre, komponente vektora𝑏, tj. vrxi �egovu konverziju u binarni oblik. Algoritam se sastojiod pete u kojoj su tri naredbe: pove�ava�e 𝑘 (indeksa za vektor 𝑏),izraqunava�e ostatka i celog dela koliqnika pri dee�u pomo�ne promenive𝑡 sa dva.

𝐵𝑖𝑛 𝑐𝑖𝑓𝑟𝑒(𝑛)ulaz: 𝑛 (prirodan broj)izlaz: 𝑏 (niz binarnih cifara broja 𝑛)1 𝑡← 𝑛 { pomo�na promeniva 𝑡 sa poqetnom vrednox�u 𝑛 }2 𝑘 ← 03 while 𝑡 > 0 do4 𝑘 ← 𝑘 + 15 𝑏[𝑘]← 𝑡mod26 𝑡← 𝑡div 2

Teorema 2.13. Po zavrxetku algoritma 𝐵𝑖𝑛 𝑐𝑖𝑓𝑟𝑒 u vektoru 𝑏 nalazese binarne cifre broja 𝑛.

Dokaz. Dokaz ispravnosti algoritma bi�e sproveden pomo�u invarijantepete. Razmotrimo slede�u induktivnu hipotezu.

Induktivna hipoteza. Neka je 𝑚 broj qije su binarne cifre dobijeneu 𝑘 prvih prolazaka kroz petu, pri qemu je 𝑏[1] najni�i bit. Tada je

𝑡 · 2𝑘 +𝑚 = 𝑛.

Za 𝑘 = 0 je 𝑡 = 𝑛 i 𝑚 = 0, pa je ovo tvr�e�e taqno. Neka je induktivnahipoteza taqna za neko 𝑘 ≥ 0. U narednom prolasku kroz petu dobijajuse nove vrednosti 𝑏[𝑘 + 1] = 𝑡mod2, 𝑡′ = 𝑡div 2, i 𝑚′ = 𝑏[𝑘 + 1]2𝑘 + 𝑚 =(𝑡mod2)2𝑘 +𝑚, pa je

𝑡′2𝑘+1 +𝑚′ = (𝑡div 2)2𝑘+1 + (𝑡mod2)2𝑘 +𝑚 =

= 2𝑘(2 · (𝑡div 2) + (𝑡mod2)

)+𝑚 = 2𝑘 · 𝑡+𝑚 = 𝑛,

zbog induktivne hipoteze. Time je dokazano da izraz 𝑡 · 2𝑘 + 𝑚 ne me�avrednost od prolaska do prolaska kroz petu, odnosno da je on invarijantapete. Kako je posle posled�eg prolaska kroz petu 𝑡 = 0, u tom trenutku�e biti 𝑚 = 𝑛, qime je ispravnost algoritma dokazana.

2.10 Najqex�e grexke

Prilikom izvo�e�a dokaza indukcijom qesta je grexka da se kao oqiglednaqi�enica iskoristi tvr�e�e koje je blisko ili ekvivalentno dokazivanom.Time se faktiqki pojaqava induktivna hipoteza, ali se ne dokazuje da iztaqnosti pojaqane hipoteze za 𝑛 sledi �ena taqnost za 𝑛+ 1.

Razmotrimo jox jedan primer "dokaza" indukcijom.

Page 30: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

2.11. Rezime 30

Teorema 2.14 (netaqna). Dato je 𝑛 pravih u ravni tako da nikoje dveme�u �ima nisu paralelne. Dokazati da svih 𝑛 pravih imaju zajedniqkutaqku.

Dokaz. (pogrexan) Za 𝑛 = 1 tvr�e�e je taqno. Xta vixe, ono je taqnoi za 𝑛 = 2. Neka ono va�i za neko 𝑛 i neka je dato proizvonih 𝑛 + 1pravih u ravni takvih da nikoje dve me�u �ima nisu paralelne. Tadaprema induktivnoj hipotezi prvih 𝑛 pravih imaju zajedniqku taqku. Istova�i i za posled�ih 𝑛 pravih. Ove dve taqke se moraju poklapati, xtoznaqi da svih 𝑛+ 1 pravih imaju zajedniqku taqku.

Grexka u ovom dokazu prikrivena je u qi�enici da prelaz sa 𝑛 na 𝑛+1ne va�i za 𝑛 = 2: od tri razmatrane prave 𝑎, 𝑏 i 𝑐 preseqna taqka prvihdveju, 𝑎 i 𝑏, ne mora da se poklapa sa preseqnom taqkom posled�ih dveju,𝑏 i 𝑐.

2.11 Rezime

Matematiqka indukcija je mo�an metod za dokaziva�e teorema. Najprese formulixe induktivna hipoteza i bira se promeniva po kojoj �edokaz indukcijom biti izveden. Ponekad se induktivna hipoteza mo�eformulisati na vixe naqina | neki vode kra�em, a neki du�em dokazu;ponekad se uvodi potpuno nova promeniva, potrebna samo za izvo�e�edokaza. Dokaz se ponekad izvodi indukcijom na vixe nivoa, od kojih svakivodi sve bli�e ciu.

Dokaz indukcijom sastoji se od dva dela | baze i koraka indukcije(redukcije, svo�e�a). Bazu ponekad nije lako dokazati, ali je to ipakre�i sluqaj. Zbog toga se ovaj deo dokaza ponekad grexkom ignorixe. Sr�dokaza je u redukciji: najqex�e se tvr�e�e sa parametrom 𝑛 svodi naanalogno tvr�e�e sa parametrom 𝑛−1. Druga mogu�a varijanta je potpunaindukcija, kad se sluqaj 𝑛 svodi na nekoliko drugih za vrednosti 𝑘 < 𝑛.Tako�e se koristi i postupak svo�e�a sa 2𝑛 na 𝑛, a zatim sa 𝑛 na 𝑛+ 1 {regresivna indukcija. U svim varijantama je va�no da se o dokazivanomtvr�e�u ne pretpostavi nixta vixe od induktivne hipoteze.

Page 31: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Glava 3

Analiza algoritama

Podsetimo se da je ci analize algoritma je da se predvidi ponaxa�ealgoritma, posebno brzina izvrxava�a, ne realizuju�i ga na nekom kon-kretnom raqunaru. Praktiqno je nedosti�no odrediti vreme izvrxava�aalgoritma za odre�eni ulaz jer je texko uzeti u obzir sve mogu�e ulaze.Zbog toga se za svaki mogu�i ulaz definixe �egova veliqina 𝑛, posle qegase u analizi koristi samo ovaj podatak. Dakle, analiza algoritma treba dakao rezultat da izraz za utroxeno vreme u zavisnosti od veliqine ulaza 𝑛.Koji me�u ulazima veliqine 𝑛 izabrati kao reprezentativan? Qesto se zaovu svrhu bira najgori sluqaj. Najboi ulaz je qesto trivijalan, a sred�i(proseqan) ulaz samo na prvi pogled izgleda kao dobar izbor. Me�utim,analiza proseqnog sluqaja je qesto komplikovana, a potexko�u predstavai definisa�e raspodele verovatno�a na skupu svih ulaza veliqine 𝑛, ito tako da ona odgovara situacijama koje se pojavuju u praksi. Zbog togase obiqno analiza vrxi za najgori sluqaj. S obzirom na to da je ponekadkorisno izvrxiti analizu proseqnog slucaja, u taqki 3.4 �emo videti iprimer takve analize algoritma.

Ocena (vremenske) slo�enosti algoritma sastoji se u broja�u raqunskihkoraka koje treba izvrxiti. Me�utim, termin raqunska operacija mo�eda podrazumeva razliqite operacije, na primer sabira�e i mno�e�e, qijeizvrxava�e traje razliqito vreme. Razliqite operacije se mogu posebnobrojati, ali je to obiqno komplikovano. Pored toga, vreme izvrxava�azavisi i od konkretnog raqunara, izabranog programskog jezika, odnosnoprevodioca. Zato se obiqno u okviru algoritma izdvaja neki osnovni korak,onaj koji se najqex�e ponava. Tako, ako se radi o sortira�u, osnovnikorak je upore�iva�e.

Pod prostornom slo�enox�u algoritma podrazumeva se veliqina me-morije potrebne za za izvrxava�e algoritma, pri qemu se prostor zasmexta�e ulaznih podataka najqex�e ne raquna. To omogu�uje upore�iva�erazliqitih algoritama za rexava�e istog problema. Kao i kod vremenskeslo�enosti, i za prostornu slo�enost se najqex�e tra�i �eno asimptot-sko ponaxa�e u najgorem sluqaju, za velike veliqine ulaza. Prostornaslo�enost 𝑂(𝑛) znaqi da je za izvrxava�e algoritma potrebna memorijaproporcionalna onoj za smexta�e ulaznih podataka. Ako je pak prostornaslo�enost algoritma𝑂(1), onda to znaqi da je potreban memorijski prostor

31

Page 32: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

3.1. Asimptotske oznake 32

za �egovo izvrxava�e ograniqen konstantom, bez obzira na veliqinu ulaza.

3.1 Asimptotske oznake

Oznaka 𝑂: Neka su 𝑓 i 𝑔 pozitivne funkcije od argumenta 𝑛 iz skupaN prirodnih brojeva. Ka�e se da je 𝑔(𝑛) = 𝑂(𝑓(𝑛)) ako postojepozitivne konstante 𝑐 i 𝑁 , takve da za svako 𝑛 > 𝑁 va�i 𝑔(𝑛) ≤𝑐𝑓(𝑛). Oznaka𝑂(𝑓(𝑛)) se u stvari odnosi na klasu funkcija, a jednakost𝑔(𝑛) = 𝑂(𝑓(𝑛)) je uobiqajena oznaka za inkluziju 𝑔(𝑛) ∈ 𝑂(𝑓(𝑛)).Jasno je da je funkcija 𝑓 samo neka vrsta gor�e granice za funkciju𝑔. Na primer, pored jednakosti 5𝑛2+15 = 𝑂(𝑛2) (jer je 5𝑛2+15 ≤ 6𝑛2

za 𝑛 ≥ 4) va�i i jednakost 5𝑛2 + 15 = 𝑂(𝑛3) (jer je 5𝑛2 + 15 ≤ 6𝑛3

za 𝑛 ≥ 4). Ova notacija omogu�uje ignorisa�e multiplikativnihkonstanti: umesto 𝑂(5𝑛+ 4) mo�e se pisati 𝑂(𝑛). Jednakost 𝑂(5𝑛+4) = 𝑂(𝑛) je u stvari jednakost dve klase funkcija.

Lako se pokazuje da se 𝑂-izrazi mogu sabirati i mno�iti:

𝑂(𝑓(𝑛)) +𝑂(𝑔(𝑛)) = 𝑂(𝑓(𝑛) + 𝑔(𝑛)),

𝑂(𝑓(𝑛))𝑂(𝑔(𝑛)) = 𝑂(𝑓(𝑛)𝑔(𝑛)).

Oznake Ω i Θ: Drugi problem u vezi sa slo�enox�u algoritma je pita�edo�e granice za potreban broj raqunskih operacija. Dok se gor�agranica odnosi na konkretan algoritam, do�a granica slo�enostiodnosi se na proizvoan algoritam iz neke odre�ene klase. Zbog togaocena do�e granice zahteva posebne postupke analize. Za funkciju𝑔(𝑛) ka�e se da je asimptotska do�a granica funkcije 𝑇 (𝑛) ipixe se 𝑇 (𝑛) = Ω(𝑔(𝑛)), ako postoje pozitivne konstante 𝑐 i 𝑁 ,takve da za svako 𝑛 > 𝑁 va�i 𝑇 (𝑛) > 𝑐𝑔(𝑛). Tako je na primer𝑛2 = Ω(𝑛2 − 100), i 𝑛 = Ω(𝑛0.9). Vidi se da simbol Ω odgovararelaciji ≥.Ako za dve funkcije 𝑓(𝑛) i 𝑔(𝑛) istovremeno va�i i 𝑓(𝑛) = 𝑂(𝑔(𝑛))i 𝑓(𝑛) = Ω(𝑔(𝑛)), onda one imaju iste asimptotske brzine rasta, xtose oznaqava sa 𝑓(𝑛) = Θ(𝑔(𝑛)). Tako je na primer 5𝑛 log2 𝑛 − 10 =Θ(𝑛 log 𝑛), pri qemu je u posled�em izrazu osnova logaritma nebit-na.

Oznaka 𝑜: Ka�emo da je 𝑓(𝑛) = 𝑜(𝑔(𝑛)) ako va�i lim𝑛→∞𝑓(𝑛)𝑔(𝑛) = 0. Ne-

formalno, 𝑓(𝑛) je beskonaqno mala veliqina u odnosu na 𝑔(𝑛). Naprimer, oqigledno je 𝑛

log2 𝑛 = 𝑜(𝑛), a jednakost 𝑛10 = 𝑜(𝑛) nije taqna.

Oznaka 𝜔: Prema analogiji, 𝜔 se odnosi prema Ω kao 𝑜 prema 𝑂. Drugimreqima, 𝑓(𝑛) ∈ 𝜔(𝑔(𝑛)) akko 𝑔(𝑛) ∈ 𝑜(𝑓(𝑛)). Iz relacije 𝑓(𝑛) =

𝜔(𝑔(𝑛)) sledi da je lim𝑛→∞𝑓(𝑛)𝑔(𝑛) =∞. Neformalno, 𝑔(𝑛) je beskonaqno

mala veliqina u odnosu na 𝑓(𝑛). Na primer, va�i 𝑛2/2 = 𝜔(𝑛), aline va�i 𝑛2/2 = 𝜔(𝑛2).

Podsetimo se i rexava�a problema sumira�a korix�e�em integrala.Ako se algoritam sastoji od delova koji se izvrxavaju jedan za drugim,onda je �egova slo�enost jednaka zbiru slo�enosti delova. Na primer,

Page 33: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

33 3. Analiza algoritama

ako je osnovni deo algoritma peta u kojoj indeks 𝑖 uzima vrednosti1, 2, . . . , 𝑛, a izvrxava�e 𝑖-tog prolaska kroz petu troxi 𝑓(𝑖) koraka,onda je vremenska slo�enost algoritma

∑𝑛𝑖=1 𝑓(𝑖). U sluqaju kad je texko

izraqunati sumu∑𝑛

𝑖=1 𝑓(𝑖), a funkcija 𝑓(𝑥) od realnog argumenta je monotononeopadaju�a neprekidna funkcija za 𝑥 ≥ 1, tada se sumira�em levihstrana za 𝑖 = 1, 2, . . . , 𝑛 a desnih strana za 𝑖 = 1, 2, . . . , 𝑛− 1 nejednakosti:

𝑓(𝑖) ≤∫ 𝑖+1

𝑖

𝑓(𝑥) 𝑑𝑥 ≤ 𝑓(𝑖+ 1), 1 ≤ 𝑖 ≤ 𝑛,

dobijaju granice intervala u kome le�i suma∑𝑛

𝑖=1 𝑓(𝑖):∫ 𝑛

1

𝑓(𝑥) 𝑑𝑥+ 𝑓(1) ≤𝑛∑

𝑖=1

𝑓(𝑖) ≤∫ 𝑛+1

1

𝑓(𝑥) 𝑑𝑥.

videti sliku 3.1.

Slika 3.1: Aproksimacija sume∑𝑛

𝑘=𝑚 𝑓(𝑘) integralima. Ukupna povrxinasvih pravougaonika predstava vrednost sume, dok je vrednost integralajedanaka osenqenoj povrxini ispod krive. Obratiti pa��u da jehorizontalna stranica svakog od pravougaonika du�ine 1.

Ako je pak funkcija 𝑓(𝑥) monotono nerastu�a, onda je funkcija −𝑓(𝑥)neopadaju�a, pa se primenom ovih nejednakosti na −𝑓(𝑥) dobija da u ovimnejednakostima samo treba promeniti znake \≤" u \≥".

Page 34: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

3.1. Asimptotske oznake 34

Primer: Razmotrimo problem raquna�a sume 𝑆𝑘(𝑛) =∑𝑛

𝑖=1 𝑖𝑘 za 𝑘 > 0.

U ovom sluqaju funkcija 𝑓(𝑥) = 𝑥𝑘 je monotono neopadaju�a te mo�emokoristiti narednu procenu:∫ 𝑛

1

𝑓(𝑥) 𝑑𝑥+ 𝑓(1) ≤𝑛∑

𝑖=1

𝑓(𝑖) ≤∫ 𝑛+1

1

𝑓(𝑥) 𝑑𝑥

odnosno: ∫ 𝑛

1

𝑥𝑘 𝑑𝑥+ 1 ≤𝑛∑

𝑖=1

𝑖𝑘 ≤∫ 𝑛+1

1

𝑥𝑘 𝑑𝑥

Vrednost neodre�enog integrala je:∫𝑥𝑘 𝑑𝑥 =

𝑥𝑘+1

𝑘 + 1+ 𝐶

s obzirom da je 𝑘 = −1. Odavde za 𝑘 = −1 dobijamo narednu ocenu tra�enesume:

𝑛𝑘+1 − 1

𝑘 + 1+ 1 ≤

𝑛∑𝑖=1

𝑖𝑘 ≤ (𝑛+ 1)𝑘+1 − 1

𝑘 + 1

odnosno:

𝑛𝑘+1

𝑘 + 1≤ 𝑛𝑘+1 + 𝑘

𝑘 + 1≤

𝑛∑𝑖=1

𝑖𝑘 ≤ (𝑛+ 1)𝑘+1 − 1

𝑘 + 1

tj:

𝑆𝑘(𝑛) =

𝑛∑𝑖=1

𝑖𝑘 = Θ(𝑛𝑘+1)

Ukoliko je 𝑘 < 0 funkcija 𝑓(𝑥) = 𝑥𝑘 je monotono nerastu�a funkcija paza 𝑘 = −1 va�i naredna ocena:

(𝑛+ 1)𝑘+1 − 1

𝑘 + 1≤

𝑛∑𝑖=1

𝑖𝑘 ≤ 𝑛𝑘+1

𝑘 + 1

U specijalnom sluqaju kada je 𝑘 = −1 vrednost neodre�enog integrala je:∫1

𝑥𝑑𝑥 = ln𝑥+ 𝐶

te va�i naredna ocena:

ln𝑥|𝑛+11 ≤

𝑛∑𝑖=1

1

𝑖≤ ln𝑥|𝑛1 + 1,

odnosno:

𝑛∑𝑖=1

1

𝑖= Θ(ln𝑛)

Page 35: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

35 3. Analiza algoritama

3.2 Rexava�e rekurentnih jednaqina metodom zamene

Rekurentne jednaqine u vezi sa algoritmima zasnovanim na razlaga�uobiqno se rexavaju metodom zamene (supstitucije), koji se sastoji oddva koraka:

1. pretpostaviti oblik rexe�a

2. primenom matematiqke indukcije dokazati taqnost rexe�a, poxtose prethodno na odgovaraju�i naqin izaberu vrednosti konstanti

Ime metoda potiqe od toga xto se pretpostaveno rexe�e zame�uje umestovrednosti funkcije za ma�e argumente. Metod je mo�an, ali moramo bitiu sta�u da pretpostavimo oblik rexe�a. Metod se mo�e iskoristiti zaodre�iva�e bilo gor�e, bilo do�e granice za rexe�e rekurentne relacije.

Primer. Potrebno je odrediti gor�u granicu za rexe�e rekurentnerelacije:

𝑇 (𝑛) = 2𝑇 (⌊𝑛2

⌋) + 𝑛 (3.1)

Mo�e se pretpostaviti da je rexe�e oblika 𝑇 (𝑛) = 𝑂(𝑛 log 𝑛). Metodzamene zahteva da doka�emo nejednakost 𝑇 (𝑛) ≤ 𝑐𝑛 log2 𝑛, ako se na odgova-raju�i naqin izabere vrednost konstante 𝑐 > 0. Polazimo od pretpostavkeda je nejednakost taqna za sve 𝑚 < 𝑛 i specijalno za 𝑚 = ⌊𝑛/2⌋, tj. daje 𝑇 (⌊𝑛/2⌋) ≤ 𝑐⌊𝑛/2⌋ log2(⌊𝑛/2⌋). Zamenom u rekurentnu jednaqinu (3.1)dobija se:

𝑇 (𝑛) ≤ 2𝑐⌊𝑛/2⌋ log2(⌊𝑛/2⌋) + 𝑛

≤ 𝑐𝑛 log2(𝑛/2) + 𝑛 = 𝑐𝑛 log 𝑛− 𝑐𝑛+ 𝑛

≤ 𝑐𝑛 log2 𝑛

Da bi posled�a od ovih nejednakosti bila taqna, potrebno je i dovonoda bude 𝑐 ≥ 1. Za kompletira�e ovog dokaza matematiqkom indukcijomneophodno je dokazati da nejednakost va�i u baznom sluqaju, pod pretpo-stavkom da je izabrana dovono velika vrednost konstante 𝑐. Me�utim,ako je 𝑇 (1) = 1, onda za 𝑛 = 1 nejednakost 𝑇 (𝑛) ≤ 𝑐𝑛 log2 𝑛 ne va�i niza jedno 𝑐. Problem se mo�e rexiti tako xto doka�emo da je nejednakosttaqna za 𝑛 ≥ 𝑛0, gde je 𝑛0 konstanta qiju vrednost treba da izaberemo.Pre svega, prime�ujemo da se vrednost 𝑇 (1) ne pojavuje sa desne stranenejednakosti (3.1) za 𝑛 > 3. Zbog toga se umesto 𝑇 (1) za bazne sluqajeve moguuzeti 𝑇 (2) i 𝑇 (3), a za 𝑛0 mo�e se uzeti 𝑛0 = 2. Primetimo da smo timerazdvojili bazu rekurentne relacije (𝑛 = 1) i bazu induktivnog dokaza(𝑛 = 2 i 𝑛 = 3). Polaze�i od 𝑇 (1) = 1, na osnovu (3.1) dobijamo 𝑇 (2) = 4i 𝑇 (3) = 5. Induktivni dokaz nejednakosti 𝑇 (𝑛) ≤ 𝑐𝑛 log2 𝑛 zavrxava seizborom dovono velike konstante 𝑐 tako da bude 𝑇 (2) ≤ 𝑐 · 2 · log2 2 i𝑇 (3) ≤ 𝑐 · 3 · log2 3. Ispostava se da su obe ove nejednakosti zadovoeneako je 𝑐 ≥ 2 (jer je 4 ≤ 2 · 2 i 5 ≤ 2 · 3 · log2 3). U velikom broju sluqajevainduktivni dokaz se lako kompletira tako da pokriva i sluqaj malihvrednosti 𝑛, pa se u narednim primerima ti detai qesto preskaqu.

Page 36: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

3.3. Rexava�e rekurentnih relacija metodom stabla rekurzije36

3.2.1 Izbor dobre pretpostavke

Na �alost, ne postoji opxti metod za poga�a�e taqnog oblika rexe�arekurentne relacije. Do dobrih pretpostavki mo�e se do�i korix�e�emnekih heuristika ili primenom stabla rekurzije, koje �e biti razmotrenou narednom odeku.

Ako je rekurentna relacija sliqna prethodnoj, onda se mo�e isko-ristiti sliqna pretpostavka. Na primer, rekurentna relacija 𝑇 (𝑛) =2𝑇 (⌊𝑛/2⌋+17)+𝑛 izgleda texko zbog dodava�a sabirka \17". Intuitivno,ipak ovaj sabirak ne mo�e suxtinski da promeni oblik rexe�a: kada je 𝑛veliko razlika izme�u ⌊𝑛/2⌋+17 i ⌊𝑛/2⌋ nije velika i obe ove vrednosti sublizu 𝑛/2. Prema tome, mo�e se pretpostaviti da je 𝑇 (𝑛) = 𝑂(𝑛 log 𝑛), xtose mo�e dokazati primenom metoda zamene (videti zadatak u nastavku).

Zadatak: Dokazati da je za rexe�e jednaqine 𝑇 (𝑛) = 2𝑇 (⌊𝑛/2⌋+17)+𝑛va�i 𝑇 (𝑛) = 𝑂(𝑛 log 𝑛).

Kao prvo, ova jednaqina poqi�e da ima smisla tek za 𝑛 ≥ 35. Mogu�inaqin da se izvede dokaz je da se primeni opxtiji oblik gor�e granice,sa dve konstante 𝑐 i 𝑎: 𝑇 (𝑛) ≤ 𝑐(𝑛 − 𝑎) log(𝑛 − 𝑎). Dakle pretpostavimoda za 𝑘 < 𝑛 va�i 𝑇 (𝑘) ≤ 𝑐(𝑘 − 𝑎) log(𝑘 − 𝑎) i poka�imo da onda va�i i𝑇 (𝑛) ≤ 𝑐(𝑛− 𝑎) log(𝑛− 𝑎).

𝑇 (𝑛) ≤ 2𝑐(⌊𝑛/2⌋+ 17− 𝑎) log2(⌊𝑛/2⌋+ 17− 𝑎) + 𝑛

≤ 2𝑐(𝑛/2 + 17− 𝑎) log2(𝑛/2 + 17− 𝑎) + 𝑛

≤ 𝑐(𝑛+ 34− 2𝑎) log2𝑛+ 34− 2𝑎

2+ 𝑛

≤ 𝑐(𝑛+ 34− 2𝑎) log(𝑛+ 34− 2𝑎)− 𝑐(𝑛+ 34− 2𝑎) + 𝑛

≤ 𝑐(𝑛+ 34− 2𝑎) log(𝑛+ 34− 2𝑎)

≤ 𝑐(𝑛− 𝑎) log(𝑛− 𝑎)

Posled�e dve nejednakosti va�e za 𝑐 > 1 i 𝑎 ≥ 34.Drugi naqin da se do�e do dobre pretpostavke je da se doka�e da va�e

\komotna" do�a i gor�a granica, pa da se zatim sma�uje razlika izme�u�ih. Na primer, za rekurentnu relaciju (3.1) mo�e se po�i od oqiglednedo�e granice 𝑇 (𝑛) = Ω(𝑛) (zbog sabirka 𝑛 u rekurentnoj relaciji) imo�e se dokazati da va�i gruba gor�a granica 𝑇 (𝑛) = 𝑂(𝑛2). Zatim mimo�emo da postepeno sma�ujemo gor�u granicu i postepeno pove�avamodo�u granicu, dok ne do�emo do rexe�a 𝑇 (𝑛) = 𝑂(𝑛 log 𝑛).

3.3 Rexava�e rekurentnih relacija metodom stabla rekurzije

Iako se metod zamene mo�e iskoristiti za dokaz da je rexe�e rekurentnerelacije taqno, do problema mo�e do�i prilikom izbora pretpostavke oobliku rexe�a. Crta�e stabla rekurzije, kao prilikom analize sortira�aobjedi�ava�em (sa poqetka kursa ASP) je naqin da se do�e do dobrepretpostavke. U stablu rekurzije svaki qvor predstava cenu jednog pot-problema unutar skupa rekurzivnih poziva funkcije. Sabira�em cena nasvakom nivou dobijaju se cene za pojedinaqne nivoe rekurzije, a zatim se�ihovim sabira�em dobija ukupna cena na svim nivoima rekurzije.

Page 37: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

37 3. Analiza algoritama

Slika 3.2: Konstrukcija stabla rekurzije za rekurentnu relaciju 𝑇 (𝑛) =3𝑇 (𝑛/4)+ 𝑐𝑛2. Deo (a) prikazuje 𝑇 (𝑛), xto se postupno razvija u delovima(b), (c), (d) do kompletnog stabla rekurzije. Potpuno razvijeno stablorekurzije u delu (d) ima visinu log4 𝑛, odnosno log4 𝑛+ 1 nivoa.

Najboe je koristiti stablo rekurzije za odre�iva�e oblika rexe�arekurentne relacije, a zatim dokazati da to jeste rexe�e metodom zamene.Kada se stablo rekurzije koristi za poga�a�e oblika rexe�a, obiqno sebez posledica mogu uqiniti neka zanemariva�a jer �e pretpostavenioblik rexe�a ionako kasnije biti potvr�en izvo�e�em dokaza. Ako se pakstablo rekurzije iscrta pa�ivo, bez zanemariva�a detaa, onda se onomo�e iskoristiti kao dokaz rexe�a rekurentne relacije.

Razmotrimo kao primer odre�iva�e oblika rexe�a rekurentne relacije𝑇 (𝑛) = 3𝑇 (⌊𝑛/4⌋)+Θ(𝑛2), i to gor�e granice za 𝑇 (𝑛). Poxto zaokru�iva�ena cele brojeve obiqno ne utiqe mnogo na rexe�e rekurentne relacije, onase mo�e uprostiti na oblik:

𝑇 (𝑛) = 3𝑇 (𝑛/4) + 𝑐𝑛2 (3.2)

pri qemu je ukuqena i podrazumevana konstanta 𝑐 > 0.

Page 38: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

3.3. Rexava�e rekurentnih relacija metodom stabla rekurzije38

Na slici 3.2 prikazano je kako se formira stablo rekurzije za rekurentnurelaciju (3.2). Zbog jednostavnosti pretpostavimo da je 𝑛 stepen broja 4(to je drugi primer prihvativog zanemariva�a), zbog qega su veliqinesvih potproblema celi brojevi. Na delu (a) slike je samo qvor sa 𝑇 (𝑛),koji se u delu (b) razvija u ekvivalentno stablo na osnovu (3.2). Qlan 𝑐𝑛2

u korenu predstava cenu na najvixem nivou rekurzije, a tri podstablaispod korena predstavaju cene pridru�ene potproblemima veliqine 𝑛/4.Deo (c) slike prikazuje slede�i korak u ovom procesu, u kome se razvijajusvi qvorovi sa cenom 𝑇 (𝑛/4) iz dela (b). Cena svakog od tri sina korenaje 𝑐(𝑛/4)2. Na isti naqin nastava se razvija�e svakog qvora u tri sina,u skladu sa rekurentnom relacijom.

S obzirom na to da se veliqine potproblema sma�uju za faktor 4sa svakim nivoom, veliqina potproblema na dubini 𝑖 jednaka je 𝑛/4𝑖.Veliqina poptroblema postaje 1 kada je 𝑛/4𝑖 = 1, odnosno kada je 𝑖 = log4 𝑛.Prema tome, stablo ima log4 𝑛+ 1 nivoa (na dubinama 0, 1, . . . , log4 𝑛).

Odredimo sada zbir cena na svakom nivou stabla. Svaki nivo ima triputa vixe qvorova od prethodnog, pa je broj qvorova na nivou 𝑖 jednak 3𝑖.Zbog toga xto se veliqine problema na svakom slede�em nivou sma�ujuza faktor 4, svaki qvor na nivou 𝑖 ima cenu 𝑐(𝑛/4𝑖)2, 𝑖 = 0, 1, . . . , log4 𝑛.Mno�e�em sa 3𝑖 dobija se da je ukupna cena qvorova na nivou 𝑖 jednaka3𝑖 · 𝑐 · (𝑛/4𝑖)2 = (3/16)𝑖 · 𝑐 · 𝑛2, 𝑖 = 0, 1, . . . , log4 𝑛. Na posled�em nivou log4 𝑛ima ukupno 3log4 𝑛 = 𝑛log4 3 qvorova, od kojih svaki ima cenu 𝑇 (1); ukupna�ihova cena je 𝑛log4 3𝑇 (1) = Θ(𝑛log4 3). Zbir cena svih qvorova u stablu je:

𝑇 (𝑛) =

log4 𝑛−1∑𝑖=0

(3

16

)𝑖

· 𝑐 · 𝑛2 +Θ(𝑛log4 3)

<

∞∑𝑖=0

(3

16

)𝑖

· 𝑐 · 𝑛2 +Θ(𝑛log4 3)

=1

1− (3/16)𝑐𝑛2 +Θ(𝑛log4 3)

=16

13𝑐𝑛2 +Θ(𝑛log4 3) = 𝑂(𝑛2)

Na taj naqin doxli smo do pretpostavke 𝑇 (𝑛) = 𝑂(𝑛2) o obliku rexe�arekurentne relacije 𝑇 (𝑛) = 3𝑇 (⌊𝑛/4⌋) + Θ(𝑛2). U ovom primeru koefici-jenti uz 𝑐𝑛2 qine opadaju�i geometrijski red, a suma tih koeficijenataograniqena je odozgo konstantom 16/13. Poxto je udeo korena u sumi jednak𝑐𝑛2, vidi se da koren qini znaqajan udeo cele sume.

U stvari, ako je 𝑂(𝑛2) gor�a granica rexe�a (xto �e, inaqe, bitidokazano u narednom pasusu), onda je to taqna gor�a granica jer ve� prvirekurzivni poziv ima cenu Θ(𝑛2). Sada jox ostaje da se metodom zamenedoka�e da je pretpostavka 𝑇 (𝑛) = 𝑂(𝑛2) opravdana. Ho�emo da doka�emoda je 𝑇 (𝑛) ≤ 𝑑𝑛2 za neku konstantu 𝑑 > 0. Koriste�i prethodno uvedenukonstantu 𝑐 > 0, dobijamo:

Page 39: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

39 3. Analiza algoritama

Slika 3.3: Stablo rekurzije za rekurentnu relaciju 𝑇 (𝑛) = 𝑇 (𝑛/3) +𝑇 (2𝑛/3) +𝑂(𝑛)

𝑇 (𝑛) = 3𝑇 (⌊𝑛/4⌋) + 𝑐𝑛2

≤ 3𝑑⌊𝑛/4⌋2 + 𝑐𝑛2

≤ 3𝑑(𝑛/4)2 + 𝑐𝑛2

= 3/16𝑑𝑛2 + 𝑐𝑛2 ≤ 𝑑𝑛2,

pri qemu nejednakost u posled�em koraku va�i ako i samo ako je 𝑑 ≥(16/13)𝑐.

Slede�i primer je nexto komplikovaniji. Na slici 3.3 prikazano jestablo rekurzije za rekurentnu relaciju:

𝑇 (𝑛) = 𝑇 (𝑛/3) + 𝑇 (2𝑛/3) +𝑂(𝑛)Kao i u prethodnom primeru, neka 𝑐 oznaqava konstantni faktor u

qlanu 𝑂(𝑛). Kad se saberu vrednosti na pojedinaqnim nivoima stablarekurzije, ispostava se da je na svakom nivou zbir jednak 𝑐𝑛. Najdu�iput od korena do lista je 𝑛→ (2/3)𝑛→ (2/3)2𝑛→ 1. Poxto je (2/3)𝑘𝑛 = 1za 𝑘 = log3/2 𝑛, visina stabla je log3/2 𝑛.

Intuitivno, oqekujemo da je gor�a granica za rexe�e jednaka proizvoducene nivoa i broja nivoa, tj. 𝑂(𝑐𝑛 log3/2 𝑛) = 𝑂(𝑛 log 𝑛). Na slici 3.3prikazano je samo prvih nekoliko nivoa stabla; pri tome, udeo svih nivoanije jednak 𝑐𝑛. Razmotrimo cenu listova. Ako bi stablo rekurzije bilokompletno binarno stablo visine log3/2 𝑛, bilo bi ukupno 2

log3/2 𝑛 = 𝑛log3/2 2

listova. Poxto je cena svakog lista konstantna, ukupna cena svih listovabila bi Θ(𝑛log3/2 2) xto bi, poxto je log3/2 2 > 1, bilo 𝜔(𝑛 log 𝑛)1 jer je

𝑛 log 𝑛 = 𝑜(𝑛log3/2 2).Me�utim, stablo rekurzije nije kompletno binarno stablo, pa ima ma�e

od 𝑛log3/2 2 listova. Xtavixe, kako se spuxtamo od korena, sve vixe i vixe

1𝜔-notacija slu�i za oznaqava�e do�ih granica koje nisu asimptotski bliske.

Va�i da je 𝑓(𝑛) = 𝜔(𝑔(𝑛)) akko je 𝑔(𝑛) = 𝑜(𝑓(𝑛)), tj. ako je lim𝑛→∞𝑓(𝑛)𝑔(𝑛)

= ∞

Page 40: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

3.3. Rexava�e rekurentnih relacija metodom stabla rekurzije40

unutrax�ih qvorova je odsutno iz stabla. Zbog toga nivoi koji su dalekoispod korena imaju doprinos ukupnoj sumi ma�i od 𝑐𝑛. Mogli bismo da sepotrudimo i izraqunamo zbir svih cena; me�utim, da se podsetimo, svrhastabla rekurzije je samo da do�emo do zakuqka o obliku rexe�a.

Zaista, metodom zamene mo�emo da se uverimo da je 𝑂(𝑛 log 𝑛) gor�agranica za rexe�e rekurentne relacije. Pokaza�emo da je 𝑇 (𝑛) ≤ 𝑑𝑛 log2 𝑛,gde je 𝑑 odgovaraju�a pozitivna konstanta. Pretpostavimo da tvr�e�eva�i za sve vrednosti 𝑘 < 𝑛 i poka�imo da va�i i za 𝑛.

𝑇 (𝑛) ≤ 𝑇 (𝑛/3) + 𝑇 (2𝑛/3) + 𝑐𝑛

≤ 𝑑(𝑛/3) log2(𝑛/3) + 𝑑(2𝑛/3) log2(2𝑛/3) + 𝑐𝑛

= 𝑑𝑛 log2 𝑛− 𝑑𝑛(log2 3− 2/3) + 𝑐𝑛

≤ 𝑑𝑛 log2 𝑛

xto je sigurno taqno ako je 𝑑 ≥ 𝑐/(log2 3−(2/3)). Prema tome, nema potrebeda preciznije raqunamo zbir cena qvorova u stablu rekurzije.

Page 41: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

41 3. Analiza algoritama

3.4 Probabilistiqka analiza algoritama

3.4.1 Problem zapoxava�a pomo�nika

Pretpostavimo da imamo slede�i problem: potrebno je da zaposlimojednog novog pomo�nika. Agencija nam svakog dana xae novog kandidata,mi ga intervjuixemo i na osnovu toga odluqujemo da li da ga zaposlimoili ne. Za svakog intervjuisanog kandidata agenciji pla�amo naknadu𝑐𝐼 , koja nije velika. Ako zaposlimo kandidata, troxak 𝑐𝐻 je mnogo ve�ijer moramo da otpustimo kandidata kojeg smo prethodno zaposlili, a inaknada agenciji je mnogo ve�a. Mesto pomo�nika nam je va�no pa �elimoda u svakom momentu imamo zaposlenog najboeg od svih prethodnih kan-didata. Stoga, ako ustanovimo da je neki kandidat kvalifikovaniji zaposao od teku�eg pomo�nika, moramo da teku�eg pomo�nika otpustimo i dazaposlimo novog. Pretpostavimo da su kandidati numerisani brojevimaod 1 do 𝑛. Naxa strategija prilikom zapoxava�a kandidata mo�e seopisati slede�im kodom:

𝑍𝑎𝑝𝑜𝑠𝑙𝑖𝑃𝑜𝑚𝑜𝑐𝑛𝑖𝑘𝑎(𝑛)1 𝑁𝑎𝑗𝑏𝑜𝑙𝑗𝑖← 12 for 𝑖← 2 to 𝑛 do3 intervjuixi kandidata 𝑖4 if kandidat 𝑖 je boi od kandidata 𝑁𝑎𝑗𝑏𝑜𝑙𝑗𝑖 then5 𝑁𝑎𝑗𝑏𝑜𝑙𝑗𝑖← 𝑖6 zaposli kandidata 𝑖

Ci analize ovog algoritma nije procena vremenske slo�enosti negoprocena troxkova intervjuisa�a i zapoxava�a kandidata. Iako je cianalize drugaqiji, tehnike koje se prime�uju su iste { u oba sluqaja brojese neke osnovne operacije. Ako je broj zaposlenih kandidata 𝑚, ukupnitroxkovi su 𝑂(𝑛𝑐𝐼 + 𝑚𝑐𝐻), gde su, kao xto je ve� reqeno, 𝑐𝐼 i 𝑐𝐻 redomtroxkovi intervjuisa�a, odnosno zapoxava�a kandidata. Bez obzirakoliko se kandidata zapoxava, broj intervjuisanih kandidata je uvek𝑛, xto prouzrokuje troxak 𝑛𝑐𝐼 . Prema tome, mo�emo da se ograniqimo narazmatra�e troxkova zapoxava�a 𝑚𝑐𝐻 . Ova veliqina bi�e drugaqija zasvako pokreta�e algoritma. Razmatrani scenario je model za algoritamskiproblem na koji se qesto nailazi: potrebno je da odredimo maksimum (iliminimum) elemenata niza razmatraju�i jedan po jedan element niza ipamte�i trenutnog \pobednika". Od znaqaja je koliko puta se a�uriratrenutni \pobednik".

3.4.2 Analiza najgoreg sluqaja

U najgorem sluqaju zaposli�emo svakog intervjuisanog kandidata. Doovog sluqaja dolazi ako je kandidat 𝑖 boi od svih prethodnih za svako𝑖 = 1, 2, . . . 𝑛. Prema tome, troxkovi u najgorem sluqaju iznose 𝑂(𝑛𝑐𝐻).Naravno, kandidati ne�e uvek dolaziti ovim redosledom. Mi, u stvari,nemamo kontrolu nad time kojim redosledom kandidati dolaze. Zbog togaje prirodno upitati se xta se mo�e oqekivati u tipiqnom proseqnomsluqaju.

Page 42: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

3.4. Probabilistiqka analiza algoritama 42

3.4.3 Analiza proseqnog sluqaja

Da bi se mogla izvrxiti analiza proseqnog sluqaja, mora se znatiraspodela verovatno�a mogu�ih ulaza za algoritam. Ovde se mo�e pret-postaviti da se posle intervjua svakom kandidatu mo�e pripisati ocena(realan broj). Pored toga, pretpostavi�emo da su ocene svaka dva kandidatarazliqite i da svaki poredak prvih 𝑖 kandidata prema ocenama ima istuverovatno�u 1/𝑖! (u situaciji kada o kandidatima nixta ne znamo ovo jeprirodna pretpostavka). Pod ovom pretpostavkom u kodu 𝑍𝑎𝑝𝑜𝑠𝑙𝑖𝑃𝑜𝑚𝑜𝑐𝑛𝑖𝑘𝑎kandidat 𝑖 boi je od svih prethodnih sa verovatno�om 1/𝑖 (�egovo mestona rang listi prvih 𝑖 kandidata mo�e da bude 1, 2, . . . , 𝑖 i to sa jednakimverovatno�ama 1/𝑖). Prema tome, verovatno�a da kandidat bude zaposlen uliniji 𝑖 koda je 1/𝑖 i proseqna cena koja odgovara toj liniji koda je 𝑐𝐻/𝑖.Poxto nas zanima samo cena povezana sa zapoxava�em, ukupna proseqnacena celog postupka zapoxava�a je 𝑐𝐻(1 + 1

2 + . . . + 1𝑛 ) = 𝑂(𝑐𝐻 log 𝑛)

jer je 𝐻(𝑛) = 1 + 12 + . . . + 1

𝑛 = 𝑂(log 𝑛). Vidimo da je proseqna cenazapoxava�a najboeg kandidata na opisani naqin znatno ma�a od cene𝑂(𝑐𝐻 · 𝑛) u najgorem sluqaju.

3.4.4 Randomizovani algoritmi

Videli smo kako se mo�e izvrxiti analiza proseqnog sluqaja algoritmau sluqaju da nam je poznata raspodela svih mogu�ih ulaza. Ipak, u nekimsituacijama, ova informacija nije poznata, xto spreqava izvo�e�e analizeproseqnog sluqaja. Tada je mogu�e koristiti randomizovani algoritam.

Za problem kao xto je problem zapoxava�a, u kome je od pomo�ipretpostaviti da su sve permutacije na ulazu jednako verovatne, analizaproseqnog sluqaja mo�e da vodi razvoju randomizovanog algoritma. Umestoda se pretpostava raspodela ulaza, raspodela se name�e samim algoritmom.Dakle, pre pokreta�a osnovnog algoritma pravi se sluqajna permutacijakandidata u nameri da se obezbedi svojstvo da je svaka permutacija jednakoverovatna. Iako smo modifikovali algoritam, i dae oqekujemo da i za-poslimo novog pomo�nika u proseku log 𝑛 puta. Me�utim, sada oqekujemoda ovo bude taqno za proizvoan ulaz, umesto za ulaz koji je izveden sapretpostavenom raspodelom verovatno�a.

Analizirajmo razlike izme�u analize proseqnog sluqaja i randomizo-vanih algoritama. Algoritam razmatran u prethodnom poglavu je deter-ministiqki, dakle za proizvoni ulaz broj puta koji se novi pomo�nikzapoxava je uvek isti (za svako pokreta�e algoritma nad istim ulazom).Dodatno, broj puta koji zapoxavamo novog pomo�nika se (u najve�em brojusluqajeva) razlikuje za razliqite ulaze. S druge strane, randomizovanialgoritam prvo permutuje kandidate i onda odre�uje najboeg kandidata.U ovom sluqaju, randomizacija se vrxi u samom algoritmu, a ne na ras-podeli ulaza. Za konkretni ulaz ne mo�emo re�i koliko puta se a�uriravrednost maksimuma, jer se ovaj broj (u najve�em broju sluqajeva) razlikujepri svakom pokreta�u algoritma. Svaki put kada pokrenemo algoritam,izvrxava�e zavisi od sluqajnih izbora koji su napraveni. Za ovu vrsturandomizovanih algoritama nijedan pojedinaqni ulaz ne garantuje pona-xa�e u najgorem sluqaju. Randomizovani algoritam se ponaxa loxe samoako generator sluqajnih brojeva proizvede \nesre�nu" permutaciju.

Page 43: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

43 3. Analiza algoritama

𝑅𝑎𝑛𝑑𝑜𝑚𝑖𝑧𝑜𝑣𝑎𝑛𝑖𝑍𝑎𝑝𝑜𝑠𝑙𝑖𝑃𝑜𝑚𝑜𝑐𝑛𝑖𝑘𝑎(𝑛)1 permutuj na sluqajan naqin listu kandidata2 𝑁𝑎𝑗𝑏𝑜𝑙𝑗𝑖← 13 for 𝑖← 2 to 𝑛 do4 intervjuixi kandidata 𝑖5 if kandidat 𝑖 je boi od kandidata 𝑁𝑎𝑗𝑏𝑜𝑙𝑗𝑖 then6 𝑁𝑎𝑗𝑏𝑜𝑙𝑗𝑖← 𝑖7 zaposli kandidata 𝑖

Sa ovom jednostavnom izmenom napravili smo randomizovani algoritamqije se performanse poklapaju sa onima kada se pretpostavi da su kandi-dati dati u sluqajnom poretku.

Permutova�e niza na sluqajan naqin

Mnogi randomizovani algoritmi vrxe randomizaciju ulaza permutova�emdatog ulaznog niza. Razmotri�emo dva naqina na koja se ovo mo�e posti�i.Pretpostavimo, bez gubitka opxtosti, da ulaz sadr�i elemente od 1 do𝑛 i da je ci da proizvedemo sluqajnu premutaciju datog niza. Jedanstandardan naqin da se ovo uradi jeste da se svakom elementu niza nasluqajan naqin pridru�i prioritet i da se onda niz elemenata sortirau skladu sa tim prioritetima.

𝑃𝑒𝑟𝑚𝑢𝑡𝑢𝑗𝑆𝑜𝑟𝑡𝑖𝑟𝑎𝑛𝑗𝑒𝑚(𝐴,𝑛)1 neka je 𝑃 [1..𝑛] novi niz2 for 𝑖← 1 to 𝑛 do3 𝑃 [𝑖]← 𝑟𝑎𝑛𝑑𝑜𝑚(1, 𝑛3)4 sortiraj 𝐴 korix�e�em 𝑃 kao kuqa za sortira�e

U liniji 3 generixe se sluqajan broj iz opsega od 1 do 𝑛3. Koristimoovaj opseg da bismo uqinili ma�e verovatnim doga�aj da dva prioritetaimaju istu vrednost. Pretpostavimo da su na ovaj naqin svi generisaniprioriteti jedinstveni. Najskupi deo prikazanog algoritma predstavakorak sortira�a u liniji 4 algoritma koji je slo�enosti Ω(𝑛 log 𝑛).

Drugi metod za generisa�e sluqajne permutacije jeste da se dati nizpermutuje u mestu. U 𝑖-toj iteraciji bira se element 𝐴[𝑖] na sluqajan naqiniz skupa elemenata niza 𝐴[𝑖..𝑛]. Nakon 𝑖-te iteracije 𝐴[𝑖] se vixe ne me�a.

𝑅𝑎𝑛𝑑𝑜𝑚𝑖𝑧𝑢𝑗𝑈𝑀𝑒𝑠𝑡𝑢(𝐴,𝑛)1 for 𝑖← 1 to 𝑛 do2 zameni 𝐴[𝑖] sa 𝐴[𝑟𝑎𝑛𝑑𝑜𝑚(𝑖, 𝑛)]

Prikazana procedura𝑅𝑎𝑛𝑑𝑜𝑚𝑖𝑧𝑢𝑗𝑈𝑀𝑒𝑠𝑡𝑢 je vremenske slo�enosti𝑂(𝑛).

Page 44: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo
Page 45: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Glava 4

Konstrukcija algoritama

indukcijom

4.1 Uvod

U ovom poglavu bi�e navedeni jednostavni primeri konstrukcije algori-tama korix�e�em induktivnog pristupa, koji ilustruju osnovne principei tehnike. Ideja je da se iskoristi princip domina: sve nanizane domine�e popadati ako se poruxi prva, i ako se posle ruxe�a 𝑛-te obavezno ruxi(𝑛+1)-a domina. Dakle, da bi se rexio neki problem, treba rexiti neki�egov mali sluqaj, a zatim pokazati kako se rexe�e zadatog problemamo�e konstruisati polaze�i od (rexenih) ma�ih verzija istog problema.Imaju�i na umu ovo, pa��a se mo�e skoncentrisati na nala�e�e naqinaza svo�e�e problema na ma�e probleme. Primeri koji �e biti razmotrenipokazuju da se razliqite strategije konstrukcije algoritama u suxtinisvode na primenu matematiqke indukcije.

4.2 Izraqunava�e vrednosti polinoma

Najpre �emo razmotriti jedan jednostavan problem: izraqunava�e vrednostizadatog polinoma u zadatoj taqki.

Problem. Dati su realni brojevi 𝑎𝑛, 𝑎𝑛−1,. . . , 𝑎1, 𝑎0 i realni broj 𝑥.Izraqunati vrednost polinoma 𝑃𝑛(𝑥) =

∑𝑛𝑖=0 𝑎𝑖𝑥

𝑖.

Ulazni podaci za problem su 𝑛+2 broja (𝑛+1 koeficijenata i vrednost𝑥). Induktivni pristup rexava�u problema sastoji se u svo�e�u rexe�ana rexe�e ma�eg problema. Dakle, problem pokuxavamo da svedemo nama�i, koji se zatim rexava rekurzivno. Najjednostavnije je svo�e�e nauprox�eni problem dobijen od polaznog ukla�a�em 𝑎𝑛. Tada imamo problemizraqunava�a vrednosti polinoma

𝑃𝑛−1(𝑥) = 𝑎𝑛−1𝑥𝑛−1 + 𝑎𝑛−2𝑥

𝑛−2 + · · ·+ 𝑎1𝑥+ 𝑎0.

To je isti problem, ali sa jednim parametrom ma�e.

45

Page 46: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

4.2. Izraqunava�e vrednosti polinoma 46

Induktivna hipoteza. Pretpostavimo da znamo da izraqunamo vrednostpolinoma zadatog koeficijentima 𝑎𝑛−1,. . . , 𝑎1, 𝑎0 u taqki 𝑥, tj. znamo daizraqunamo vrednost 𝑃𝑛−1(𝑥).

Ova hipoteza je osnova za rexava�e problema indukcijom. Sluqaj 𝑛 = 0(izraqunava�e vrednosti izraza 𝑎0) je trivijalan. Zatim se mora pokazatikako se polazni problem (izraqunava�e 𝑃𝑛(𝑥)) mo�e rexiti korix�e�emrexe�a ma�eg problema (vrednosti 𝑃𝑛−1(𝑥)). U ovom sluqaju je to oqigledno:treba izraqunati 𝑥𝑛, pomno�iti ga sa 𝑎𝑛 i rezultat sabrati sa 𝑃𝑛−1(𝑥):𝑃𝑛(𝑥) = 𝑎𝑛𝑥

𝑛 + 𝑃𝑛−1(𝑥). Mo�e se pomisliti da je korix�e�e indukcijeovde nepotrebno: ono samo komplikuje vrlo jednostavno rexe�e. Opisanialgoritam je ekvivalentan izraqunava�u vrednosti polinoma redom qlanpo qlan. Ispostavi�e se ipak da ovaj pristup ima svoju snagu.

Opisani algoritam je taqan, ali neefikasan, jer zahteva 𝑛+ (𝑛− 1) +· · · + 1 = 𝑛(𝑛 + 1)/2 mno�e�a i 𝑛 sabira�a. Korix�e�em indukcije nadrugi naqin dobija se boe rexe�e.

Zapa�amo da u ovom algoritmu ima mnogo ponovenih izraqunava�a:stepen 𝑥𝑛 izraqunava se svaki put "od poqetka". Veliki broj mno�e�amo�e se uxtedeti ako se pri izraqunava�u 𝑥𝑛 iskoristi 𝑥𝑛−1. Poboxa�ese realizuje ukuqiva�em izraqunava�a 𝑥𝑛−1 u induktivnu hipotezu.

Pojaqana induktivna hipoteza. Znamo da izraqunamo vrednost poli-noma 𝑃𝑛−1(𝑥) i vrednost 𝑥𝑛−1.

Ova induktivna hipoteza je jaqa, jer zahteva izraqunava�e 𝑥𝑛−1, alise lakxe proxiruje (jer je sada jednostavnije izraqunati 𝑥𝑛). Da bi seizraqunalo 𝑥𝑛, dovono je izvrxiti jedno mno�e�e. Posle toga sledi joxjedno mno�e�e sa 𝑎𝑛 i sabira�e sa 𝑃𝑛−1(𝑥). Ukupno je potrebno izvrxiti2𝑛 mno�e�a i 𝑛 sabira�a. Zanimivo je zapaziti da iako induktivnahipoteza zahteva vixe izraqunava�a, ona dovodi do sma�e�a ukupnogbroja operacija. Dobijeni algoritam izgleda dobro u svakom pogledu: e-fikasan je, jednostavan i jednostavno se realizuje. Ipak, postoji i boialgoritam. Do �ega se dolazi korix�e�em indukcije na novi, tre�i naqin.

Redukcija problema ukla�a�em najvixeg koeficijenta 𝑎𝑛 je oqigledankorak, ali to ipak nije jedina raspolo�iva mogu�nost. Umesto toga semo�e ukloniti koeficijent 𝑎0, i svesti problem na izraqunava�e vred-nosti polinoma sa koeficijentima 𝑎𝑛, 𝑎𝑛−1,. . . , 𝑎1, odnosno polinoma

𝑃𝑛−1(𝑥) =

𝑛∑𝑖=1

𝑎𝑖𝑥𝑖−1 = 𝑎𝑛𝑥

𝑛−1 + 𝑎𝑛−1𝑥𝑛−2 + · · ·+ 𝑎1.

Primetimo da je 𝑎𝑛 ovde (𝑛−1)-i koeficijent, 𝑎𝑛−1 je (𝑛−2)-i koeficijent,i tako dae. Dakle, imamo novu induktivnu hipotezu.

Induktivna hipoteza (obrnuti redosled). Umemo da izraqunamo vrednostpolinoma 𝑃𝑛−1(𝑥) sa koeficijentima 𝑎𝑛, 𝑎𝑛−1,. . . , 𝑎1 u taqki 𝑥.

Ovakva induktivna hipoteza je pogodnija jer se lakxe proxiruje. Poxtoje 𝑃𝑛(𝑥) = 𝑥𝑃𝑛−1(𝑥) + 𝑎0, za izraqunava�e 𝑃𝑛(𝑥) polaze�i od 𝑃𝑛−1(𝑥)dovono je jedno mno�e�e i jedno sabira�e. Izraqunava�e se mo�e opisatislede�im izrazom:

𝑎𝑛𝑥𝑛+𝑎𝑛−1𝑥

𝑛−1+· · ·+𝑎1𝑥+𝑎0 = ((· · · ((𝑎𝑛𝑥+𝑎𝑛−1)𝑥+𝑎𝑛−2) · · · )𝑥+𝑎1)𝑥+𝑎0,

Page 47: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

47 4. Konstrukcija algoritama indukcijom

poznatim kao Hornerova xema. U nastavku je dat pseudokod algoritma.

𝑉 𝑟𝑒𝑑𝑛𝑜𝑠𝑡 𝑝𝑜𝑙𝑖𝑛𝑜𝑚𝑎(𝑎, 𝑥)ulaz: 𝑎 = 𝑎0, 𝑎1 . . . 𝑎𝑛 (koeficijenti polinoma) i 𝑥 (realan broj)izlaz: 𝑃 (vrednost polinoma u taqki 𝑥)1 𝑃 ← 𝑎𝑛2 for 𝑖← 1 to 𝑛 do3 𝑃 ← 𝑥 · 𝑃 + 𝑎𝑛−𝑖

Slo�enost. Algoritam obuhvata 𝑛 mno�e�a, 𝑛 sabira�a i zahtevasamo jednu novu memorijsku lokaciju. Posled�i algoritam je ne samoefikasniji od prethodnih, nego je i odgovaraju�i program jednostavniji.

Primedba. Indukcija nam omogu�uje da se skoncentrixemo na proxiri-va�e rexe�a ma�ih na rexe�a ve�ih problema. Pretpostavimo da ho�emoda reximo 𝑃 (𝑛), odnosno problem 𝑃 koji zavisi od nekog parametra 𝑛(obiqno je to veliqina problema). Tada polazimo od proizvone instanceproblema 𝑃 (𝑛) i pokuxavamo da je reximo koriste�i pretpostavku daje 𝑃 (𝑛 − 1) ve� rexeno. Postoji mnogo naqina da se postavi induktivnahipoteza, a isto tako i vixe naqina da se ona iskoristi. Prikaza�emovixe takvih metoda, i demonstrirati �ihovu mo� pri konstrukciji al-goritama.

Primer izraqunava�a vrednosti polinoma ilustruje fleksibilnostkoja nam je na raspolaga�u pri korix�e�u indukcije. Ideja koja je dovelado Hornerove xeme sastoji se u tome da se ulaz obra�uje sleva udesno,umesto intutivnog redosleda zdesna ulevo. Druga uobiqajena mogu�nostizbora redosleda pojavuje se pri razmatra�u strukture u obliku stabla:ona se mo�e prolaziti odozgo nani�e ili odozdo navixe. Dae, mogu�e jeparametar 𝑛 pove�avati za dva (ili vixe), umesto samo za jedan, a postoje imnogobrojne druge mogu�nosti.Xtavixe, ponekad najboi redosled primeneindukcije nije isti za sve ulaze. Mo�e se pokazati korisnim konstrukcijaalgoritma koji bi pronalazio najboi redosled primene indukcije. Ovakvemogu�nosti ilustrova�emo nekim primerima.

4.3 Maksimalni indukovani podgraf

Posmatrajmo slede�i problem. Organizujete konferenciju za nauqnikekoji se bave raznorodnim disciplinama i imate spisak osoba koje biste�eleli da pozovete. Pretpostavka je da �e se svaki od �ih odazvati pozivuako mu se bude ukazala mogu�nost plodne razmene ideja. Za svakog nauqnikamo�ete da napravite listu onih (sa spiska) sa kojima �e on verovatnoimati interakciju. Neka je 𝑘 zadati broj. Vi biste voleli da pozovetexto je mogu�e vixe udi, a da pri tome garantujete svakome od �ihmogu�nost da razmeni misli sa bar 𝑘 drugih osoba. Vax problem nije daorganizujete te interakcije, niti da obezbedite dovono vremena za �ih.Vi jedino �elite da obezbedite �ihovo prisustvo na konferenciji. Kakoizabrati osobe koje treba pozvati? Opisani problem odgovara slede�emgrafovskom problemu. Neka je 𝐺 = (𝑉,𝐸) neusmereni graf. Graf 𝐻 =(𝑈,𝐹 ) je indukovani podgraf grafa 𝐺 ako 𝑈 ⊆ 𝑉 i 𝐹 sadr�i sve grane

Page 48: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

4.3. Maksimalni indukovani podgraf 48

iz 𝐸 kojima su oba kraja u 𝑈 , videti primer na slici 4.1. Qvorovi grafaodgovaraju nauqnicima, a grana izme�u dva qvora postoji ako odgovaraju�inauqnici mogu da razme�uju ideje. Indukovani podgraf odgovara podskupunauqnika.

d

d d

d

d𝑎

𝑏 𝑐

𝑑

𝑒 𝐺 = (𝑉,𝐸)

𝑉 = {𝑎, 𝑏, 𝑐, 𝑑, 𝑒}

𝐸 = {(𝑎, 𝑏), (𝑎, 𝑑), (𝑎, 𝑒), (𝑏, 𝑐), (𝑐, 𝑑), (𝑐, 𝑒), (𝑑, 𝑒)}

𝐻 = (𝑈,𝐹 )

𝑈 = {𝑎, 𝑑, 𝑒}

𝐹 = {(𝑎, 𝑑), (𝑎, 𝑒), (𝑑, 𝑒)}

Slika 4.1: Primer indukovanog podgrafa neusmerenog grafa. Grane suneure�eni parovi qvorova.

Problem. Za zadati neusmereni graf 𝐺 = (𝑉,𝐸) i zadati prirodnibroj 𝑘 prona�i maksimalni indukovani podgraf 𝐻 = (𝑈,𝐹 ) grafa 𝐺(tj. indukovani podgraf sa maksimalnim brojem qvorova) uz uslov dasvi qvorovi podgrafa 𝐻 imaju stepen bar 𝑘, ili ustanoviti da takavindukovani podgraf ne postoji.

Direktni pristup rexava�u ovog problema sastoji se u ukla�a�usvih qvorova stepena ma�eg od 𝑘. Posle ukla�a�a ovih qvorova, zajednosa granama koje su im susedne, stepeni preostalih qvorova se u opxtemsluqaju sma�uju. Kad stepen nekog qvora postane ma�i od 𝑘, taj qvor trebaukloniti iz grafa. Nije, me�utim, jasan redosled kojim qvorove trebaukla�ati. Treba li najpre ukloniti sve qvorove stepena < 𝑘, a zatimobra�ivati qvorove sa uma�enim stepenovima? Ili treba ukloniti jedanqvor stepena < 𝑘, pa nastaviti sa qvorovima kojima su sma�eni stepeni?(Ova dva pristupa odgovaraju pretrazi u xirinu, odnosno pretrazi udubinu). Da li �e oba pristupa dati isti rezultat? Da li �e rezultuju�igraf imati najve�i mogu�i broj qvorova? Na ova pita�a lako je datiodgovor korix�e�em slede�eg pristupa.

Umesto da algoritam posmatramo kao niz koraka koje treba izvrxitida bi se doxlo do rezultata, mo�emo da sebi postavimo za ci dokaziva�eteoreme da algoritam postoji. Potrebno je prona�i maksimalni induko-vani podgraf koji zadovoava zadate uslove.

Induktivna hipoteza. Umemo da prona�emo maksimalni indukovanipodgraf sa qvorovima stepena ≥ 𝑘 za graf sa ma�e od 𝑛 qvorova.

Treba da doka�emo da je ova "teorema" taqna za bazni sluqaj, a zatimda iz �ene taqnosti za 𝑛− 1 sledi �ena taqnost za 𝑛. Prvi netrivijalnisluqaj pojavuje se za 𝑛 = 𝑘 + 1, jer ako je 𝑛 ≤ 𝑘 onda su stepeni svihqvorova ma�i od 𝑘. Ako je 𝑛 = 𝑘 + 1 onda samo u jednom sluqaju postojiindukovani podgraf sa stepenima qvorova≥ 𝑘: to je sluqaj potpunog grafa(grafa sa svim mogu�im granama). Pretpostavimo dae da je 𝐺 = (𝑉,𝐸)proizvoan graf sa 𝑛 > 𝑘 + 1 qvorova. Ako su stepeni svih qvorova u 𝐺

Page 49: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

49 4. Konstrukcija algoritama indukcijom

ve�i ili jednaki od 𝑘, onda graf 𝐻 = 𝐺 zadovoava uslove i dokaz jezavrxen. U protivnom postoji qvor 𝑣 stepena < 𝑘. Oqigledno je da stepenqvora 𝑣 ostaje < 𝑘 i u svakom indukovanom podgrafu grafa 𝐺, pa prematome 𝑣 ne pripada ni jednom podgrafu koji zadovoava uslove problema.Dakle, 𝑣 se mo�e ukloniti iz 𝐺 zajedno sa svim �emu susednim granama,ne me�aju�i uslove teoreme. Posle ukla�a�a 𝑣 graf ima 𝑛 − 1 qvor, paprema induktivnoj hipotezi mi umemo da reximo problem do kraja.

4.4 Nala�e�e bijekcije

Neka je 𝑓 funkcija koja preslikava konaqan skup 𝐴 u samog sebe, 𝑓 : 𝐴→𝐴. Bez gubitka opxtosti mo�e se pretpostaviti da je 𝐴 = {1, 2, . . . , 𝑛}.Pretpostavamo da je funkcija 𝑓 predstavena vektorom 𝑓 du�ine 𝑛,tako da 𝑓 [𝑖] sadr�i vrednost 𝑓(𝑖) ∈ 𝐴, 𝑖 = 1, 2, . . . , 𝑛. Funkcija 𝑓 jebijekcija, ako za proizvoan element 𝑗 ∈ 𝐴 postoji element 𝑖 ∈ 𝐴 takavda je 𝑓(𝑖) = 𝑗. Funkcija se mo�e predstaviti dijagramom kao na slici 4.2,tako da svakom elementu 𝐴 odgovara po jedan levi i jedan desni qvor, agrane definixu preslikava�e. Funkcija prikazana na slici 4.2 oqiglednonije bijekcija.

b bbbbbbb

bbbbbb

7

6

5

4

3

2

1

7

6

5

4

3

2

1

~

1>

q->

1

Slika 4.2: Primer preslikava�a skupa u samog sebe.

Problem. Neka je zadat konaqan skup 𝐴 i preslikava�e 𝑓 : 𝐴 → 𝐴.Odrediti podskup 𝑆 ⊆ 𝐴 sa najve�im mogu�im brojem elemenata tako dabude 𝑓(𝑆) ⊆ 𝑆 i da restrikcija 𝑓 na 𝑆 bude bijekcija.

Ako je 𝑓 bijekcija, onda kompletan skup 𝐴 zadovoava uslove problema,pa je maksimalni podskup 𝑆 = 𝐴. Ako je pak 𝑓(𝑎) = 𝑓(𝑏) za neke 𝑎 = 𝑏,onda 𝑆 ne mo�e da sadr�i i 𝑎 i 𝑏. Na primer, skup 𝑆 u problemu saslike 4.2 ne mo�e da sadr�i oba elementa 2 i 3, jer je 𝑓(2) = 𝑓(3) = 1.Me�utim, nije svejedno koji �e element od ova dva biti eliminisan. Akona primer eliminixemo 3, onda se zbog 𝑓(1) = 3 mora eliminisati i1. Zatim se na isti naqin zbog 𝑓(2) = 1 mora eliminisati i 2. Dobijenipodskup sigurno nije maksimalan, jer je mogu�e eliminisati samo element2 umesto 1, 2 i 3. Rexe�e problema na slici 4.2 je podskup {1, 3, 5}, xto semo�e ustanoviti npr. proverom svih mogu�ih podskupova 𝑆 ⊂ 𝐴. Postavase pita�e nala�e�a opxteg metoda za odluqiva�e koje elemente trebaukuqiti u 𝑆, efikasnijeg od potpune pretrage.

Na sre�u, imamo izvestan manevarski prostor prilikom odluqiva�akako problem svesti na ma�i. Veliqina problema mo�e se sma�iti bilonala�e�em elementa koji pripada skupu 𝑆, bilo nala�e�em elementakoji ne pripada skupu 𝑆. Ispostava se da je druga mogu�nost boa.Koristi�emo slede�u jednostavnu induktivnu hipotezu.

Page 50: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

4.4. Nala�e�e bijekcije 50

Induktivna hipoteza. Znamo da reximo problem za skupove sa 𝑛 − 1elemenata.

Baza indukcije je trivijalna: ako skup 𝐴 ima jedan element, on semora preslikavati u sebe, pa je 𝑓 na 𝐴 bijekcija. Pretpostavimo dae daimamo proizvoan skup 𝐴 od 𝑛 elemenata i da tra�imo podskup 𝑆 kojizadovoava uslove problema. Tvrdimo da ako element 𝑎 ne pripada skupu𝑓(𝐴), onda 𝑎 ne mo�e pripadati 𝑆; drugim reqima, element 𝑎 za koji uodgovaraju�i qvor na desnoj strani dijagrama ne ulazi ni jedna grana, nemo�e biti u 𝑆. Zaista, iz uslova problema sledi da je 𝑓(𝑆) = 𝑆, a to je,ako se pretpostavi da 𝑎 ∈ 𝑆 | nemogu�e, jer po pretpostavci 𝑎 /∈ 𝑓(𝑆).Dakle, ako postoji takav element 𝑎, mi ga eliminixemo iz skupa. Sadaimamo skup 𝐴′ = 𝐴 ∖ {𝑎} sa 𝑛 − 1 elementom, koji 𝑓 preslikava u samogsebe; prema induktivnoj hipotezi mi znamo da reximo problem sa skupom𝐴′. Ako takvo 𝑎 ne postoji, onda je preslikava�e bijekcija, i problem jerexen.

Suxtina ovog rexe�a je da se 𝑎 mora ukloniti. Dokazali smo da 𝑎 nemo�e pripadati 𝑆. U tome je snaga indukcije: onog trenutka kad se elementukloni i time sma�i veliqina problema, zadatak je rexen. Pri tome semora voditi raquna da ma�i problem bude potpuno isti kao polazni,izuzimaju�i veliqinu. Jedini uslov koji 𝑓 i 𝐴 treba da zadovoavajuje 𝑓(𝐴) ⊆ 𝐴. Ovaj uslov zadovoen je i na skupu 𝐴′ = 𝐴 ∖ {𝑎}, jer se nijedan element ne preslikava u 𝑎. U trenutku kad vixe nema elemenata kojise mogu ukloniti, skup 𝑆 je prona�en.

Realizacija. Algoritam smo opisali kao rekurzivnu proceduru. U sva-kom koraku pronalazimo element u koga se ni jedan drugi ne preslikava,ukla�amo ga i nastavamo rekurzivno. Realizacija algoritma ipak nemora da bude rekurzivna. Svakom elementu 𝑖, 1 ≤ 𝑖 ≤ 𝑛 pridru�ujese brojaq 𝑐[𝑖], qija je poqetna vrednost jednaka broju elemenata koji sepreslikavaju u 𝑖. Vrednosti 𝑐[𝑖] mogu se izraqunati u 𝑛 koraka prolaze�ikroz vektor 𝑓 i inkrementiraju�i (pove�avaju�i za jedan) pri tome odgo-varaju�e brojaqe. Zatim se u red stavaju svi elementi kojima je vrednostbrojaqa dobila vrednost 0. U svakom koraku se prvi element 𝑗 iz redaukla�a iz reda i iz skupa, dekrementira se 𝑐[𝑓 [𝑗]], a ako 𝑐[𝑓 [𝑗]] dobijevrednost 0, 𝑓 [𝑗] se ubacuje u red. Rexava�e je zavrxeno u trenutku kad jered prazan.

𝐵𝑖𝑗𝑒𝑘𝑐𝑖𝑗𝑎(𝑓, 𝑛)ulaz: 𝑓 (niz prirodnih brojeva izme�u 1 i 𝑛)izlaz: 𝑆 (podskup ulaznog skupa takav da je 𝑓 bijekcija na 𝑆)1 𝑆 ← 𝐴 {𝐴 = {1, 2, . . . 𝑛}}2 for 𝑗 ← 1 to 𝑛 do 𝑐[𝑗]← 03 for 𝑗 ← 1 to 𝑛 do inkrementiraj 𝑐[𝑓 [𝑗]]4 for 𝑗 ← 1 to 𝑛 do5 if 𝑐[𝑗] = 0 then stavi 𝑗 u 𝑆𝑝𝑖𝑠𝑎𝑘 {red elemenata za eliminaciju}6 while 𝑆𝑝𝑖𝑠𝑎𝑘 nije prazan do7 skini 𝑖 sa poqetka reda 𝑆𝑝𝑖𝑠𝑎𝑘8 𝑆 ← 𝑆 ∖ {𝑖}9 𝑐[𝑓 [𝑖]] = 𝑐[𝑓 [𝑖]]− 110 if 𝑐[𝑓 [𝑖]] = 0 then stavi 𝑓 [𝑖] u 𝑆𝑝𝑖𝑠𝑎𝑘

Page 51: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

51 4. Konstrukcija algoritama indukcijom

Nije texko proveriti da se za ulaz predstaven na slici 4.2 dobija𝑆 = {1, 3, 5}.Slo�enost. Za uvodni deo (inicijalizaciju) treba izvrxiti 𝑂(𝑛) ko-raka. Svaki element se u red mo�e staviti najvixe jednom, a operacijepotrebne da se element ukloni iz reda izvrxavaju se za vreme ograniqenokonstantom. Prema tome, ukupan broj koraka je 𝑂(𝑛).

4.5 Problem pronala�e�a zvezde

Slede�i primer je interesantan po tome xto za rexava�e problema nijeneophodno pregledati sve ulazne podatke, pa qak ni �ihov znaqajan deo.Me�u 𝑛 osoba zvezda je osoba koja nikoga ne poznaje, a koju svi ostalipoznaju. Problem je identifikovati zvezdu (ako ona postoji) postavaju�ipita�a oblika "Izvinite, da li poznajete onu osobu?" Pretpostava seda su svi odgovori taqni, a da �e qak i zvezda odgovarati na pita�a. Cije minimizirati ukupan broj pita�a. Poxto parova osoba ima ukupno𝑛(𝑛 − 1)/2, u najgorem sluqaju treba postaviti 𝑛(𝑛 − 1) pita�a, ako sepita�a postavaju bez neke strategije. Na prvi pogled nije jasno mo�e lise �eeni ci posti�i sa garantovano ma�im brojem postavenih pita�a.

Problem se mo�e preformulisati u grafovski. Formiramo usmerenigraf sa qvorovima koji odgovaraju osobama, u kome grana od osobe 𝐴 kaosobi 𝐵 postoji ako 𝐴 poznaje 𝐵. Zvezda odgovara ponoru grafa, qvoruu koji ulazi 𝑛 − 1 grana, a iz koga ne izlazi ni jedna grana. Jasno je dagraf mo�e imati najvixe jedan ponor. Instanca problema se opisuje 𝑛×𝑛matricom povezanosti 𝑀 , qiji element 𝑀𝑖𝑗 je jednak 1 ako osoba 𝑖 poznajeosobu 𝑗, odnosno 0 u protivnom; dijagonalni elementi su jednaki nuli.

Problem. Data je 𝑛×𝑛 matrica povezanosti𝑀 . Ustanoviti da li postojiindeks 𝑖, takav da su u 𝑀 svi elementi 𝑖-te kolone (sem 𝑖-tog) jednaki 1, ida su svi elementi 𝑖-te vrste jednaki 0.

Bazni sluqaj sa dve osobe je jednostavan. Posmatrajmo kao i obiqnorazliku izme�u problema sa 𝑛− 1 osobom i problema sa 𝑛 osoba. Pretpo-stavamo da znamo da prona�emo zvezdu me�u prvih 𝑛−1 osoba indukcijom.Poxto mo�e da postoji najvixe jedna zvezda, postoje tri mogu�nosti:

1. zvezda je jedna od prvih 𝑛− 1 osoba;

2. zvezda je 𝑛-ta osoba;

3. zvezda ne postoji.

Prvi sluqaj je najjednostavniji: treba samo proveriti da li 𝑛-ta osobapoznaje zvezdu, odnosno da li je taqno da zvezda ne poznaje 𝑛-tu osobu.Preostala dva sluqaja su te�a, jer da bi se proverilo da li je 𝑛-ta osobazvezda, treba postaviti 2(𝑛 − 1) pita�a. Ako postavimo 2(𝑛 − 1) pita�au 𝑛-tom koraku, onda �e ukupan broj pita�a biti 𝑛(𝑛− 1), xto ho�emo daizbegnemo. Potrebno je dakle promeniti pristup problemu.

Ideja je da se problem posmatra "unazad". Poxto je texko identifi-kovati zvezdu, pokuxajmo da prona�emo osobu koja nije zvezda: u svakomsluqaju, broj ne-zvezda mnogo je ve�i od broja zvezda. Ako eliminixemonekoga iz razmatra�a, parametar 𝑛 koji definixe veliqinu problema

Page 52: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

4.5. Problem pronala�e�a zvezde 52

sma�uje se na 𝑛 − 1. Pri tome uopxte nije bitno koga �emo eliminisati!Pretpostavimo da osobu 𝐴 pitamo da li poznaje osobu 𝐵. Ako 𝐴 poznaje𝐵, onda 𝐴 nije zvezda, a ako pak 𝐴 ne poznaje 𝐵, onda 𝐵 nije zvezda. U obasluqaja se jedna osoba eliminixe postava�em samo jednog pita�a!

Ako se sada vratimo na tri mogu�a sluqaja pri prelasku sa 𝑛 − 1na 𝑛, vidimo da je novost u tome da 𝑛-tu osobu ne biramo proizvono.Eliminacijom osobe 𝐴 ili 𝐵 problem svodimo na sluqaj sa 𝑛− 1 osobom,pri qemu smo sigurni da do sluqaja 2. ne�e do�i, jer eliminisana osobane mo�e biti zvezda. Ako je nastupio sluqaj 3, odnosno nema zvezde me�uprvih 𝑛 − 1 osoba, onda nema zvezde ni me�u svih 𝑛 osoba. Ostaje prvisluqaj, koji je lak: ako me�u prvih 𝑛 − 1 osoba postoji zvezda, onda se sadva dopunska pita�a mo�e proveriti da li je to zvezda i za kompletanskup. Ako nije, onda nema zvezde.

Algoritam se sastoji u tome da pitamo osobu 𝐴 da li poznaje osobu 𝐵i eliminixemo ili osobu 𝐴 ili osobu 𝐵, zavisno od dobijenog odgovora.Neka je eliminisana npr. osoba 𝐴. Indukcijom (rekurzivno) se pronalazizvezda me�u preostalih 𝑛−1 osoba. Ako me�u �ima nema zvezde, rexava�eje zavrxeno. U protivnom, proverava se da li je taqno da 𝐴 poznaje zvezdu,a da zvezda ne poznaje 𝐴.

Realizacija. Kao i u sluqaju algoritma iz prethodnog odeka, efikasnijeje realizovati algoritam za nala�e�e zvezde iterativno, nego rekurzivno.Algoritam se deli u dve faze. U prvoj fazi se eliminixu sve osobe semjednog kandidata za zvezdu, a druga faza je neophodna da se ustanovida li kandidat jeste zvezda. Poqi�emo sa 𝑛 kandidata, za koje mo�emoda pretpostavimo da su smexteni na stek. Za svaki par kandidata mimo�emo da eliminixemo jednog, pita�em da li poznaje drugog. Poqi�emouzimaju�i prva dva kandidata sa steka i eliminixu�i jednog od �ih.Dae u svakom koraku formiramo par od preostalog kandidata i (sve dokje stek neprazan) naredne osobe sa steka, i eliminixemo jednog od �ih. Utrenutku kad stek postane prazan, imamo samo jednog kandidata. Zatim seproverava da li je taj kandidat zvezda. Stek je realizovan eksplicitnokorix�e�em indeksa 𝑖, 𝑗, i 𝑁𝑎𝑟𝑒𝑑𝑛𝑖.

𝑍𝑣𝑒𝑧𝑑𝑎(𝑃𝑜𝑧𝑛𝑎𝑗𝑒)ulaz: 𝑃𝑜𝑧𝑛𝑎𝑗𝑒 (𝑛× 𝑛 Bulova matrica sa nulama na dijagonali)izlaz: 𝑍𝑣𝑒𝑧𝑑𝑎1 𝑖← 1; {osoba 𝐴}2 𝑗 ← 2; {osoba 𝐵}3 𝑁𝑎𝑟𝑒𝑑𝑛𝑖← 3; {slede�i koji �e se proveravati}4 {prva faza: eliminixu se svi kandidati osim jednog}5 while 𝑁𝑎𝑟𝑒𝑑𝑛𝑖 ≤ 𝑛+ 1 do6 if 𝑃𝑜𝑧𝑛𝑎𝑗𝑒[𝑖, 𝑗] then 𝑖← 𝑁𝑎𝑟𝑒𝑑𝑛𝑖 {eliminacija 𝑖}7 else 𝑗 ← 𝑁𝑎𝑟𝑒𝑑𝑛𝑖 {eliminacija 𝑗}8 𝑁𝑎𝑟𝑒𝑑𝑛𝑖← 𝑁𝑎𝑟𝑒𝑑𝑛𝑖+ 19 {po izlasku iz pete je ili 𝑖 = 𝑛+ 1 ili 𝑗 = 𝑛+ 1}10 if 𝑖 = 𝑛+ 1 then 𝐾𝑎𝑛𝑑𝑖𝑑𝑎𝑡← 𝑗11 else 𝐾𝑎𝑛𝑑𝑖𝑑𝑎𝑡← 𝑖12 {druga faza: provera da li je 𝐾𝑎𝑛𝑑𝑖𝑑𝑎𝑡 zvezda }13 𝐽𝑒𝑠𝑡𝑒← 𝑡𝑟𝑢𝑒 {𝑡𝑟𝑢𝑒 ako 𝐾𝑎𝑛𝑑𝑖𝑑𝑎𝑡 jeste zvezda}14 𝑘 ← 1

Page 53: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

53 4. Konstrukcija algoritama indukcijom

15 while 𝐽𝑒𝑠𝑡𝑒 and 𝑘 ≤ 𝑛 do16 if 𝑃𝑜𝑧𝑛𝑎𝑗𝑒[𝐾𝑎𝑛𝑑𝑖𝑑𝑎𝑡, 𝑘] then 𝐽𝑒𝑠𝑡𝑒← 𝑓𝑎𝑙𝑠𝑒17 if not 𝑃𝑜𝑧𝑛𝑎𝑗𝑒[𝑘,𝐾𝑎𝑛𝑑𝑖𝑑𝑎𝑡] then18 if 𝐾𝑎𝑛𝑑𝑖𝑑𝑎𝑡 = 𝑘 then 𝐽𝑒𝑠𝑡𝑒← 𝑓𝑎𝑙𝑠𝑒19 𝑘 ← 𝑘 + 120 if 𝐽𝑒𝑠𝑡𝑒 then 𝑍𝑣𝑒𝑧𝑑𝑎← 𝐾𝑎𝑛𝑑𝑖𝑑𝑎𝑡21 else 𝑍𝑣𝑒𝑧𝑑𝑎← 0 {nema zvezde}

Slo�enost. Postava se najvixe 3(𝑛− 1) pita�a: 𝑛− 1 pita�a u prvojfazi da bi se eliminisala 𝑛−1 osoba, i najvixe 2(𝑛−1) pita�a za proveruda li je preostali kandidat zvezda. Primetimo da veliqina ulaza nije𝑛, nego 𝑛(𝑛 − 1), broj elemenata matrice. Prikazano rexe�e pokazuje daje mogu�e odrediti zvezdu pregledaju�i najvixe 𝑂(𝑛) elemenata matricepovezanosti, iako je jasno da rexe�e mora bitno da zavisi od svih 𝑛(𝑛−1)elemenata matrice.

4.6 Primer primene razlaga�a: maksimum skupa pravougaonika

Neka su 𝐿, 𝐷 i 𝑉 realni brojevi takvi da je 𝐿 < 𝐷 i 𝑉 > 0. Pravougaonafunkcija (pravougaonik) sa parametrima (𝐿,𝐷, 𝑉 ) je funkcija

𝑓𝐿,𝐷,𝑉 (𝑥) =

{0, 𝑥 < 𝐿 ili 𝑥 ≥ 𝐷𝑉, 𝐿 ≤ 𝑥 < 𝐷

.

Problem. Dato je 𝑛 pravougaonika 𝑓𝐿𝑖,𝐷𝑖,𝑉𝑖(𝑥), 𝑖 = 1, 2, . . . , 𝑛. Potrebnoje odrediti "konturu" ovog skupa pravougaonika, odnosno funkciju

𝑓(𝑥) = max {𝑓𝐿𝑖,𝐷𝑖,𝑉𝑖(𝑥) | 𝑖 = 1, 2, . . . , 𝑛}

Primer ulaza i izlaza prikazan je na slici 4.3: ulaz su qetiri pravo-ugaonika (1, 4, 3), (2, 6, 4), (3, 8, 2) i (7, 10, 3), slika 4.3(a), a rezultuju�akontura prikazana je na slici 4.3(b). Izlazna funkcija 𝑓(𝑥) mo�e seopisati skupom intervala na kojima ona ima konstantnu vrednost, i vred-nostima u tim intervalima. Drugim reqima, 𝑓(𝑥) se zadaje nizom parova(𝑥𝑖, 𝑣𝑖), 𝑖 = 1, 2, . . . , 𝑘 (pri qemu je 𝑣𝑘 = 0), tako da je 𝑓(𝑥) = 𝑣𝑖 za 𝑥𝑖 ≤ 𝑥 <𝑥𝑖+1, 𝑖 = 1, 2, . . . , 𝑘. Zbog jednostavnosti pretpostava da je jox 𝑥0 = −∞,𝑣0 = 0, 𝑥𝑘+1 = ∞. U primeru na slici 4.3(b) funkcija 𝑓(𝑥) opisuje senizom parova (1, 3), (2, 4), (6, 2), (7, 3), (10, 0).

1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10(b)(a)

4

3

2

1

4

3

2

1

Slika 4.3: Primer ulaza i izlaza za problem nala�e�a maksimuma skupapravougaonika: (a) ulaz; (b) izlaz.

Page 54: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

4.6. Primer primene razlaga�a: maksimum skupa

pravougaonika 54

Direktni pristup rexava�u ovog problema zasniva se na proxiriva�urexe�a korak po korak, tj. proxiriva�u rexe�a za prvih 𝑛−1 pravouga-onika novim, 𝑛-tim pravougaonikom. Baza indukcije 𝑛 = 1 je jednostavna:pravougaonik 𝑓𝐿1,𝐷1,𝑉1(𝑥) pretvara se u funkciju 𝑓(𝐿1,𝑉1),(𝐷1,0)(𝑥). Da bise maksimumu

𝑓𝑛−1(𝑥) = 𝑓(𝑥1,𝑣1),(𝑥2,𝑣2),...,(𝑥𝑘,𝑣𝑘)(𝑥)

prikuqio 𝑛-ti pravougaonik 𝑓𝐿𝑛,𝐷𝑛,𝑉𝑛(𝑥), treba prona�i takve indekse 𝑖,

𝑗, da je 𝑥𝑖 ≤ 𝐿𝑛 < 𝑥𝑖+1, 𝑥𝑗 ≤ 𝐷𝑛 < 𝑥𝑗+1, 0 ≤ 𝑖 ≤ 𝑗 ≤ 𝑘: vrednost funkcije𝑓𝑛−1(𝑥) mo�e se pri prelasku na 𝑓𝑛(𝑥) promeniti samo u onim intervalimakonstantnosti sa kojima interval [𝐿𝑖, 𝐷𝑖) ima neprazan presek. Novi maksimumje

𝑓𝑛(𝑥) =

{𝑓𝑛−1(𝑥), 𝑥 < 𝐿𝑛 ili 𝑥 ≥ 𝐷𝑛

max{𝑓𝑛−1(𝑥), 𝑉𝑛}, 𝐿𝑛 ≤ 𝑥 < 𝐷𝑛.

Intervali konstantnosti [𝑥𝑖, 𝑥𝑖+1) i [𝑥𝑗 , 𝑥𝑗+1) funkcije 𝑓𝑛−1(𝑥) u opxtemsluqaju bivaju taqkama 𝐿𝑛 i𝐷𝑛 podeeni na podintervale [𝑥𝑖, 𝐿𝑛), [𝐿𝑛, 𝑥𝑖+1),odnosno [𝑥𝑗 , 𝐷𝑛), [𝐷𝑛, 𝑥𝑗+1), u kojima je vrednost 𝑓𝑛(𝑥) konstantna; poredtoga, u intervalima [𝑥𝑙, 𝑥𝑙+1), 𝑙 = 𝑖 + 1, . . . , 𝑗 − 1 u kojima 𝑓𝑛−1(𝑥) imavrednost ma�u od 𝑉𝑛, 𝑓𝑛(𝑥) dobija novu (u odnosu na 𝑓𝑛−1(𝑥)) vrednost 𝑉𝑛.U primeru na slici 4.4 je 𝑛 = 5, (𝐿𝑛, 𝐷𝑛, 𝑉𝑛) = (5, 9, 3.5), i

𝑓𝑛−1(𝑥) = 𝑓(1,3),(2,4),(6,2),(7,3),(10,0)(𝑥),

𝑓𝑛(𝑥) = 𝑓(1,3),(2,4),(6,3.5),(9,3),(10,0)(𝑥).

1 2 3 4 5 6 7 8 9 10

4

3

2

1

Slika 4.4: Dodava�e novog pravougaonika maksimumu prethodnih 𝑛−1 saslike 4.3.

Ovaj algoritam je korektan, ali nije efikasan: dodava�e 𝑛-tog pravo-ugaonika funkciji 𝑓𝑛−1(𝑥) zahteva 𝑂(𝑛) koraka, pa je ukupna slo�enost𝑂(𝑛2). Algoritam se mo�e usavrxiti primenom metoda razlaga�a (divide-and-conquer) . Umesto prelaska sa 𝑛− 1 na 𝑛, efikasnije je proxirivatirexe�e sa 𝑛/2 na 𝑛 pravougaonika. Bazni sluqaj je ve� razmotren. Kao xtosmo videli ranije, rexe�e diferencne jednaqine 𝑇 (𝑛) = 𝑇 (𝑛− 1) + 𝑐𝑛 je𝑇 (𝑛) = 𝑂(𝑛2), dok je rexe�e jednaqine 𝑇 (𝑛) = 2𝑇 (𝑛/2)+𝑐𝑛 dato sa 𝑇 (𝑛) =𝑂(𝑛 log 𝑛). Dakle, ako podelimo problem na dva jednaka potproblema idobijena rexe�a potproblema objedinimo za linearno vreme, onda je slo-�enost algoritma 𝑂(𝑛 log 𝑛).

U problemu sa pravougaonicima razlaga�e se zasniva na zapa�a�u daje za dodava�e novog pravougaonika funkciji 𝑓𝑛−1(𝑥) potrebno u najgoremsluqaju linearno vreme, a da se za linearno vreme mogu objediniti idve razliqite funkcije 𝑓 ′

𝑛/2(𝑥) i 𝑓 ′′𝑛/2(𝑥), rexe�a dva potproblema za po

𝑛/2 pravougaonika. Za asimptotski isto vreme posti�e se mnogo vixekoriste�i drugi pristup. Dve u delovima konstantne funkcije mogu se

Page 55: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

55 4. Konstrukcija algoritama indukcijom

kombinovati u osnovi istim algoritmom kojim je kombinovan jedan pra-vougaonik sa jednom takvom funkcijom (slika 4.5). Prekidne taqke dvejufunkcija 𝑓 ′

𝑛/2(𝑥) i 𝑓 ′′𝑛/2(𝑥) se prolaze istovremeno sleva u desno, identi-

fikuju se 𝑥-koordinate krajeva intervala konstantnosti funkcije 𝑓𝑛(𝑥)i odre�uju vrednosti 𝑓𝑛(𝑥) u tim intervalima. Objedi�ava�e se izvrxavaza linearno vreme, pa je slo�enost kompletnog algoritma 𝑂(𝑛 log 𝑛) unajgorem sluqaju.

1 2 3 4 5 6 7 8 9 10 11

1

2

3

4

5

Slika 4.5: Odre�iva�e maksimuma dve u delovima konstantne funkcije.

4.7 Izraqunava�e faktora ravnote�e binarnog stabla

Neka je 𝑇 binarno stablo sa korenom 𝑟. Visina qvora 𝑣 je rastoja�e od𝑣 do najdaeg potomka. Visina stabla je visina �egovog korena. Faktorravnote�e qvora 𝑣 definixe se kao razlika visina �egovog levog idesnog podstabla; za stablo koje nedostaje, smatra se da ima visinu -1. Naslici 4.6 prikazano je binarno stablo kod koga je uz svaki qvor upisanpar ℎ/𝑏, gde je ℎ visina qvora, a 𝑏 �egov faktor ravnote�e.

c cc c c

c c cc1/1 1/− 1

2/0

3/0

2/− 2

1/1

Slika 4.6: Binarno stablo sa oznakama ℎ/𝑏 uz unutrax�e qvorove (ℎ {visina, 𝑏 { faktor ravnote�e qvora).

Problem. Za zadato stablo 𝑇 sa 𝑛 qvorova izraqunati faktore ravnote�esvih qvorova.

Pokuxa�emo sa induktivnim pristupom i najjednostavnijom induktivnomhipotezom.

Induktivna hipoteza. Znamo da izraqunamo faktore ravnote�e svihqvorova u stablima sa < 𝑛 qvorova.

Bazni sluqaj 𝑛 = 1 je trivijalan. Ako je dato stablo sa 𝑛 > 1 qvorova,mo�emo da uklonimo koren, zatim da reximo problem (induktivno) zadva podstabla koja su preostala. Opredelili smo se za ukla�a�e korena

Page 56: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

4.8. Nala�e�e maksimalnog uzastopnog podniza 56

zbog toga xto faktor ravnote�e qvora 𝑣 zavisi samo od qvorova ispod 𝑣.Zbog toga znamo faktore ravnote�e svih qvorova izuzev korena. Me�utim,faktor ravnote�e korena zavisi ne od faktora ravnote�e, nego od visina�egovih sinova. Zakuqujemo da u ovom sluqaju jednostavna indukcija nerexava problem. Potrebno je da znamo visine sinova korena. Ideja je danala�e�e visina qvorova prikuqimo polaznom problemu.

Pojaqana induktivna hipoteza. Znamo da izraqunamo faktore ravno-te�e i visine svih qvorova u stablima koja imaju < 𝑛 qvorova.

Bazni sluqaj je ponovo trivijalan. Kad sada posmatramo koren pro-izvonog stabla, �egov faktor ravnote�e mo�emo lako da odredimo kaorazliku visina �egovih sinova. Mo�emo da odredimo i visinu korena: toje ve�a od visina �egovih sinova, uve�ana za jedan.

Karakteristika ovog algoritma je da on rexava nexto opxtiji problem.Umesto da raqunamo samo faktore ravnote�e, mi izraqunavamo i visineqvorova. Ispostava se da je opxtiji problem lakxi, jer se visine lakoraqunaju. Ako je rexe�e opxtije (jer je problem proxiren), onda induk-tivni korak mo�e biti jednostavniji, jer posedujemo sna�nija sredstva.Uobiqajena grexka pri rexava�u xireg problema je da se zaboravi napostoja�e dva parametra, i da se svaki od �ih mora posebno izraqunati.

4.8 Nala�e�e maksimalnog uzastopnog podniza

Problem. Zadat je niz 𝑥1, 𝑥2,. . . , 𝑥𝑛 realnih brojeva (ne obavezno pozi-tivnih). Odrediti podniz 𝑥𝑖, 𝑥𝑖+1,. . . , 𝑥𝑗 uzastopnih elemenata sa najve�ommogu�om sumom.

Za ovakav podniz re�i �emo da je maksimalni podniz. Na primer, unizu (2,−3, 1.5,−1, 3,−2,−3, 3) maksimalni podniz je 1.5,−1, 3, sa sumom3.5. Mo�e da postoji vixe maksimalnih podnizova datog niza. Ako su sviqlanovi niza negativni, onda je maksimalni podniz prazan (po definiciji,suma praznog niza je 0). Voleli bismo da imamo algoritam koji rexavaovaj problem i pregleda (prolazi niz redom sleva u desno) niz samo jednom.

Induktivna hipoteza. Znamo da na�emo maksimalni podniz u nizovimadu�ine < 𝑛.

Za 𝑛 = 1 maksimalni podniz je broj 𝑥1 ako je 𝑥1 ≥ 0, odnosno prazanpodniz ako je 𝑥1 < 0. Posmatrajmo niz 𝑆 = (𝑥1, 𝑥2, . . . , 𝑥𝑛) du�ine 𝑛 > 1.Prema induktivnoj hipotezi mi umemo da prona�emo maksimalni podniz𝑆′𝑀 niza 𝑆′ = (𝑥1, 𝑥2, . . . , 𝑥𝑛−1). Ako je 𝑆′

𝑀 prazan podniz, onda su svibrojevi u nizu 𝑆′ negativni, pa ostaje da se razmotri samo 𝑥𝑛. Pretpostavimosada da je 𝑆′

𝑀 = (𝑥𝑖, 𝑥𝑖+1, . . . , 𝑥𝑗) za neke indekse 𝑖 i 𝑗 takve da je 1 ≤ 𝑖 ≤𝑗 ≤ 𝑛 − 1. Ako je 𝑗 = 𝑛 − 1 (odnosno maksimalni podniz je sufiks), ondaje lako ovo rexe�e proxiriti na 𝑆: ako je broj 𝑥𝑛 pozitivan, onda onprodu�uje 𝑆′

𝑀 , a u protivnom podniz 𝑆′𝑀 je maksimalan i u 𝑆. Me�utim,

ako je 𝑗 < 𝑛− 1, onda postoje dve mogu�nosti. Ili 𝑆′𝑀 ostaje maksimalni

podniz u 𝑆, ili postoji drugi podniz koji nije maksimalan u 𝑆′, ali posledodava�a 𝑥𝑛 postaje maksimalan u 𝑆.

Kuqna ideja je da se pojaqa induktivna hipoteza. Ona �e bitidemonstrirana na primeru nala�e�a maksimalnog podniza, a zatim �e

Page 57: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

57 4. Konstrukcija algoritama indukcijom

nexto opxtije biti razmotrena u slede�em odeku. Problem sa razmotrenominduktivnom hipotezom je u tome xto 𝑥𝑛 mo�e da produ�i podniz kojinije maksimalan u 𝑆′ i tako formira novi maksimalni podniz u 𝑆. Prematome, nije dovono samo poznava�e maksimalnog podniza u 𝑆′. Me�utim,𝑥𝑛 mo�e da produ�i samo podniz koji se zavrxava sa 𝑥𝑛−1, odnosno sufiksniza 𝑆′. Pretpostavimo da smo pojaqali induktivnu hipotezu tako daobuhvati i nala�e�e maksimalnog sufiksa, oznaqenog sa 𝑆′

𝐸 = (𝑥𝑘, 𝑥𝑘+1, . . . , 𝑥𝑛−1).

Pojaqana induktivna hipoteza. U nizovima du�ine < 𝑛 umemo daprona�emo maksimalni podniz, i maksimalni sufiks.

Ako za podniz 𝑆′ znamo oba ova podniza, algoritam postaje jasan. Mak-simalni sufiks proxirujemo brojem 𝑥𝑛. Ako je dobijena suma ve�a od sume(globalno) maksimalnog podniza, onda imamo novi maksimalni podniz(tako�e i novi maksimalni sufiks). U protivnom, zadr�avamo prethodnimaksimalni podniz. Posao time nije zavrxen: potrebno je odrediti inovi maksimalni sufiks. U opxtem sluqaju novi maksimalni sufiks sene dobija uvek proxiriva�em starog brojem 𝑥𝑛. Mo�e se dogoditi da jemaksimalni sufiks koji se zavrxava sabirkom 𝑥𝑛 negativan. Tada je novimaksimalni sufiks ustvari prazan podniz, sa sumom 0.

𝑀𝑎𝑥 𝑢𝑧𝑎𝑠𝑡 𝑝𝑜𝑑𝑛𝑖𝑧(𝑋,𝑛)ulaz: 𝑋 (niz du�ine 𝑛)izlaz: 𝐺𝑙𝑜𝑏 𝑚𝑎𝑥 (suma maksimalnog podniza)1 𝐺𝑙𝑜𝑏 𝑚𝑎𝑥← 0 {poqetna vrednost globalno maksimalne sume}2 𝑆𝑢𝑓 𝑚𝑎𝑥← 0 {poqetna vrednost sume maksimalnog sufiksa}3 for 𝑖← 1 to 𝑛 do4 if 𝑥[𝑖] + 𝑆𝑢𝑓 𝑚𝑎𝑥 > 𝐺𝑙𝑜𝑏 𝑚𝑎𝑥 then5 𝑆𝑢𝑓 𝑚𝑎𝑥← 𝑆𝑢𝑓 𝑚𝑎𝑥+ 𝑥[𝑖]6 𝐺𝑙𝑜𝑏 𝑚𝑎𝑥← 𝑆𝑢𝑓 𝑚𝑎𝑥7 elseif 𝑥[𝑖] + 𝑆𝑢𝑓 𝑚𝑎𝑥 > 0 then8 𝑆𝑢𝑓 𝑚𝑎𝑥← 𝑆𝑢𝑓 𝑚𝑎𝑥+ 𝑥[𝑖]9 else 𝑆𝑢𝑓 𝑚𝑎𝑥← 0

4.9 Pojaqava�e induktivne hipoteze

Pojaqava�e induktivne hipoteze je jedna od najva�nijih tehnika za doka-ziva�e teorema indukcijom. Prilikom tra�e�a dokaza qesto se nailazina slede�u situaciju. Neka je teorema koju treba dokazati oznaqena sa 𝑃 .Induktivna hipoteza mo�e se oznaqiti sa 𝑃 (< 𝑛), a dokaz teoreme svodise na dokaziva�e taqnosti tvr�e�a 𝑃 (< 𝑛) ⇒ 𝑃 (𝑛). U mnogo sluqajevamo�e se uvesti dopunska pretpostavka 𝑄, koja olakxava dokaz. Drugimreqima, lakxe je dokazati [𝑃 ∧ 𝑄](< 𝑛) ⇒ 𝑃 (𝑛) nego 𝑃 (< 𝑛) ⇒ 𝑃 (𝑛).Pretpostavka mo�e da izgleda korektna, ali nije jasno kako se mo�edokazati. Ideja se sastoji u tome da se 𝑄 ukuqi u induktivnu hipotezu.Sada je potrebno dokazati da [𝑃 ∧𝑄](< 𝑛)⇒ [𝑃 ∧𝑄](𝑛). Konjunkcija 𝑃 ∧𝑄je jaqe tvr�e�e nego samo 𝑃 , ali se qesto jaqa tvr�e�a lakxe dokazuju.Proces se nastava, i posle odre�enog broja uvedenih pretpostavki mo�eda dovede do zavrxetka dokaza. Problem nala�e�a maksimalnog podnizaje dobar primer kako se ovaj princip mo�e iskoristiti za usavrxava�ealgoritama.

Page 58: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

4.10. Uobiqajene grexke 58

Najqex�a grexka prilikom korix�e�a ove tehnike je previd qi�eniceda je dodata dopunska pretpostavka u trenutku kad treba korigovati dokaz.Drugim reqima, mi dokazujemo tvr�e�e [𝑃∧𝑄](< 𝑛)⇒ 𝑃 (𝑛), zaboravaju�ida je uvedena dopunska pretpostavka𝑄. U primeru sa maksimalnim podnizomdo ove grexke bi doxlo ako ne bismo izraqunali novi maksimalni sufiks.Sliqno, u primeru sa nala�e�em faktora ravnote�e qvorova binarnogstabla, ovakva grexka bila bi ako se ne izraquna visina korena stabla.Prema tome, va�no je precizno registrovati promene induktivne hipoteze.

4.10 Uobiqajene grexke

Osvrnu�emo se na neke mogu�e grexke prilikom induktivne konstrukcijealgoritama. Na primer, qesto se zaborava na bazu indukcije. U sluqajurekurzivne procedure bazni sluqaj je od suxtinskog znaqaja, jer se kroz�ega izlazi iz rekurzije. Druga qesta grexka je proxiriva�e rexe�a za𝑛 na rexe�e specijalnog, umesto proizvonog sluqaja problema za 𝑛+ 1.

Nenamerna promena induktivne hipoteze je tako�e qesta grexka. De-monstrira�emo to na jednom primeru. Graf 𝐺 je bipartitni ako se �egovskup qvorova mo�e predstaviti kao disjunktna unija dva podskupa, tako dane postoji grana izme�u dva proizvona qvora iz istog poskupa. Mo�e sedokazati da je za povezan bipartitni graf ovakvo razlaga�e u disjunktnuuniju jednoznaqno.

Problem. Za zadati povezani neusmereni graf 𝐺 ustanoviti da li jebipartitni, a ako jeste, prona�i odgovaraju�e razlaga�e �egovih qvorovau disjunktnu uniju.

Pogrexno rexe�e: Ukla�amo qvor 𝑣 i razla�emo ostatak grafa in-dukcijom, ako je mogu�e. Prvi podskup zva�emo beli, a drugi crni. Akoje 𝑣 povezan samo sa belim qvorovima, prikuqujemo ga crnom skupu, iobrnuto | ako je 𝑣 povezan samo sa crnim qvorovima, prikuqujemo gabelom skupu. Ako je 𝑣 povezan sa qvorovima iz oba podskupa, onda grafnije biparititan, jer je razlaga�e jednoznaqno.

Osnovna grexka u ovom rexe�u (a to je grexka koju smo nameravali dailustrujemo) je u tome xto posle ukla�a�a qvora 𝑣 graf ne mora da ostanepovezan. Prema tome, ma�i primer problema nije isti kao polazni, pa seindukcija ne mo�e koristiti. Ako bismo uklonili qvor koji ne "razbija"graf, rexe�e bi bilo korektno.

4.11 Rezime

U ovom poglavu prikazano je vixe tehnika za konstrukciju algoritama,koje su u stvari varijante jednog istog pristupa. Nove tehnike i brojniprimeri bi�e dati u narednim poglavima. Najboi naqin da se te tehnikesavladaju je da se one koriste za rexava�e problema. Prilikom rexava�aproblema korisno je imati na umu slede�e sugestije:

∙ Princip indukcije koristi se da se ulaz za problem svede na jedanili vixe ma�ih. Ako se svo�e�e mo�e uvek izvesti, a bazni sluqajse mo�e rexiti, onda je algoritam definisan indukcijom, odnosnodobijen je rekurzivni algoritam. Osnovna ideja je da se pa��a skon-centrixe na sma�iva�e problema, a ne na �egovo direktno rexava�e.

Page 59: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

59 4. Konstrukcija algoritama indukcijom

∙ Jedan od najlakxih naqina da se sma�i problem je eliminacijanekih �egovih elemenata, xto se mo�e pokuxati na vixe naqina.Pored eliminacije elemenata koji su oqigledno suvixni (kao u o-deku 4.3), mogu�e je spaja�e dva elementa u jedan, pronala�e�eelemenata koji se mogu obraditi na poseban naqin, ili uvo�e�e novogelementa koji preuzima ulogu dva ili vixe polaznih elemenata (kaou sluqaju Hafmanovog kodira�a).

∙ Veliqina problema mo�e se sma�iti na vixe naqina. Me�utim, nedobija se svakom od tih redukcija algoritam iste efikasnosti. Zatoje korisno razmotriti razliqite redoslede primene induktivne hi-poteze.

∙ Jedan od najefikasnijih naqina za sma�iva�e veliqine problemaje �egova podela na dva ili vixe podjednakih delova. Razlaga�eje efikasno ako se problem mo�e podeliti, tako da se od rexe�apotproblema lako dobija rexe�e celog problema.

∙ Prilikom svo�e�a na ma�e potprobleme, treba te�iti da potproblemibudu xto nezavisniji. Na primer, problem sortira�a mo�e se svestina pronala�e�e i ukla�a�e najma�eg elementa; redosled ostalih nezavisi od uklo�enog elementa.

∙ Na kraju, sve nabrojane tehnike treba koristiti zajedno, kombinuju�iih na razne naqine. Na primer, mo�e se koristiti razlaga�e sapojaqava�em induktivne hipoteze, tako da se dobijeni potproblemilakxe kombinuju.

Page 60: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo
Page 61: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Glava 5

Strategije konstrukcije

algoritama

5.1 Uvod

Postoji nekoliko poznatih strategija konstrukcije algoritama me�u kojimasu algoritmi grube sile, pohlepni algoritmi, pretraga sa vra�a�em, grana�esa odseca�em, razlaga�e, dinamiqko programira�e.

Algoritmi grube sile podrazumevaju pregleda�e svih mogu�ih rexe�ai najqex�e se prime�uju na optimizacione probleme. Ova strategija jeprimeniva samo za vrlo male ulaze, dok se za velike ulaze uglavnomtraga za nekim efikasnijim algoritmom. Na primer, ukoliko bi problembio da se za dati prirodan broj 𝑛 odrede svi �egovi delioci, algoritamgrube sile bi za svaki ceo broj od 1 do 𝑛/2 proveravao da li deli broj 𝑛.

Ideja pohlepnih algoritama je da uvek prave izbor koji deluje najboiu tom trenutku. Dakle, pravi se lokalno optimalni izbor u nadi da �eovaj izbor voditi i globalno najboem rexe�u. Pohlepni algoritmi zaneke (ne sve) probleme pronalaze optimalno rexe�e. Na primer, ako jeproblem da za dati niz novqanica koje imamo na raspolaga�u vratimokusur sa najma�im mogu�im brojem novqanica, pohlepni algoritam bi usvakom koraku birao najve�u novqanicu koja je na raspolaga�u, a koja jema�a od teku�e vrednosti preostalog kusura koji treba vratiti. Ovakavpristup u opxtem sluqaju ne garantuje dobija�e optimalnog rexe�a.

Pretraga sa vra�a�em ili skra�eno pretraga predstava jednu odnajopxtijih tehnika konstrukcije algoritama i mnogi problemi koji setiqu tra�e�a skupa rexe�a ili koji imaju za ci odre�iva�e optimalnogrexe�a koje zadovoava neki skup ograniqe�a mogu se rexiti na ovajnaqin. Algoritmi pretrage sa vra�a�em tra�e rexe�e problema sistema-tiqnom pretragom prostora rexe�a. Problem koji se mo�e rexiti na ovajnaqin je rexava�e sudoku zadataka, dakle za datu delimiqno popu�enu9×9 matricu dodeliti brojeve praznim poima matrice tako da svaki red,vrsta i 3×3 podmatrica sadr�i po jednom sve cifre od 1 do 9. Algoritamgrube sile bi generisao sve mogu�e konfiguracije i proveravao da li jeprona�ena konfiguracija validna, dok bi algoritam pretrage pre svakedodele vrednosti proveravao da li je ta dodela dozvoena i u sluqaju da

61

Page 62: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

5.2. Dinamiqko programira�e 62

jeste rekurzivno nastavao dae, odnosno u sluqaju da nije proveravao binarednu mogu�u vrednost za dodelu.

Grana�e sa odseca�em je varijacija pretrage, koja se mo�e primenitiako se tra�i minimum (ili maksimum) neke cine funkcije. U ovimalgoritmima va�no je izraqunava�e dobrih do�ih ili gor�ih granicakoje slu�e za ranije napuxta�e neperspektivnih parcijalnih rexe�a.Dakle, ako se na osnovu teku�eg parcijalnog rexe�a ne mo�e dobitiboe rexe�e od teku�eg najboeg rexe�a, onda se ovo parcijalno rexe�eiskuquje iz daeg razmatra�a i vrxi se odseca�e. Na primer, u problemuboje�a grafa minimalnim brojem boja, mogu�e je vrxiti odseca�e u si-tuaciji kada je potrebno uvesti novu boju za boje�e grafa, qime bi brojupotrebenih boja postao jednak broju boja kojima je graf ve� uspexnoobojen.

U nastavku �emo detanije razmotriti strategiju dinamiqkog progra-mira�a i videti jox jedan primer strategije razlaga�a.

5.2 Dinamiqko programira�e

Sliqno kao razlaga�e, dinamiqko programira�e rexava probleme svo-�e�em na potprobleme. Strategija razlaga�a deli probleme na disjunktnepotprobleme, koje rekurzivno rexava i qija rexe�a kombinuje u rexe�epolaznog problema. Za razliku od toga, dinamiqko programira�e se pri-me�uje kada se potproblemi preklapaju, tj. kada potproblemi imaju za-jedniqke potprobleme. U takvoj situaciji metod razlaga�a obava vixeposla nego xto je neophodno, rexavaju�i vixe puta iste potprobleme.Dinamiqko programira�e rexava svaki potproblem samo jednom i rezul-tati se zapisuju u odgovaraju�u tabelu.

Dinamiqko programira�e se najqex�e prime�uje na probleme opti-mizacije. Prilikom razvoja algoritama ovog tipa, razlikuju se qetirikoraka:

1. karakterizacija strukture optimalnog rexe�a

2. rekurzivno definisa�e vrednosti optimalnog rexe�a

3. izraqunava�e vrednosti optimalnog rexe�a, najqex�e redosledomodozdo na gore

4. rekonstrukcija optimalnog rexe�a na osnovu izraqunatih podataka

Koraci 1. { 3. su osnova rexe�a primenom dinamiqkog programira�a.Ako samo rexe�e nije potrebno, korak 4. mo�e se izostaviti. Ako se pakizvrxava i korak 4., ponekad je potrebno u okviru koraka 3. prikupatidodatne informacije, da bi se olakxala rekonstrukcija optimalnog re-xe�a.

U nastavku �emo videti kako se dinamiqko programira�e prime�ujena rexava�e nekih problema, kao xto su problem raseca�a �ice, zbirpodskupa i izraqunava�e edit-rastoja�a dva niza.

Page 63: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

63 5. Strategije konstrukcije algoritama

5.2.1 Problem raseca�a �ice

Gvo��ara prodaje komade �ice du�ine 𝑖 po ceni 𝑝𝑖 1, 2, . . . u skladu sacenovnikom. Primer cenovnika prikazan je u tabeli 5.1.

du�ina 𝑖 1 2 3 4 5 6 7 8 9 10cena 𝑝𝑖 1 5 8 9 10 17 17 20 24 30

Tabela 5.1: Primer cenovnika sa cenama 𝑝𝑖 komada �ice razliqite du�ine𝑖

U gvo��ari imaju kolut �ice du�ine 𝑛.Problem raseca�a �ice glasi:kako ise�i �icu na komade tako da zbir cena svih komada bude najve�imogu�i? Na primer, ako je 𝑛 = 4, �ica se mo�e ise�i na pet suxtinskirazliqitih naqina (poxto je broj particija broja 4 jednak 5):

particija 𝑛 = 4 4 3 + 1 2 + 2 2 + 1 + 1 1 + 1 + 1 + 1zbir cena 9 9 10 7 4

Tabela 5.2: Zbir cena za razliqite particije broja 𝑛 = 4

Kao xto se mo�e videti iz tabele 5.2, zbir cena komada je najve�i (10)ako se �ica iseqe na dva komada du�ine 2.

Ako se prilikom raseca�a �ice vodi raquna o redosledu, onda jeukupan broj preseca�a �ice najvixe 𝑛 − 1. Poxto se na svakom od tihmesta �ica mo�e nezavisno prese�i ili ne, broj naqina na koje se tomo�e uraditi je 2𝑛−1. Broj suxtinski razliqitih naqina raseca�a �icedu�ine 𝑛 jednak je broju particija broja 𝑛, koji se asimptotski ponaxa

kao 14𝑛

√3𝑒𝜋√

2𝑛/3, xto raste br�e od bilo kog polinoma po 𝑛. Zbog toga je

ovakav naqin rexava�a problema neefikasan za velike 𝑛.Ako je optimalno rexe�e rase�i �icu na 𝑘 komada du�ine 𝑖1, 𝑖2, . . . , 𝑖𝑘

(dakle 𝑛 = 𝑖1 + 𝑖2 + . . .+ 𝑖𝑘), onda je odgovaraju�a maksimalna suma

𝑟𝑛 = 𝑝𝑖1 + 𝑝𝑖2 + . . .+ 𝑝𝑖𝑛

Za 𝑛 ≤ 10 nije texko neposredno izraqunati vrednost maksimalne sume𝑟𝑛 i odgovaraju�e particije za koju se posti�e ta suma:

𝑛 1 2 3 4 5 6 7 8 9 10𝑟𝑖 1 5 8 10 13 17 18 22 25 30

particije 1 2 3 2 + 2 2 + 3 61 + 6

2 + 2 + 32 + 6 3 + 6 10

Vrednosti 𝑟𝑛 za 𝑛 ≥ 1 mogu se izraqunati na osnovu prethodnih vrednosti:

𝑟𝑛 = 𝑚𝑎𝑥{𝑝𝑛, 𝑟1 + 𝑟𝑛−1, 𝑟2 + 𝑟𝑛−2, . . . , 𝑟𝑛−1 + 𝑟1} (5.1)

Prvi argument funkcije𝑚𝑎𝑥, 𝑝𝑛 odgovara varijanti kada se cela �icadu�ine 𝑛 prodaje kao jedan komad. Ostalih 𝑛 − 1 argumenata odgovaraju

Page 64: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

5.2. Dinamiqko programira�e 64

maksimalnom zbiru ako se �ica na poqetku najpre preseqe na dva komadadu�ine 𝑖, odnosno 𝑛 − 𝑖, 𝑖 = 1, . . . , 𝑛 − 1, posle qega se ta dva komadaoptimalno raseku na ma�e komade qime se dobijaju zbirovi 𝑟𝑖, odnosno𝑟𝑛−𝑖. Poxto se unapred ne zna koju vrednost 𝑖 je najboe izabrati, razma-traju se sve mogu�e vrednosti 𝑖 i bira se ona kojoj odgovara najve�i zbir𝑟𝑖 + 𝑟𝑛−𝑖. Posled�i sabirak u jednaqini (5.1) mogao bi da bude 𝑟⌊𝑛/2⌋ +𝑟⌊𝑛/2⌋, zbog simetrije.

Primetimo da u toku rexava�a polaznog problema veliqine 𝑛, mirexavamo ma�e probleme istog tipa. Kad se uradi prvo raseca�e, 𝑖+(𝑛−𝑖),dva dobijena komada mogu se smatrati instancama problema raseca�a�ice. Ukupno optimalno rexe�e u sebi sadr�i optimalna rexe�a dvaodgovaraju�a potproblema. Zbog toga ka�emo da problem raseca�a �iceima optimalnu podstrukturu : optimalno rexe�e problema sadr�i op-timalna rexe�a odgovaraju�ih potproblema koji se mogu nezavisno rexa-vati.

Mogu� je sliqan, ali jednostavniji naqin ure�e�a rekurzivne struktureproblema raseca�a �ice, tako da se od �ice najpre odseqe jedan komaddu�ine 𝑖, a da se dae raseca samo ostatak du�ine 𝑛 − 𝑖. Na ovaj naqinmo�e se obuhvatiti i varijanta bez seqe�a �ice: prvi komad je tada 𝑖 = 𝑛,sa cenom 𝑝𝑛, a ostatak je 0 sa cenom 𝑟0 = 0. Tako se dobija jednakostjednostavnija od (5.1):

𝑟𝑛 = 𝑚𝑎𝑥1≤𝑖≤𝑛(𝑝𝑖 + 𝑟𝑛−𝑖) (5.2)

5.2.2 Rekurzivni algoritam odozgo na dole

Jednakost (5.2) direktno se realizuje slede�im kodom:

𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒(𝑝, 𝑛)ulaz: 𝑝 = 𝑝1, 𝑝2 . . . 𝑝𝑛 (vektor cena komada �ice) i 𝑛 (du�ina �ice)izlaz: 𝑞 (maksimalna vrednost)1 if 𝑛 = 0 return 02 𝑞 ← −∞3 for 𝑖← 1 to 𝑛4 𝑞 ← max{𝑞, 𝑝𝑖 +𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒(𝑝, 𝑛− 𝑖)}5 return 𝑞

Ovakva rekurzivna realizacija je neefikasna, jer se rekurzivni pozivisa istim argumentom izvrxavaju vixe puta. Na primer, za 𝑛 = 4 dobijase stablo rekurzivnih poziva prikazano na slici 5.1.

Neka je 𝑇 (𝑛) ukupan broj poziva algoritma 𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 kada je osnovnipoziv sa drugim argumentom jednakim 𝑛. Broj qvorova u podstablu qijije koren oznaqen sa 𝑛 jednak je 𝑇 (𝑛), pri qemu je tu uraqunat i osnovnipoziv koji odgovara korenu. Rekurzivnom algoritmu 𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 odgovararekurentna relacija

𝑇 (𝑛) =

{1, 𝑛 = 0

1 +∑𝑛−1

𝑗=0 𝑇 (𝑗), 𝑛 > 0(5.3)

Page 65: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

65 5. Strategije konstrukcije algoritama

Slika 5.1: Stablo rekurzivnih poziva algoritma 𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒(𝑝, 𝑛) za 𝑛 = 4.U svakom qvoru prikazana je veliqina 𝑛 odgovaraju�eg potproblema, takoda grana od oca sa oznakom 𝑠 ka sinu sa oznakom 𝑡 odgovara raseca�u napoqetni komad veliqine 𝑠− 𝑡, posle qega preostaje potproblem veliqine 𝑡.Put od korena do nekog lista odgovara nekom od 2𝑛−1 naqina za raseca�e�ice du�ine 𝑛. U opxtem sluqaju ovo stablo ima 2𝑛 qvorova i 2𝑛−1

listova. Oznake na putu od korena do nekog lista jednake su veliqiniostatka �ice posle odseca�a. Drugim reqima, oznake odre�uju taqkeseqe�a raqunaju�i sa desnog kraja �ice.

Sabirak 1 odgovara pozivu u korenu, a qlan 𝑇 (𝑗) jednak je broju poziva(ukuquju�i rekurzivne pozive) pokrenutih pozivom 𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒(𝑝, 𝑛 − 𝑖),gde je 𝑗 = 𝑛− 𝑖. Neposredno se proverava da je 𝑇 (1) = 2, 𝑇 (2) = 4, 𝑇 (3) = 8,a indukcijom se lako dokazuje da je 𝑇 (𝑛) = 2𝑛, xto znaqi da je slo�enostalgoritma 𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 eksponencijalna po 𝑛. Ovo nije neoqekivano, poxtoalgoritam razmatra svih 2𝑛−1 naqina razlaga�a broja 𝑛 u sabirke.

5.2.3 Korix�e�e dinamiqkog programira�a za optimalno

raseca�e

Pokaza�emo sada kako se algoritam𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 mo�e uqiniti efikasnimprimenom dinamiqkog programira�a. Zapa�a se da je obiqan rekurzivanalgoritam neefikasan jer vixe puta rexava iste potprobleme. Problem semo�e rexiti tako da se svaki potproblem rexava samo jednom, zapisuju�ito rexe�e. Ako se kasnije nai�e na isti potproblem mo�e se proqi-tati zapisani rezultat, umesto da se ponovo izraqunava. Prema tome,dinamiqko programira�e koristi dopunsku memoriju da bi se ubrzaloizraqunava�e, xto ga qini jednim od primera razmene prostor-vreme(eng. time-memory trade-off). Uxtede mogu biti znaqajne, tako da se odalgoritma eksponencijalne slo�enosti mo�e do�i do algoritma polinomijalneslo�enosti.

Postoje dva ekvivalentna naqina za realizaciju algoritma koji koristidinamiqko programira�e:

∙ prvi naqin je pristup odozgo na dole sa zapisiva�em, odnosno me-moizacijom (eng. top-down with memoization). Procedura se pixerekurzivno na prirodan naqin, ali sa dodatkom da se zapisuje rezultat

Page 66: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

5.2. Dinamiqko programira�e 66

svakog potproblema (obiqno u nizu ili hex tabeli). Nova proceduranajpre proverava da li je prethodno ve� rexavala taj problem; akojeste, vra�a saquvani rezultat i preskaqe dae raquna�e; u protivnomprocedura izraqunava rezultat na uobiqajen naqin.

∙ drugi pristup je pristup odozdo na gore (eng. bottom-up). Pristup jeobiqno povezan sa nekim prirodnim pojmom \veliqine" potproblema,tako rexava�e bilo kog potproblema zavisi samo od rexe�a \ma�ih"potproblema. Potproblemi se najpre sortiraju prema veliqini, pase rexavaju tim redosledom, polaze�i od ma�ih. U trenutku kada serexava neki potproblem, svi ma�i potproblemi od kojih on zavisi suve� rexeni i �ihova rexe�a su zapisana. Svaki potproblem rexavase samo jednom, a kad nai�emo na �ega, ve� smo pre toga rexili svepotprobleme od kojih on zavisi.

Ova dva pristupa obiqno vode algoritmima iste asimptotske slo�enosti.Pristup odozdo na gore obiqno ima ma�e konstantne faktore jer ne troxivreme na rekurzivne pozive. Sledi pseudokod algoritma za optimalnoraseca�e, pristup odozgo na dole sa zapisiva�em.

𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝑧(𝑝, 𝑛)ulaz: 𝑝 = 𝑝1, 𝑝2 . . . 𝑝𝑛 (vektor cena komada �ice) i 𝑛 (du�ina �ice)izlaz: 𝑞 (maksimalna vrednost)1 Neka je 𝑟0, . . . , 𝑟𝑛 novi niz2 for 𝑖← 0 to 𝑛3 𝑟𝑖 ← −∞4 return 𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝑧 𝑝𝑜𝑚(𝑝, 𝑛, 𝑟)

𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝑧 𝑝𝑜𝑚(𝑝, 𝑛, 𝑟)ulaz: 𝑝 = 𝑝1, 𝑝2 . . . 𝑝𝑛 (vektor cena komada �ice) i 𝑛 (du�ina �ice)

𝑟 = 𝑟0, . . . , 𝑟𝑛 (vektor u kome vrednost 𝑟𝑖 sadr�i maksimalnu vrednost za ulaz 𝑖)izlaz: 𝑞 (maksimalna vrednost)1 if 𝑟𝑛 ≥ 0 then2 return 𝑟𝑛3 if 𝑛 = 0 then4 𝑞 ← 05 else6 𝑞 ← −∞7 for 𝑖← 1 to 𝑛 do8 𝑞 ← max{𝑞, 𝑝𝑖 +𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝑧 𝑝𝑜𝑚(𝑝, 𝑛− 𝑖, 𝑟)}9 𝑟𝑛 ← 𝑞10 return 𝑞

Ovde osnovni algoritam 𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝑧 inicijalizuje novi pomo�ni niz𝑟0, . . . , 𝑟𝑛 vrednostima−∞, xto je pogodan naqin za oznaqava�e \nepoznatog"(poznate vrednosti su uvek nenegativne). Posle toga pokre�e se pomo�nialgoritam 𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝑧 𝑝𝑜𝑚, koji je u stvari samo nova verzija prethodnogrekurzivnog algoritma sa dodatim zapisiva�em izraqunatih rezultata.U liniji 1 proverava se da li je tra�ena vrednost ve� poznata, a akojeste, ona se vra�a u liniji 2. U protivnom, u linijama 3-7 izraqunava se

Page 67: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

67 5. Strategije konstrukcije algoritama

tra�ena vrednost 𝑞 na obiqan naqin, u liniji 8 ona se zapisuje u 𝑟𝑛, a uliniji 9 vra�a se kao rezultat. Verzija odozdo na gore je jednostavnija.

𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝐷𝐺(𝑝, 𝑛)ulaz: 𝑝 = 𝑝1, 𝑝2 . . . 𝑝𝑛 (vektor cena komada �ice) i 𝑛 (du�ina �ice)izlaz: 𝑞 (maksimalna vrednost)1 Neka je 𝑟0, . . . , 𝑟𝑛 novi niz2 𝑟0 ← 03 for 𝑗 ← 1 to 𝑛 do4 𝑞 ← −∞5 for 𝑖← 1 to 𝑗 do6 𝑞 ← max{𝑞, 𝑝𝑖 + 𝑟𝑗−𝑖}7 𝑟𝑗 ← 𝑞8 return 𝑟𝑛

Ovde se koristi prirodno ure�e�e potproblema: problem veliqine 𝑖 jema�i od problema veliqine 𝑗, ako je 𝑖 < 𝑗. Prema tome, procedura rexavapotprobleme redom veliqine 𝑗 = 0, 1, . . . , 𝑛.

U liniji 1 kreira se pomo�ni niz 𝑟0, . . . , 𝑟𝑛 za zapisiva�e rezultataza odgovaraju�e potprobleme, a linija 2 inicijalizuje 𝑟0 nulom. Peta ulinijama 3{7 rexava sve potprobleme veliqine 𝑗, 𝑗 = 1, 2, . . . , 𝑛. Pristupkoji se koristi za rexava�e problema konkretne veliqine 𝑗 je isti kaou algoritmu 𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒, izuzev xto se u liniji 6 direktno qita vrednost𝑟𝑗−𝑖 umesto da se rekurzivnim pozivom rexava potproblem veliqine 𝑗− 𝑖.U liniji 7 quva se rexe�e potproblema veliqine 𝑟𝑗 . Konaqno, u liniji 8vra�a se 𝑟𝑛, xto je jednako optimalnoj vrednosti 𝑟𝑛. Obe verzije algoritma,odozgo na dole sa zapisiva�em i odozdo na gore imaju istu asimptotskuslo�enost Θ(𝑛2), jer sadr�e dvostruke pete. Za prvu verziju algoritmato ipak nije sasvim oqigledno. Zbog toga xto se rekurzivni poziv zaprethodno rexeni potproblem odmah zavrxava vra�a�em rezultata, algoritamsvaki potproblem rexava samo jednom. Za problem veliqine 𝑛 kroz petuu linijama 6{7 prolazi se 𝑛 puta. Zbog toga je ukupan broj iteracija obepete za sve rekurzivne pozive zbir aritmetiqke progresije, dakle Θ(𝑛2).

5.2.4 Grafovi potproblema

Kada se razmatra rexava�e problema primenom dinamiqkog programi-ra�a, potrebno je imati predstavu o skupu potproblema i kakve su �ihoveme�uzavisnosti. Graf potproblema sadr�i upravo te informacije. Naslici 5.2 prikazan je graf potproblema za problem raseca�a �ice za𝑛 = 4. To je usmereni graf sa po jednim qvorom za svaki potproblem.U grafu postoji usmerena grana od qvora odgovaraju�eg za potproblem 𝑥ka qvoru koji je odgovaraju�i za potproblem 𝑦 ako odre�iva�e optimalnogrexe�a za potproblem 𝑥 direktno u sebe ukuquje razmatra�e optimalnogrexe�a za potproblem 𝑦. Na primer, grana u grafu od qvora 𝑥 do qvora 𝑦postoji ako rekurzivni odozgo na dole algoritam pokrenut za 𝑥 direktnopoziva samog sebe za 𝑦. Graf potproblema mo�e se shvatiti kao uprox�enaverzija stabla rekurzije za rekurzivni metod odozgo na dole, tako da sesvi qvorovi za isti potproblem objedine u samo jedan qvor.

Page 68: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

5.2. Dinamiqko programira�e 68

Slika 5.2: Graf potproblema za problem raseca�a �ice ako je 𝑛 =4. Oznake qvorova odgovaraju veliqinama potproblema. Usmerena grana(𝑥, 𝑦) pokazuje da je prilikom rexava�a potproblema 𝑥 potrebno rexitipotproblem 𝑦. Graf je redukovana verzija stabla sa slike 5.1, pri qemu susvi qvorovi sa istom oznakom skupeni u jedan qvor i sve grane vode odoca ka sinu.

Metod odozdo na gore qvorove u grafu potproblema razmatra takvimredosledom da smo pre razmatra�a qvora 𝑥 razmotrili sve qvorove 𝑦takve da postoji grana (𝑥, 𝑦). Drugim reqima, ako bismo sve grane grafausmerili suprotno, redosled qvorova dobija se topoloxkim sortira�em,o qemu �e biti reqi kasnije. Na sliqan naqin vidi se da metod odozgo nadole sa zapisiva�em obilazi graf potproblema u skladu sa algoritmompretrage u dubinu. Veliqina grafa potproblema mo�e da pomogne priodre�iva�u slo�enosti algoritma zasnovanog na dinamiqkom programira�u.Poxto se svaki potproblem rexava samo jednom, vreme izvrxava�a jednakoje zbiru vremena izvrxava�a svih potproblema. Obiqno je vreme potrebnoza rexava�e jednog potproblema proporcionalno stepenu odgovaraju�egqvora (broju grana koje izlazi iz tog qvora), a broj potproblema jednak jebroju qvorova u grafu potproblema. U takvom sluqaju vreme izvrxava�adinamiqkog programira�a je linearno u odnosu na broj qvorova i granagrafa potproblema.

5.2.5 Rekonstrukcija rexe�a

Razmotreni algoritmi za rexava�e optimalnog raseca�a �ice dina-miqkim programira�em vra�aju samo cenu optimalnog rexe�a, ali nei samo rexe�e. Algoritmi se mogu dopuniti tako da pored optimalnevrednosti za svaki potproblem vrate i izbor koji je doveo do te optimalnevrednosti. U nastavku je proxirena verzija odozdo na gore algoritma𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝑧 koja za svaku veliqinu 𝑗 komada �ice vra�a ne samo najboucenu 𝑟𝑗 nego i 𝑠𝑗 , optimalnu veliqinu komada �ice koji se prvo odseca:

𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝐷𝐺 𝐸(𝑝, 𝑛)ulaz: 𝑝 = 𝑝1, 𝑝2 . . . 𝑝𝑛 (vektor cena komada �ice) i 𝑛 (du�ina �ice)izlaz: 𝑞 (maksimalna vrednost)

Page 69: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

69 5. Strategije konstrukcije algoritama

1 Neka su 𝑟0, . . . , 𝑟𝑛 i 𝑠0, . . . 𝑠𝑛 novi nizovi2 𝑟0 ← 03 for 𝑗 ← 1 to 𝑛 do4 𝑞 ← −∞5 for 𝑖← 1 to 𝑗 do6 if 𝑞 < 𝑝𝑖 + 𝑟𝑗−𝑖 then7 𝑞 ← 𝑝𝑖 + 𝑟𝑗−𝑖

8 𝑠𝑗 ← 𝑖9 𝑟𝑗 ← 𝑞10 return 𝑟, 𝑠

Ovaj algoritam sliqan je algoritmu 𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝐷𝐺 s tim xto se uliniji 1 kreira i niz 𝑠1, . . . , 𝑠𝑛, a u liniji 8 se a�urira 𝑠𝑗 , tako da sadr�ioptimalnu veliqinu 𝑖 prvog komada �ice koji se odseca pri rexava�upotproblema veliqine 𝑗.

Naredna procedura na osnovu cena 𝑝 i veliqine �ice 𝑛 poziva algoritam𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝐷𝐺 𝐸 za izraqunava�e niza 𝑠1, . . . , 𝑠𝑛 optimalnih veliqinaprvih odseqenih komada �ice, a onda xtampa kompletan spisak veliqinakomada �ice i �ihovo optimalno raseca�e za �icu du�ine 𝑛:

𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝑆𝑡𝑎𝑚𝑝𝑎(𝑝, 𝑛)ulaz: 𝑝 = 𝑝1, 𝑝2 . . . 𝑝𝑛 (vektor cena komada �ice) i 𝑛 (du�ina �ice)izlaz: odxtampan vektor koji daje maksimalnu vrednost1 (𝑟, 𝑠) = 𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝐷𝐺 𝐸(𝑝, 𝑛)2 while 𝑛 > 03 odxtampaj 𝑠𝑛4 𝑛← 𝑛− 𝑠𝑛

Za cene komada navedene u cenovniku algoritam 𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝐷𝐺 𝐸(𝑝, 10)vratio bi slede�e nizove:

𝑛 0 1 2 3 4 5 6 7 8 9 10𝑟𝑖 0 1 5 8 10 13 17 18 22 25 30𝑠𝑖 0 1 2 3 2 2 6 1 2 3 10

Poziv 𝑅𝑎𝑠𝑒𝑐𝑎𝑛𝑗𝑒 𝑆𝑡𝑎𝑚𝑝𝑎(𝑝, 10) odxtampao bi samo 10, a poziv za 𝑛 = 7odxtampao bi 1 i 6, xto odgovara optimalnom raseca�u 𝑟7 koje je ranijenavedeno.

5.2.6 Problem ranca

Pretpostavimo da ranac treba napuniti stvarima. Stvari mogu dabudu razliqitog oblika i veliqine, a ci je da se u ranac upakuje xtoje mogu�e vixe stvari. Umesto ranca to mo�e da bude kamion, brod ilisilicijumski qip, a problem je pakova�e elemenata. Postoji mnogo vari-janti ovog problema; ovde �e biti razmatrana varijanta sa jednodimenzi-onalnim predmetima.

Page 70: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

5.2. Dinamiqko programira�e 70

Problem. Dat je prirodan broj 𝐾 i 𝑛 predmeta razliqitih veliqina(te�ina), tako da 𝑖-ti predmet ima veliqinu 𝑘𝑖, 1 ≤ 𝑖 ≤ 𝑛. Prona�ipodskup predmeta qija je suma veliqina jednaka taqno 𝐾, ili ustanovitida takav podskup ne postoji.

Oznaqimo problem sa 𝑃 (𝑛,𝐾), gde 𝑛 oznaqava broj predmeta, a𝐾 veliqinu(nosivost) ranca. Veliqine predmeta podrazumevaju se implicitno, odnosno�ihove veliqine nisu deo eksplicitne oznake problema. Na taj naqin𝑃 (𝑖, 𝑘) oznaqava problem sa prvih 𝑖 predmeta i rancem veliqine 𝑘. Zbogjednostavnosti ograniqavamo sa na problem odluqiva�a da li rexe�epostoji. Zapoqi�emo sa najjednostavnijim induktivnim pristupom.

Induktivna hipoteza (prvi pokuxaj). Umemo da reximo 𝑃 (𝑛− 1,𝐾).

Bazni sluqaj (kada je 𝑛 = 1) je jednostavan: rexe�e postoji akko je𝑘1 = 𝐾. Ako postoji rexe�e problema 𝑃 (𝑛 − 1,𝐾), onda je to i rexe�e𝑃 (𝑛,𝐾): u to rexe�e ne ulazi predmet veliqine 𝑘𝑛. U protivnom, ako nepostoji rexe�e 𝑃 (𝑛−1,𝐾), postava se pita�e | mo�e li se iskoristitiovaj negativni rezultat? Najpre zakuqujemo da 𝑛-ti predmet mora bitiukuqen u zbir. Tada ostali predmeti moraju stati u ma�i ranac veliqine𝐾−𝑘𝑛. Problem je time sveden na dva ma�a problema 𝑃 (𝑛−1,𝐾) i 𝑃 (𝑛−1,𝐾−𝑘𝑛). Da bi se rexe�e kompletiralo, trebalo bi pojaqati induktivnuhipotezu. Potrebno je imati rexe�a ne samo za ranac veliqine 𝐾, nego iza rance veliqine ma�e od 𝐾.

Induktivna hipoteza (drugi pokuxaj). Umemo da reximo 𝑃 (𝑛 − 1, 𝑘)za sve 𝑘, 0 ≤ 𝑘 ≤ 𝐾.

Ova induktivna hipoteza omogu�uje nam da reximo 𝑃 (𝑛, 𝑘) za 0 ≤ 𝑘 ≤𝐾. Bazni sluqaj 𝑃 (1, 𝑘) se lako rexava: za 𝑘 = 0 uvek postoji rexe�e(trivijalno, nula sabiraka), a u protivnom rexe�e postoji akko je 𝑘1 = 𝑘.Problem 𝑃 (𝑛, 𝑘) svodi se na dva problema 𝑃 (𝑛 − 1, 𝑘) i 𝑃 (𝑛 − 1, 𝑘 − 𝑘𝑛)(drugi problem otpada ako je 𝑘−𝑘𝑛 < 0). Oba ova problema se mogu rexitiindukcijom. Poxto je svo�e�e kompletno, algoritam je konstruisan. Me-�utim, ovaj algoritam je neefikasan. Problem veliqine 𝑛 sveden je nadva problema veliqine 𝑛− 1 (istina, u jednom od potproblema sma�ena jevrednost 𝑘). Svaki od novih problema svodi se na po dva naredna problema,itd, xto dovodi do eksponencijalnog algoritma.

Efikasnost algoritma mo�e se pove�ati primenom dinamiqkog progra-mira�a umesto rekurzije. Zapa�a se da ukupan broj razliqitih problemane mora biti preveliki: prvi parametar mo�e da ima najvixe 𝑛, a druginajvixe 𝐾 razliqitih vrednosti. Ukupno je broj razliqitih problemanajvixe 𝑛𝐾. Eksponencijalno vreme izvrxava�a algoritma je posledicaduplira�a broja problema posle svakog svo�e�a. Poxto ukupno ima 𝑛𝐾razliqitih problema, jasno je da su neki od �ih (ako je 2𝑛 > 𝑛𝐾) vixeputa rexavani. Korisna ideja je pamtiti sva na�ena rexe�a da bi seizbeglo ponova�e rexava�a istih problema. Ovaj pristup je kombinacijapojaqava�a induktivne hipoteze i korix�e�a potpune indukcije. Razmo-tri�emo sada kako se ovaj pristup mo�e praktiqno realizovati.

Za smexta�e svih izraqunatih rezultata koristi se posebna matricadimenzije 𝑛 × 𝐾. Element (𝑖, 𝑘) matrice sadr�i informacije o rexe�u

Page 71: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

71 5. Strategije konstrukcije algoritama

𝑃 (𝑖, 𝑘). Svo�e�e po drugoj varijanti induktivne hipoteze ekvivalentnoje izraqunava�u jedne vrste na osnovu prethodne vrste matrice. Svakielement se izraqunava na osnovu dva elementa iz prethodne vrste. Ako jepotrebno odrediti i podskup sa zadatim zbirom, onda uz svaki elementmatrice treba saquvati i informaciju o tome da li je odgovaraju�i elementskupa ukuqen u zbir u tom koraku. Prate�i ove informacije unazad odelementa (𝑛,𝐾), mo�e se rekonstruisati podskup sa zbirom 𝐾. Algoritamje prikazan u nastavku, a u tabeli 5.3 prikazan je jedan primer. Matrica𝑃 je zbog udobnosti dimenzije (𝑛+ 1)× (𝑘 + 1) i sadr�i elemente 𝑃 [𝑖, 𝑘],0 ≤ 𝑖 ≤ 𝑛, 0 ≤ 𝑘 ≤ 𝐾.

𝑅𝑎𝑛𝑎𝑐(𝑆,𝐾)ulaz: 𝑆 (vektor du�ine 𝑛 sa veliqinama predmeta) i 𝐾 (veliqina ranca)izlaz: 𝑃 (matrica, tako da je 𝑃 [𝑖, 𝑘].𝑃𝑜𝑠𝑡𝑜𝑗𝑖 = 𝑡𝑟𝑢𝑒 akko postoji rexe�e

problema ranca sa prvih 𝑖 predmeta, za veliqinu ranca 𝑘;𝑃 [𝑖, 𝑘].𝑃 𝑟𝑖𝑝𝑎𝑑𝑎 = 𝑡𝑟𝑢𝑒 akko 𝑖-ti predmet pripada tom rexe�u)

1 𝑃 [0, 0].𝑃𝑜𝑠𝑡𝑜𝑗𝑖← 𝑡𝑟𝑢𝑒2 for 𝑘 ← 1 to 𝐾 do3 𝑃 [0, 𝑘].𝑃𝑜𝑠𝑡𝑜𝑗𝑖← 𝑓𝑎𝑙𝑠𝑒 {elementi 𝑃 [𝑖, 0] za 𝑖 ≥ 1 raqunaju se na osnovu 𝑃 [0, 0]}4 for 𝑖← 1 to 𝑛 do5 for 𝑘 ← 0 to 𝐾 do {izraqunava�e elementa 𝑃 [𝑖, 𝑘]}6 𝑃 [𝑖, 𝑘].𝑃𝑜𝑠𝑡𝑜𝑗𝑖← 𝑓𝑎𝑙𝑠𝑒 {polazna vrednost}7 if 𝑃 [𝑖− 1, 𝑘].𝑃𝑜𝑠𝑡𝑜𝑗𝑖 then8 𝑃 [𝑖, 𝑘].𝑃𝑜𝑠𝑡𝑜𝑗𝑖← 𝑡𝑟𝑢𝑒9 𝑃 [𝑖, 𝑘].𝑃 𝑟𝑖𝑝𝑎𝑑𝑎← 𝑓𝑎𝑙𝑠𝑒10 elseif 𝑘 − 𝑆[𝑖] ≥ 0 then11 if 𝑃 [𝑖− 1, 𝑘 − 𝑆[𝑖]].𝑃𝑜𝑠𝑡𝑜𝑗𝑖 then12 𝑃 [𝑖, 𝑘].𝑃𝑜𝑠𝑡𝑜𝑗𝑖← 𝑡𝑟𝑢𝑒13 𝑃 [𝑖, 𝑘].𝑃 𝑟𝑖𝑝𝑎𝑑𝑎← 𝑡𝑟𝑢𝑒

0 1 2 3 4 5 6 7 8 9 10 11

𝑘1 = 8 𝑂 - - - - - - - 𝐼 - - -𝑘2 = 5 𝑂 - - - - 𝐼 - - 𝑂 - - -𝑘3 = 4 𝑂 - - - 𝐼 𝑂 - - 𝑂 𝐼 - -𝑘4 = 3 𝑂 - - 𝐼 𝑂 𝑂 - 𝐼 𝐼 𝑂 - 𝐼

Tabela 5.3: Primer tabele formirane pri rexava�u problema ranca. Ulazsu 𝑛 = 4 predmeta veliqina 8, 5, 4 i 3, a veliqina ranca je 𝐾 = 11. Simbol"𝐼" znaqi da postoji rexe�e koje obuhvata predmet iz odgovaraju�e vrste;"𝑂": postoji rexe�e, ali samo bez tog predmeta; "-": ne postoji rexe�e.

Metod korix�en za rexava�e ovog problema je specijalni sluqaj dina-miqkog programira�a, i to pristupa odozdo na gore, kod koga se formirajuvelike tabele (u opxtem sluqaju vixedimenzionalne) sa svim prethodnimrezultatima. Tabele se konstruixu iterativno. Svaki element se izraqunavana osnovu ve� izraqunatih elemenata. Osnovni problem je organizovatiizraqunava�e elemenata tabele na najefikasniji naqin.

Slo�enost. U tabeli ima 𝑛𝐾 elemenata. Svaki od �ih izraqunava seza konstantno vreme na osnovu druga dva elementa, pa je ukupna vremenska

Page 72: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

5.2. Dinamiqko programira�e 72

slo�enost algoritma 𝑂(𝑛𝐾). Ako predmeti nisu preveliki, onda 𝐾 nemo�e biti preveliko, pa je 𝑛𝐾 ≪ 2𝑛. Ako je 𝐾 jako veliko, ili suveliqine predmeta realni brojevi, onda je ovaj pristup neprimeniv.Ako je potrebno samo ustanoviti da li rexe�e postoji, onda je odgovorsadr�an u elementu 𝑃 [𝑛,𝐾]. Ako pak treba odrediti podskup sa zbirom𝐾, onda treba pre�i put unazad, polaze�i od pozicije (𝑛,𝐾), koriste�ipoe 𝑃𝑜𝑠𝑡𝑜𝑗𝑖 elemenata matrice iz programa. Predmet te�ine 𝑘𝑛 pripadaskupu akko je 𝑃 [𝑛,𝐾].𝑃 𝑟𝑖𝑝𝑎𝑑𝑎 taqno; ako je 𝑃 [𝑛,𝐾].𝑃 𝑟𝑖𝑝𝑎𝑑𝑎 taqno, odnosnonetaqno, onda se dae na isti naqin posmatra elemenat 𝑃 [𝑛 − 1,𝐾 − 𝑘𝑛],odnosno 𝑃 [𝑛 − 1,𝐾] iz (𝑛 − 1)-e vrste, itd. Podskup se rekonstruixe za𝑂(𝑛) koraka.

Prostorna slo�enost ovog algoritma je 𝑂(𝑛𝐾). Ako se zahteva samo od-govor na pita�e da li postoji podskup sa zbirom 𝐾, lako je modifikovatialgoritam tako da mu prostorna slo�enost bude 𝑂(𝐾): naredna vrsta seizraqunava na osnovu prethodne, pa je za izraqunava�e elementa 𝑃 [𝑛,𝐾]dovono imati prostor za smexta�e dve uzastopne vrste matrice.

5.2.7 Upore�iva�e nizova

Problemu upore�iva�a nizova tek se od nedavno posve�uje ve�a pa��a.Osnovni razlog su primene u molekularnoj biologiji. Ovde �emo se bavitiproblemom pronala�e�a minimalnog broja edit operacija koje prevodejedan string u drugi.

Neka su 𝐴 = 𝑎1𝑎2 . . . 𝑎𝑛 i 𝐵 = 𝑏1𝑏2 . . . 𝑏𝑚 dva stringa, niza qiji suelementi znakovi iz konaqnog alfabeta. Ci je transformisati 𝐴 u 𝐵,znak po znak. Dozvoene su tri vrste elementarnih transformacija (iliedit operacija), koje imaju cenu 1:

∙ umeta�e | umeta�e znaka;

∙ brisa�e | brisa�e znaka, i

∙ zamena | zamena jednog znaka drugim znakom.

Problem. Za zadate stringove 𝐴 = 𝑎1𝑎2 . . . 𝑎𝑛 i 𝐵 = 𝑏1𝑏2 . . . 𝑏𝑚 prona�iniz edit operacija najma�e cene koji 𝐴 transformixe u 𝐵.

Na primer, da se string 𝑎𝑏𝑏𝑐 transformixe u string 𝑏𝑎𝑏𝑏, mo�e seprvo obrisati 𝑎 (dobija se 𝑏𝑏𝑐), umetnuti 𝑎 izme�u dva 𝑏 (dobija se 𝑏𝑎𝑏𝑐),i na kraju zameniti 𝑐 sa 𝑏 | ukupno tri promene. Isti rezultat mo�e seposti�i sa samo dve promene: umeta�em novog 𝑏 na poqetku (dobija se 𝑏𝑎𝑏𝑏𝑐)i brisa�em posled�eg 𝑐. Ci je prona�i transformaciju koja se sastoji odminimalnog broja edit operacija (takva transformacija u opxtem sluqajunije jedinstvena).

Najma�i broj edit operacija koji transformixe string 𝐴 u string 𝐵zva�emo edit rastoja�em 𝑑(𝐴,𝐵) stringova 𝐴 i 𝐵. Funkcija 𝑑(𝐴,𝐵) jemetrika: oqigledno je 𝑑(𝐴,𝐵) = 0 ako i samo ako je 𝐴 = 𝐵, i 𝑑(𝐴,𝐵) =𝑑(𝐵,𝐴) za proizvone stringove 𝐴 i 𝐵 (ako postoji niz edit operacijadu�ine 𝑘 koji transformixe𝐴 u𝐵, onda inverznih 𝑘 operacija, prime�enihobrnutim redosledom, transformixu 𝐵 u 𝐴). Ako su 𝐴, 𝐵 i 𝐶 proizvonistringovi, tada va�i nejednakost trougla: 𝑑(𝐴,𝐵) + 𝑑(𝐵,𝐶) ≥ 𝑑(𝐴,𝐶).

Page 73: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

73 5. Strategije konstrukcije algoritama

Zaista, postoji niz od 𝑑(𝐴,𝐵) edit operacija koje prevode 𝐴 u 𝐵, i postojiniz od 𝑑(𝐵,𝐶) edit operacija koje prevode 𝐵 u 𝐶. Posmatrane zajedno,ovih 𝑑(𝐴,𝐵) + 𝑑(𝐵,𝐶) edit operacija prevode 𝐴 u 𝐶; iz qi�enice da je𝑑(𝐴,𝐶) najma�i broj edit operacija koje 𝐴 prevode u 𝐶 sledi tra�enanejednakost. Rastoja�e 𝑑(𝐴,𝐵) poznato je kao Levenxtajnovo rastoja�e(Levenshtein).

Razmotrimo kako mo�e da izgleda minimalni niz edit operacija koji𝐴 transformixe u 𝐵. Na neke znakove 𝑎𝑖1 , 𝑎𝑖2 ,. . . , 𝑎𝑖𝑘 iz 𝐴 prime�ujese operacija zamene znacima 𝑏𝑗1 , 𝑏𝑗2 ,. . . , 𝑏𝑗𝑘 iz 𝐵. Iskuqiva�em ovihznakova, stringovi 𝐴 i 𝐵 su podeeni na 𝑘+1 (eventualno praznih) grupaznakova, tako da se 𝑖-ta (prazna) grupa u 𝐵 dobija brisa�em znakova iz𝑖-te grupe u 𝐴, ili se od 𝑖-te (prazne) grupe u 𝐴 umeta�em dobija 𝑖-tagrupa u 𝐵, 𝑖 = 1, 2, . . . , 𝑘 + 1. Zbog minimalnosti su sve edit operacije uokviru jedne grupe istog tipa | ili brisa�e ili umeta�e, jer se brisa�ejednog znaka, pa umeta�e drugog znaka na isto mesto (dve edit operacijesa ukupnom cenom 2), mo�e zameniti samo jednom zamenom, cene 1.

Uzimaju�i u obzir ove qi�enice, niz edit operacija koji je kandidatza optimalni, mo�e se predstaviti na slede�i pregledan naqin. Uvedimonovi znak 𝜑. Naspram obrisanih znakova iz 𝐴 u 𝐵 se ume�e znak 𝜑, anaspram znakova u 𝐵, dobijenih umeta�em, u 𝐴 se ume�e znak 𝜑. Timesu 𝐴, 𝐵 produ�eni do nizova 𝐴, �� jednake du�ine, a sve edit operacijesvedene su na zamenu: brisa�u znaka 𝑎 iz 𝐴 odgovara zamena 𝑎 iz 𝐴 sa 𝜑 u ��,a umeta�u znaka 𝑏 u 𝐵 odgovara zamena 𝜑 u 𝐴 znakom 𝑏 u ��. Znak 𝜑 smatrase razliqitim od svih ostalih znakova, pa je cena zamene istim, odnosnorazliqitim znakom i dae 0, odnosno 1. Dva gore navedena primera nizovaedit operacija mogu se predstaviti sa

𝑎 𝑏 𝜑 𝑏 𝑐𝜑 𝑏 𝑎 𝑏 𝑏

1+ 0+ 1+ 0+ 1 = 3,

odnosno𝜑 𝑎 𝑏 𝑏 𝑐𝑏 𝑎 𝑏 𝑏 𝜑

1+ 0+ 0+ 0+ 1 = 2.

Problem transformisa�a stringova ima tako�e primenu pri upore�i-va�u datoteka i pri quva�u razliqitih verzija datoteke. Pretpostavimoda imamo tekstualnu datoteku (npr. program) i drugu datoteku koji jemodifikacija prve. Zgodno je izdvojiti razlike izme�u dve datoteke. Tomogu biti razliqite verzije istog programa, pa ako su verzije sliqnei treba da budu arhivirane, efikasnije je quvati samo jednu verziju irazlike umesto obe verzije programa. U takvim sluqajevima (ovde znacimastringa odgovaraju linije u datoteci) dozvoene operacije su samo umeta�ai brisa�a. U drugim situacijama mogu se razliqitim edit operacijamadodeliti razliqite cene.

Mogu�ih nizova edit operacija koje 𝐴 prevode u 𝐵, ima mnogo, pa je naprvi pogled texko me�u �ima na�i najboi. Za poqetak, ograniqi�emo sena nala�e�e edit rastoja�a 𝑑(𝐴,𝐵), odnosno najma�eg broja edit operacijakoje prevode 𝐴 u 𝐵 (a ne i samog niza edit operacija). Kao i obiqno,pokuxa�emo da problem reximo indukcijom. Za zadati string 𝐴 oznaqimosa𝐴(𝑖)�egov prefiks du�ine 𝑖. Problem je odrediti rastoja�e 𝑑(𝐴(𝑛), 𝐵(𝑚)).

Page 74: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

5.2. Dinamiqko programira�e 74

Za 𝑛 = 0 potrebno je prazan prefiks 𝐴(0) transformisati u string 𝐵(𝑚)du�ine 𝑚. Oqigledno je za to potrebno najma�e 𝑚 operacija umeta�aznakova; prema tome, 𝑑(𝐴(0), 𝐵(𝑚)) = 𝑚 za 𝑚 ≥ 0. Sliqno, 𝑑(𝐴(𝑛), 𝐵(0)) =𝑛 za 𝑛 ≥ 0, jer se najkra�i niz edit operacija koje string 𝐴(𝑛) du�ine𝑛 prevodi u prazan string 𝐵(0) sastoji od 𝑛 brisa�a. Da bismo problemrexili indukcijom, potrebno je da izraqunava�e rastoja�a 𝑑(𝐴(𝑖), 𝐵(𝑗))izme�u nekih prefiksa svedemo na izraqunava�e rastoja�a izme�u nekih"kra�ih" prefiksa. Ovaj ci mo�e se posti�i ako razmotrimo koja editoperacija mo�e biti posled�a u nizu edit operacija koje prevode 𝐴(𝑖) u𝐵(𝑗). Postoje tri mogu�nosti:

(a) zamena znaka 𝑎𝑖 (istim ili razliqitim) znakom 𝑏𝑗 , poxto je prethodnoprefiks 𝐴(𝑖− 1) transformisan u 𝐵(𝑗 − 1),

(b) umeta�e znaka 𝑏𝑗 poxto je prethodno prefiks 𝐴(𝑖) transformisan u𝐵(𝑗 − 1);

(c) brisa�e znaka 𝑎𝑖, poxto je prethodno prefiks 𝐴(𝑖−1) transformisanu 𝐵(𝑗),

xto je ilustrovano na slici 5.3.

𝐵(𝑗 − 1)

𝐴(𝑖− 1) 𝑎𝑖

𝑏𝑗

(a) zamena

? ?

𝐵(𝑗 − 1) 𝐵(𝑗)

𝐴(𝑖) 𝐴(𝑖− 1)𝜑 𝑎𝑖

𝑏𝑗 𝜑

(b) umeta�e (b) brisa�e

? ?? ?

Slika 5.3: Nizovi edit operacija koje transformixu 𝐴 u 𝐵 razvrstaniprema posled�oj operaciji.

Neka je

𝑐(𝑖, 𝑗) =

{0, za 𝑎𝑖 = 𝑏𝑗1, za 𝑎𝑖 = 𝑏𝑗

.

Najma�i broj edit operacija koje 𝐴(𝑖) prevode u 𝐵(𝑗) jednak najma�em odtri izraza 𝑑(𝐴(𝑖−1), 𝐵(𝑗−1))+𝑐(𝑖, 𝑗), 𝑑(𝐴(𝑖), 𝐵(𝑗−1))+1 i 𝑑(𝐴(𝑖−1), 𝐵(𝑗))+1. Neka je 𝐶 matrica qiji su elementi rastoja�a svih podstringova 𝐴 odsvih podstringova 𝐵, tj. 𝐶[𝑖, 𝑗] = 𝑑(𝐴(𝑖), 𝐵(𝑗)), 0 ≤ 𝑖 ≤ 𝑛, 0 ≤ 𝑗 ≤ 𝑚.Elementi ove matrice zadovoavaju diferencnu jednaqinu

𝐶[𝑖, 𝑗] = min{𝐶[𝑖− 1, 𝑗 − 1] + 𝑐(𝑖, 𝑗), 𝐶[𝑖, 𝑗 − 1] + 1, 𝐶[𝑖− 1, 𝑗] + 1},

koja �en proizvoan element izra�ava preko tri druga: iznad, levo igore{levo:

𝑗↓...

· · · 𝐶[𝑖− 1, 𝑗 − 1] 𝐶[𝑖− 1, 𝑗] . . .𝑖→ · · · 𝐶[𝑖, 𝑗 − 1] 𝐶[𝑖, 𝑗] . . .

Page 75: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

75 5. Strategije konstrukcije algoritama

Ova jednakost omogu�uje izraqunava�e svih elemenata matrice 𝐶, poxtose znaju �ena 0-ta kolona i 0-ta vrsta. Time je rexen problem izraqunava�aedit rastoja�a stringova 𝐴 i 𝐵: 𝑑(𝐴,𝐵) = 𝐶[𝑛,𝑚]. Opisani algoritam jeprimer strategije dinamiqkog programira�a.

Realizacija. Za izraqunava�a se koristi matrica 𝐶 dimenzije (𝑛 +1) × (𝑚 + 1), pri qemu prvi, odnosno drugi indeks uzimaju vrednosti izopsega [0, 𝑛], odnosno [0,𝑚]. Neka 𝑀 [𝑖, 𝑗] oznaqava posled�u edit operacijukoja dovodi do minimalne vrednosti 𝐶[𝑖, 𝑗]. Dovono je zapamtiti samotu posled�u edit operaciju (brisa�e 𝐴[𝑖], umeta�e 𝐵[𝑗] ili zamena 𝐴[𝑖] sa𝐵[𝑗]), jer se do kompletnog niza edit operacija dolazi prolaze�i elementematrice "unazad", polaze�i od 𝑀 [𝑛,𝑚]. Za izraqunava�e 𝐶[𝑖, 𝑗], potrebnoje znati 𝐶[𝑖 − 1, 𝑗], 𝐶[𝑖, 𝑗 − 1] i 𝐶[𝑖 − 1, 𝑗 − 1]. Posled�a promena 𝑀 [𝑖, 𝑗]odre�ena je time koja od tri mogu�nosti daje minimalnu vrednost za 𝐶[𝑖, 𝑗];izbor nije uvek jednoznaqan!

𝐸𝑑𝑖𝑡 𝑟𝑎𝑠𝑡𝑜𝑗𝑎𝑛𝑗𝑒(𝐴,𝑛,𝐵,𝑚)ulaz: 𝐴 (string du�ine 𝑛) i 𝐵 (string du�ine 𝑚)izlaz: 𝐶 (matrica rastoja�a podstringova 𝐴 i 𝐵)1 for 𝑖← 0 to 𝑛 do 𝐶[𝑖, 0]← 𝑖2 for 𝑗 ← 0 to 𝑚 do 𝐶[0, 𝑗]← 𝑗3 for 𝑖← 1 to 𝑛 do4 for 𝑗 ← 1 to 𝑚 do5 𝑥← 𝐶[𝑖− 1, 𝑗] + 16 𝑦 ← 𝐶[𝑖, 𝑗 − 1] + 17 if 𝑎𝑖 = 𝑏𝑗 then8 𝑧 ← 𝐶[𝑖− 1, 𝑗 − 1]9 else10 𝑧 ← 𝐶[𝑖− 1, 𝑗 − 1] + 111 𝐶[𝑖, 𝑗]← min(𝑥, 𝑦, 𝑧) {izabrana edit operacija pamti se u 𝑀 [𝑖, 𝑗]}

Primer 5.1. Razmotrimo rad algoritma na gore navedenom primeru strin-gova 𝐴 = 𝑎𝑏𝑏𝑐 i 𝐵 = 𝑏𝑎𝑏𝑏. Matrica rastoja�a podstringova 𝐴 i 𝐵, zajednosa strelicama koje prikazuju mogu�e puteve dobija�a 𝐶[𝑖, 𝑗] (↘: zamena 𝐴[𝑖]sa 𝐵[𝑗], →: umeta�e 𝐵[𝑗] ili ↓: brisa�e 𝐴[𝑖]), data je slede�om tabelom:

𝐵 0 1 2 3 4𝐴 𝑏 𝑎 𝑏 𝑏

0 0 → 1 → 2 → 3 → 4

↓ ↘ ↘

1 𝑎 1 1 1 → 2 → 3

↓ ↘ ↘ ↓ ↘ ↘

2 𝑏 2 1 → 2 1 → 2

↓ ↘ ↓ ↘ ↘ ↓ ↘

3 𝑏 3 2 2 2 1

↓ ↘ ↓ ↘ ↓ ↓

4 𝑐 4 3 3 3 2

U do�em desnom uglu tabele pronalazimo 𝑑(𝐴,𝐵) = 2. Do do�eg desnogugla dolazi se samo iz poa iznad �ega operacijom ↓. Na sliqan naqinidu�i unazad, vidimo da se do gor�eg levog ugla tabele unazad mo�e do�i

Page 76: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

5.2. Dinamiqko programira�e 76

samo na jedan naqin, nizom operacija (unazad) ↓↘↘↘→. Prema tome, u ovomprimeru postoji samo jedan niz od dve edit transformacije koji prevodi𝐴 = 𝑎𝑏𝑏𝑐 u 𝐵 = 𝑏𝑎𝑏𝑏.

Slo�enost. Svaki element matrice 𝐶 izraqunava se za konstantnovreme, pa je vremenska slo�enost algoritma 𝑂(𝑛𝑚). Problem sa ovomverzijom algoritma je u tome xto je i �egova prostorna slo�enost 𝑂(𝑛𝑚).Ako se matrica 𝐶 popu�ava vrstu po vrstu, poxto vrsta zavisi samood prethodne, ovaj algoritam mo�e se preraditi tako da mu prostornaslo�enost bude 𝑂(𝑚).

Primedba. Dinamiqko programira�e je korisno u situaciji kad se re-xe�e problema izra�ava preko nekoliko rexe�a nexto ma�ih problema.Korix�e�e tabele za smexta�e prethodnih rezultata je uobiqajeno koddinamiqkog programira�a. Tabela se obiqno prolazi nekim redosledom(obiqno po vrstama), pa je slo�enost algoritma najma�e kvadratna.

Varijanta ovog problema je transformacija stringa 𝐴 u string 𝐵,tako da umeta�e ispred ili iza 𝐴 ima cenu 0. Time se posti�e da seraqunaju samo edit operacije koje 𝐴 pretvaraju u neki podstring 𝐵. Naprimer, \dabar" se na ovaj naqin mo�e transformisati u \abrakadabra"tako xto se ispred, odnosno iza \dabar" umetne \abraka", odnosno \a", aiz reqi \dabar" obrixe se samo jedno slovo, drugo \a". Poxto se jedinoovo brisa�e raquna, vidi se da u tekstu \abrakadabra" postoji req \dabr"koja je na rastoja�u samo 1 od reqi \dabar".

Kako se ovaj problem mo�e efikasno rexiti? Umeta�ima ispred reqiu tabeli 𝐶 odgovara prva vrsta tabele: umeta�e ispred reqi je pretvara�e�enog praznog prefiksa u neprazan prefiks teksta. Prema tome, kreta�edesno u prvoj vrsti tabele 𝐶 ima cenu 0. Na sliqan naqin, kreta�u desno uposled�em redu tabele 𝐶 odgovara dopisiva�e iza kraja reqi 𝐴, pa i tomkreta�u odgovara cena 0. U svim ostalim situacijama elementi tabele 𝐶raqunaju se na opisani naqin. Prema tome, va�i:

Page 77: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

77 5. Strategije konstrukcije algoritama

𝐶[0, 𝑗] = 0, 𝑗 = 0, 1, . . . ,𝑚,𝐶[𝑖, 0] = 𝑖, 𝑖 = 0, 1, . . . , 𝑛 i

𝐶[𝑖, 𝑗] =

{min{𝐶[𝑖− 1, 𝑗 − 1] + 𝑐(𝑖, 𝑗), 𝐶[𝑖, 𝑗 − 1] + 1, 𝐶[𝑖− 1, 𝑗] + 1}, 1 ≤ 𝑖 < 𝑛min{𝐶[𝑖− 1, 𝑗 − 1] + 𝑐(𝑖, 𝑗), 𝐶[𝑖, 𝑗 − 1], 𝐶[𝑖− 1, 𝑗] + 1}, 𝑖 = 𝑛

5.3 Strategija razlaga�a

Problem nala�e�a maksimalnog uzastopnog podniza datog niza 𝐴[1..𝑛](videti poglave 4.8) mo�e se efikasno rexiti i primenom strategijerazlaga�a. Neka je potrebno odrediti maksimalni podniz niza𝐴[𝑙𝑒𝑣𝑖..𝑑𝑒𝑠𝑛𝑖].Prvi korak je podeliti niz na dva podniza pribli�no jednake du�ine𝐴[𝑙𝑒𝑣𝑖..𝑠𝑟𝑒𝑑𝑛𝑗𝑖] i 𝐴[𝑠𝑟𝑒𝑑𝑛𝑗𝑖 + 1..𝑑𝑒𝑠𝑛𝑖], gde je 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 = ⌊(𝑙𝑒𝑣𝑖 + 𝑑𝑒𝑠𝑛𝑖)/2⌋.Bilo koji uzastopni podniz 𝐴[𝑖..𝑗] niza 𝐴[𝑙𝑒𝑣𝑖..𝑑𝑒𝑠𝑛𝑖] mo�e da zauzme jedanod naredne tri vrste polo�aja (videti sliku 5.4):

∙ mo�e ceo da le�i u podnizu 𝐴[𝑙𝑒𝑣𝑖..𝑠𝑟𝑒𝑑𝑛𝑗𝑖], ako je 𝑙𝑒𝑣𝑖 ≤ 𝑢 ≤ 𝑖 ≤𝑠𝑟𝑒𝑑𝑛𝑗𝑖,

∙ mo�e ceo da le�i u podnizu 𝐴[𝑠𝑟𝑒𝑑𝑛𝑗𝑖 + 1..𝑑𝑒𝑠𝑛𝑖], ako je 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 <𝑖 ≤ 𝑗 ≤ 𝑑𝑒𝑠𝑛𝑖,

∙ mo�e da delom le�i u levom, a delom u desnom podnizu, ako je 𝑙𝑒𝑣𝑖 ≤𝑖 ≤ 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 < 𝑗 ≤ 𝑑𝑒𝑠𝑛𝑖.

Slika 5.4: (a) Mogu�i polo�aji podnizova 𝐴[𝑙𝑒𝑣𝑖..𝑑𝑒𝑠𝑛𝑖]; ceo u𝐴[𝑙𝑒𝑣𝑖..𝑠𝑟𝑒𝑑𝑛𝑗𝑖], ceo u 𝐴[𝑠𝑟𝑒𝑑𝑛𝑗𝑖+1..𝑑𝑒𝑠𝑛𝑖] ili se prote�e kroz oba podniza.(b) Bilo koji podniz 𝐴[𝑙𝑒𝑣𝑖..𝑠𝑟𝑒𝑑𝑛𝑗𝑖] koji sadr�i indekse 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 i𝑠𝑟𝑒𝑑𝑛𝑗𝑖 + 1 sastoji se od dva podniza 𝐴[𝑖..𝑠𝑟𝑒𝑑𝑛𝑗𝑖] i 𝐴[𝑠𝑟𝑒𝑑𝑛𝑗𝑖 + 1..𝑑𝑒𝑠𝑛𝑖],gde je 𝑙𝑒𝑣𝑖 ≤ 𝑖 ≤ 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 i 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 < 𝑗 ≤ 𝑑𝑒𝑠𝑛𝑖

Prema tome, i maksimalni podniz mo�e da zauzima jedan od navedenetri vrste polo�aja. Maksimalni podniz niza 𝐴[𝑙𝑒𝑣𝑖..𝑑𝑒𝑠𝑛𝑖] je ili maksi-malni podniz niza𝐴[𝑙𝑒𝑣𝑖..𝑠𝑟𝑒𝑑𝑛𝑗𝑖] ili maksimalni podniz niza𝐴[𝑠𝑟𝑒𝑑𝑛𝑗𝑖+1..𝑑𝑒𝑠𝑛𝑖] ili sadr�i dva sred�a indeksa. Prema tome, potrebno je odreditirekurzivno maksimalne podnizove u levom i desnom podnizu, odreditinajve�i podniz koji sadr�i indekse 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 i 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 + 1 i od te trivrednosti izabrati najve�u.

Maksimalni podniz koji preseca indeks 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 mo�e se odrediti zavreme 𝑂(𝑑𝑒𝑠𝑛𝑖 − 𝑙𝑒𝑣𝑖 + 1). Kao xto se mo�e videti na slici 5.4(b), takavpodniz je konkatenacija dva podniza 𝐴[𝑖..𝑠𝑟𝑒𝑑𝑛𝑗𝑖] i 𝐴[𝑠𝑟𝑒𝑑𝑛𝑗𝑖+1..𝑗], gde je𝑙𝑒𝑣𝑖 ≤ 𝑖 ≤ 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 i 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 < 𝑗 ≤ 𝑑𝑒𝑠𝑛𝑖. Prema tome, dovono je odrediti

Page 78: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

5.3. Strategija razlaga�a 78

najve�e podnizove oblika 𝐴[𝑖..𝑠𝑟𝑒𝑑𝑛𝑗𝑖] i 𝐴[𝑠𝑟𝑒𝑑𝑛𝑗𝑖+1..𝑗] i sabrati �ihovezbirove. Taj posao se mo�e obaviti algoritmom u nastavku:

𝑀𝑎𝑥 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 𝑧𝑏𝑖𝑟(𝐴, 𝑙𝑒𝑣𝑖, 𝑠𝑟𝑒𝑑𝑛𝑗𝑖, 𝑑𝑒𝑠𝑛𝑖)ulaz: 𝐴 (niz u granicama od 𝑙𝑒𝑣𝑖 do 𝑑𝑒𝑠𝑛𝑖) i 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 (indeks sred�eg elementa)izlaz: 𝑚𝑎𝑥 𝑙𝑒𝑣𝑎 i 𝑚𝑎𝑥 𝑑𝑒𝑠𝑛𝑎 (indeksi poqetka i kraja maksimalnog

sred�eg niza) i �egova suma1 𝑙𝑒𝑣𝑎 𝑠𝑢𝑚𝑎← −∞2 𝑠𝑢𝑚𝑎← 03 for 𝑖← 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 downto 𝑙𝑒𝑣𝑖 do4 𝑠𝑢𝑚𝑎← 𝑠𝑢𝑚𝑎+𝐴[𝑖]5 if 𝑠𝑢𝑚𝑎 > 𝑙𝑒𝑣𝑎 𝑠𝑢𝑚𝑎 then6 𝑙𝑒𝑣𝑎 𝑠𝑢𝑚𝑎← 𝑠𝑢𝑚𝑎7 𝑚𝑎𝑥 𝑙𝑒𝑣𝑎← 𝑖8 𝑑𝑒𝑠𝑛𝑎 𝑠𝑢𝑚𝑎← −∞9 𝑠𝑢𝑚𝑎← 010 for 𝑗 ← 𝑠𝑟𝑒𝑑𝑛𝑗𝑖+ 1 to 𝑑𝑒𝑠𝑛𝑖 do11 𝑠𝑢𝑚𝑎← 𝑠𝑢𝑚𝑎+𝐴[𝑗]12 if 𝑠𝑢𝑚𝑎 > 𝑑𝑒𝑠𝑛𝑎 𝑠𝑢𝑚𝑎 then13 𝑑𝑒𝑠𝑛𝑎 𝑠𝑢𝑚𝑎← 𝑠𝑢𝑚𝑎14 𝑚𝑎𝑥 𝑑𝑒𝑠𝑛𝑎← 𝑗15 return (𝑚𝑎𝑥 𝑙𝑒𝑣𝑎,𝑚𝑎𝑥 𝑑𝑒𝑠𝑛𝑎, 𝑙𝑒𝑣𝑎 𝑠𝑢𝑚𝑎+ 𝑑𝑒𝑠𝑛𝑎 𝑠𝑢𝑚𝑎)

Algoritam nalazi posebno najve�i zbir podniza 𝐴[𝑚𝑎𝑥 𝑙𝑒𝑣𝑖..𝑠𝑟𝑒𝑑𝑛𝑗𝑖]me�u podnizovima𝐴[𝑖..𝑠𝑟𝑒𝑑𝑛𝑗𝑖] i najve�i zbir podniza𝐴[𝑠𝑟𝑒𝑑𝑛𝑗𝑖+1..𝑚𝑎𝑥 𝑑𝑒𝑠𝑛𝑖]me�u podnizovima 𝐴[𝑠𝑟𝑒𝑑𝑛𝑗𝑖+ 1..𝑗].

Ako je du�ina niza𝐴[𝑙𝑒𝑣𝑖..𝑑𝑒𝑠𝑛𝑖] jednaka 𝑛 onda je slo�enost algoritma𝑀𝑎𝑥 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 𝑧𝑏𝑖𝑟 jednaka Θ(𝑛), jer je zbir brojeva prolaza kroz dve forpete Θ(𝑛), a tela obe pete se izvrxavaju za vreme 𝑂(1). Rekurzivnialgoritam za nala�e�e maksimalnog uzastopnog podniza opisan je narednimkodom:

𝑀𝑎𝑥 𝑝𝑜𝑑𝑛𝑖𝑧(𝐴, 𝑙𝑒𝑣𝑖, 𝑑𝑒𝑠𝑛𝑖)ulaz: 𝐴 (niz u granicama od 𝑙𝑒𝑣𝑖 do 𝑑𝑒𝑠𝑛𝑖izlaz: indeksi poqetka i kraja maksimalnog podniza i �egova vrednost1 if 𝑙𝑒𝑣𝑖 = 𝑑𝑒𝑠𝑛𝑖 then2 return (𝑙𝑒𝑣𝑖, 𝑑𝑒𝑠𝑛𝑖, 𝐴[𝑙𝑒𝑣𝑖]) {bazni sluqaj: samo jedan element}3 else4 𝑠𝑟𝑒𝑑𝑛𝑗𝑖← ⌊(𝑙𝑒𝑣𝑖+ 𝑑𝑒𝑠𝑛𝑖)/2⌋5 (𝑙𝑒𝑣𝑖1, 𝑑𝑒𝑠𝑛𝑖1, 𝑠𝑢𝑚𝑎1)←𝑀𝑎𝑥 𝑝𝑜𝑑𝑛𝑖𝑧(𝐴, 𝑙𝑒𝑣𝑖, 𝑠𝑟𝑒𝑑𝑛𝑗𝑖)6 (𝑙𝑒𝑣𝑖2, 𝑑𝑒𝑠𝑛𝑖2, 𝑠𝑢𝑚𝑎2)←𝑀𝑎𝑥 𝑝𝑜𝑑𝑛𝑖𝑧(𝐴, 𝑠𝑟𝑒𝑑𝑛𝑗𝑖+ 1, 𝑑𝑒𝑠𝑛𝑖)7 (𝑙𝑒𝑣𝑖3, 𝑑𝑒𝑠𝑛𝑖3, 𝑠𝑢𝑚𝑎3)←𝑀𝑎𝑥 𝑠𝑟𝑒𝑑𝑛𝑗𝑖 𝑧𝑏𝑖𝑟(𝐴, 𝑙𝑒𝑣𝑖, 𝑠𝑟𝑒𝑑𝑛𝑗𝑖, 𝑑𝑒𝑠𝑛𝑖)8 if 𝑠𝑢𝑚𝑎1 ≥ 𝑠𝑢𝑚𝑎2 and 𝑠𝑢𝑚𝑎1 ≥ 𝑠𝑢𝑚𝑎3 then9 return (𝑙𝑒𝑣𝑖1, 𝑑𝑒𝑠𝑛𝑖1, 𝑠𝑢𝑚𝑎1)10 elseif 𝑠𝑢𝑚𝑎2 ≥ 𝑠𝑢𝑚𝑎1 and 𝑠𝑢𝑚𝑎2 ≥ 𝑠𝑢𝑚𝑎3 then11 return (𝑙𝑒𝑣𝑖2, 𝑑𝑒𝑠𝑛𝑖2, 𝑠𝑢𝑚𝑎2)12 else13 return (𝑙𝑒𝑣𝑖3, 𝑑𝑒𝑠𝑛𝑖3, 𝑠𝑢𝑚𝑎3)

Page 79: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

79 5. Strategije konstrukcije algoritama

Poziv 𝑀𝑎𝑥 𝑝𝑜𝑑𝑛𝑖𝑧(𝐴, 1, 𝑛) pronalazi maksimalni uzastopni podniz.Slo�enost algoritma 𝑇 (𝑛) zadovoava rekurentnu relaciju:

𝑇 (𝑛) = 2𝑇 (𝑛/2) +𝑂(𝑛)

qije je rexe�e (prema master teoremi) 𝑇 (𝑛) = 𝑂(𝑛 log 𝑛). Vidimo da jeslo�enost algoritma ve�a od linearne slo�enosti inkrementalnog algo-ritma iz poglava 4.8. Problem je u tome xto je slo�enost kombinova�arezultata dva rekurzivna poziva Θ(𝑛). Ispostava se da pojaqava�eminduktivne hipoteze (o tome xta je rezultat rekurzivnih poziva) mo�edobiti efikasniji algoritam, linearne slo�enosti. Sa idejom sliqnomonoj iz poglava 4.8 mo�emo da pretpostavimo da se iz rekurzivnih pozivaza levi, odnosno desni podniz dobijaju maksimalni zbir, prefiks i sufiks𝑀1, 𝑃1, 𝑆1, odnosno 𝑀2, 𝑃2, 𝑆2. Tako�e, potrebno je odrediti i zbir svihelemenata u levom i desnom podnizu i oznaqimo te vrednosti sa 𝑍1 i𝑍2. Ovi zbirovi su potrebni u situaciji kada se maksimalni prefikscelog niza sastoji od svih elemenata levog podniza na koji se nadove�emaksimalni prefiks desnog niza (i analogno za maksimalni sufiks celogniza). Na osnovu ovih vrednosti mogu se izraqunati maksimalni zbir 𝑀 ,prefiks 𝑃 , sufiks 𝑆 i ukupan zbir svih elemenata niza 𝑍.

𝑀 = max{𝑀1,𝑀2, 𝑆1 + 𝑃2}

𝑃 = max{𝑃1, 𝑍1 + 𝑃2}

𝑆 = max{𝑆2, 𝑍2 + 𝑆1}

𝑍 = 𝑍1 + 𝑍2

Slo�enost ovog algoritma zadovoava rekurentnu relaciju 𝑇 (𝑛) =2𝑇 (𝑛/2) +𝑂(1), qije je rexe�e 𝑇 (𝑛) = 𝑂(𝑛).

5.4 Probabilistiqki algoritmi

Algoritmi koje smo do sada razmatrali bili su deterministiqki | svakinaredni korak je unapred odre�en. Kad se deterministiqki algoritamizvrxava dva puta sa istim ulazom, naqin izvrxava�a je oba puta isti,kao i dobijeni izlazi. Probabilistiqki algoritmi su drugaqiji. Onisadr�e korake koji zavise ne samo od ulaza, nego i od nekih sluqajnihdoga�aja. Postoji mnogo varijacija probabilistiqkih algoritama. Ovde�emo razmotriti dve od �ih.

5.4.1 Odre�iva�e broja iz gor�e polovine

Pretpostavimo da je dat skup brojeva 𝑥1, 𝑥2, . . . , 𝑥𝑛 i da me�u �imatreba izabrati neki broj iz "gor�e polovine", odnosno broj koji je ve�iili jednak od bar 𝑛/2 ostalih. Na primer, potrebno je izabrati "dobrog"studenta, pri qemu je kriterijum proseqna ocena. Jedna mogu�nost je uzetinajve�i broj (koji je uvek u gor�oj polovini). Ve� smo videli da je za

Page 80: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

5.4. Probabilistiqki algoritmi 80

odre�iva�e maksimuma potrebno 𝑛 − 1 upore�iva�a. Druga mogu�nost jezapoqeti sa izvrxava�em algoritma za nala�e�e maksimuma, i zaustavitise kad se pro�e polovina brojeva. Broj koji je ve�i ili jednak od jednepolovine brojeva je sigurno u gor�oj polovini. Algoritam zahteva oko𝑛/2 upore�iva�a. Mo�e li se ovaj posao obaviti efikasnije? Nije texkopokazati da je nemogu�e garantovati da broj pripada gor�oj polovini akoje izvrxeno ma�e od 𝑛/2 upore�iva�a. Prema tome, opisani algoritam jeoptimalan.

Ovaj algoritam je, me�utim, optimalan samo ako insistiramo na garan-ciji. U mnogo sluqajeva garancija nije neophodna, dovona je pristojnaverovatno�a da je rexe�e taqno. Na primer, kod hex tabela nije mogu�egarantovati da do kolizija ne�e do�i, ali postoji naqin za rexava�eproblema izazvanih pojavom kolizija (operacije sa hex tabelama se tako�emogu smatrati probabilistiqkim algoritmima). Ako odustanemo od ga-rancije, onda postoji boi algoritam za nala�e�e elementa iz gor�epolovine. Izaberimo na sluqajan naqin dva broja 𝑥𝑖 i 𝑥𝑗 iz skupa, tako daje 𝑖 = 𝑗. Pretpostavimo da je 𝑥𝑖 ≥ 𝑥𝑗 . Verovatno�a da sluqajno izabranibroj iz skupa pripada gor�oj polovini je bar 1/2 (ona �e biti ve�a od1/2 ako je vixe brojeva jednako medijani). Verovatno�a da ni jedan odbrojeva 𝑥𝑖, 𝑥𝑗 ne pripada gor�oj polovini je najvixe 1/4. Zbog 𝑥𝑖 ≥ 𝑥𝑗

ova verovatno�a jednaka je verovatno�i da 𝑥𝑖 ne pripada gor�oj polovini.Prema tome, verovatno�a da 𝑥𝑖 pripada gor�oj polovini je bar 3/4.

Verovatno�a 3/4 da je dobijeni rezultat taqan obiqno nije dovona.Me�utim, opisani pristup mo�e se uopxtiti. Na sluqajan naqin biramo𝑘 brojeva iz skupa i odre�ujemo najve�i od �ih. Na isti naqin kao uspecijalnom sluqaju, zakuqujemo da najve�i od 𝑘 elemenata pripada gor�ojpolovini sa verovatno�om najma�e 1−2−𝑘 (on ne pripada gor�oj poloviniakko gor�oj polovini ne pripada ni jedan od izabranih brojeva, odnosno saverovatno�om najvixe 2−𝑘). Na primer, ako je 𝑘 = 10, verovatno�a uspehaje pribli�no 0.999, a za 𝑘 = 20 ta verovatno�a je oko 0.999999. Ako je pak𝑘 = 100, onda je verovatno�a grexke za sve praktiqne svrhe zanemariva.Imamo dakle algoritam koji bira broj iz gor�e polovine sa proizvonovelikom verovatno�om, a koji izvrxava najvixe 100 upore�iva�a nezavisnood veliqine ulaza. Pri tome se pretpostava da se sluqajni izbor jednogbroja mo�e izvrxiti za konstantno vreme; generisa�e sluqajnih brojevabi�e razmotreno u odeku 5.4.2.

Za ovakav algoritam obiqno se ka�e da je Monte Karlo algoritam.Netaqan rezultat mo�e se dobiti sa jako malom verovatno�om, ali jevreme izvrxava�a ovog Monte Karlo algoritma boe nego za najboideterministiqki algoritam. Drugi tip probabilistiqkog algoritma jeonaj koji nikad ne daje pogrexan rezultat, ali mu vreme izvrxava�anije garantovano. Ovakav algoritam se mo�e izvrxiti brzo, ali se mo�eizvrxavati i proizvono dugo. Ovaj tip algoritma, koji sa obiqno zoveLas Vegas, koristan je ako mu je oqekivano vreme izvrxava�a malo.U odeku 5.4.3 bi�e razmotren Las Vegas algoritam koji rexava jedanproblem boje�a elemenata skupa.

Ideja probabilistiqkih algoritama tesno je povezana sa izvo�e�emdokaza. Korix�e�e verovatno�e za dokaziva�e kombinatornih tvr�e�a jemo�na tehnika. U osnovi, ako se doka�e da neki objekat iz skupa objekataima verovatno�u ve�u od nule, onda je to indirektan dokaz da postoji

Page 81: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

81 5. Strategije konstrukcije algoritama

objekat sa tim osobinama. Ova ideja mo�e se iskoristiti za konstrukcijuprobabilistiqkog algoritma. Pretpostavimo da tra�imo objekat sa nekimosobinama, a znamo da ako generixemo sluqajni objekat, on �e zadovoavati�eeni uslov sa verovatno�om ve�om od nule (xto je probabilistiqkidokaz da tra�eni objekat postoji). Mi zatim pratimo probabilistiqkidokaz, generixu�i sluqajne doga�aje kad je potrebno, i na kraju nalazimo�eeni objekat se nekom pozitivnom verovatno�om. Ovaj postupak mo�ese ponavati vixe puta, sve do uspexnog pronala�e�a �eenog objekta.

5.4.2 Sluqajni brojevi

Bitan element probabilistiqkih algoritama je generisa�e sluqajnihbrojeva. Potrebno je imati efikasne metode za rexava�e ovog problema.Deterministiqka procedura generixe brojeve na fiksirani naqin, patako dobijeni brojevi ne mogu biti sluqajni u pravom smislu te reqi.Ti brojevi su me�usobno povezani na sasvim odre�eni naqin. Na sre�u, tou praksi nije veliki problem: dovono je koristiti tzv. pseudosluqajnebrojeve. Ti brojevi generixu se deterministiqkom procedurom (pa daklenisu pravi sluqajni brojevi), ali procedura generisa�a je dovono slo-�ena, da druge aplikacije ne "ose�aju" me�uzavisnosti izme�u tih brojeva.

Ovde ne�emo detanije razmatrati dobija�e sluqajnih brojeva. Jedanod naqina za dobija�e pseudosluqajnih brojeva je linearni kongruentnimetod. Prvi korak je izbor celog broja 𝑋0 kao prvog qlana niza, sluqaj-nog broja izabranog na neki nezavisan naqin (na primer, teku�e vreme umikrosekundama). Ostali brojevi izraqunavaju se na osnovu diferencnejednaqine 𝑋𝑛 = 𝑎𝑋𝑛−1 + 𝑏 (mod 𝑚), gde su 𝑎, 𝑏 i 𝑚 konstante, koje semoraju pa�ivo izabrati. I pored pa�ivog izbora, ovakvi nizovi nisudovono kvalitetni ("sluqajni"). Alternativa su diferencne jednaqinevixeg reda (sa zavisnox�u od vixe prethodnih qlanova). Na ovaj naqindobija se niz brojeva iz opsega od 0 do 𝑚 − 1. Ako su potrebni sluqajnibrojevi iz opsega od 0 do 1, onda se qlanovi ovog niza mogu podeliti sa 𝑚.

5.4.3 Jedan problem sa boje�em

Neka je 𝑆 skup od 𝑛 elemenata, i neka je 𝑆1, 𝑆2, . . . 𝑆𝑘 kolekcija saqi�enaod 𝑘 �egovih razliqitih podskupova, od kojih svaki sadr�i taqno 𝑟 ele-menata, pri qemu je 𝑘 ≤ 2𝑟−2.

Problem. Obojiti svaki element skupa 𝑆 jednom od dve boje, crvenomili plavom, tako da svaki podskup 𝑆𝑖 sadr�i bar jedan plavi i bar jedancrveni element.

Boje�e koje zadovoava taj uslov zva�emo ispravnim boje�em. Ispos-tava se da pod navedenim uslovima ispravno boje�e uvek postoji. Jednos-tavan probabilistiqki algoritam dobija se prepravkom probabilistiqkogdokaza postoja�a takvog boje�a:

Obojiti svaki elemenat 𝑆 sluqajno izabranom bojom, plavomili crvenom, nezavisno od boje�a ostalih elemenata.

Page 82: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

5.4. Probabilistiqki algoritmi 82

Jasno je da ovaj algoritam ne daje uvek ispravno boje�e. Izraquna�emoverovatno�u neuspeha. Verovatno�a da su svi elementi 𝑆𝑖 obojeni crveno je2−𝑟, a verovatno�a da su svi obojeni istom bojom (crvenom ili plavom) je2 · 2−𝑟 = 21−𝑟. Sluqajni doga�aj (podskup skupa svih 2𝑛 sluqajnih boje�a| elementarnih doga�aja) 𝐴: "neki od skupova 𝑆𝑖 je neispravno obojen"je unija svih sluqajnih doga�aja 𝐴𝑖: "skup 𝑆𝑖 je neispravno obojen", za𝑖 = 1, 2, . . . , 𝑘, pa va�i nejednakost

𝑃 (𝐴) ≤𝑘∑

𝑖=1

𝑃 (𝐴𝑖) =

𝑘∑𝑖=1

21−𝑟 = 𝑘21−𝑟 ≤ 2𝑟−221−𝑟 =1

2.

Time je dokazano da ispravno boje�e postoji (u protivnom bi verovatno�aneispravnog boje�a bila taqno 1). Pored toga, vidi se da je ovaj probabi-listiqki algoritam dobar. Ispravnost zadatog boje�a lako se proverava:proveravaju se elementi svakog podskupa dok se ne prona�u dva razliqitoobojena elementa. Verovatno�a uspexnog boje�a 𝑝 = 1 − 𝑃 (𝐴) je bar 1/2.Ako se u jednom pokuxaju ne dobije neispravno boje�e, postupak (boje�e)se ponava. Oqekivani broj pokuxaja boje�a je ma�i ili jednak od dva.Zaista, verovatno�a da se ispravno boje�e prona�e u 𝑗-tom pokuxaju je(1− 𝑝)𝑗−1𝑝, pa je matematiqko oqekiva�e broja pokuxaja

∞∑𝑗=1

𝑗(1− 𝑝)𝑗−1𝑝 =1

𝑝≤ 2.

Opisani algoritam boje�a je oqigledno Las Vegas algoritam, jer se boje�aproveravaju jedno za drugim, a sa tra�e�em se zavrxava kad se nai�ena ispravno boje�e. Ne postoji garancija uspexnog boje�a u bilo komfiksiranom broju pokuxaja, ali je ovaj algoritam u praksi ipak vrloefikasan.

Page 83: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Glava 6

Strukture podataka

Do sada smo se upoznali sa velikim brojem razliqitih struktura podataka.Stek i red su strukture podataka kod kojih je unapred odre�en elementkoji se izbacuje: kod steka to je element koji je posled�i dodat u strukturu,a kod reda element koji je prvi dodat. Obe ove strukture efikasno implementirajuoperacije za dodava�e novog elementa u strukturu i izbaciva�e elementaiz strukture.

Razmotrili smo, tako�e, binarna stabla pretrage kao primer apstraktnogtipa podataka reqnik: operacije koje podr�ava reqnik su dodava�e novogelementa, izaciva�e proizvonog elementa iz strukture i ispitiva�eprisustva nekog elementa u strukturi podataka. Kao poseban primer videlismo AVL stabla kod kojih se sve navedene operacije izvode efikasno.

Videli smo i hip kao jednu implementaciju reda sa prioritetom. Redsa prioritetom podr�ava dve operacije: dodava�e elementa u strukturu iizaciva�e elementa sa najve�im ili najma�im prioritetom iz strukture.Kao primer strukture podataka razmatrali smo i hex tabele koje predstavajujox jednu mogu�u realizaciju reqnika kod koje se u proseku operacijeizvode dosta efikasno.

U nastavku �emo razmotriti novu strukturu podataka, koja se koristiza efikasno izvo�e�e dve operacije sa familijama disjunktnih skupova.

6.1 Problem formira�a unija

6.1.1 Struktura podataka za disjunktne skupove

Problem formira�a unija mo�e da poslu�i kao primer kako dobroizabrana struktura podataka mo�e da poboxa efikasnost algoritma.Neka je dato 𝑛 elemenata 𝑥1, 𝑥2, . . . , 𝑥𝑛, koji su podeeni u disjunktnepodskupove. Na poqetku su podskupovi jednoqlani. Nad elementima i pod-skupovima mogu se proizvonim redosledom izvrxavati slede�e dve ope-racije:

∙ podskup(𝑖): daje ime podskupa koji sadr�i element 𝑥𝑖;

∙ unija(𝐴,𝐵): formira uniju podskupova 𝐴 i 𝐵, podskup sa jedinstve-nim imenom.

83

Page 84: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

6.1. Problem formira�a unija 84

Ci je na�i strukturu podataka koja omogu�uje xto efikasnije izvrxava�eove dve operacije.

Prvi kandidat za �eenu strukturu podataka je vektor. Poxto su svielementi poznati, mogu se smestiti u vektor𝑋 du�ine 𝑛. Najjednostavnijerexe�e postavenog problema je smestiti u𝑋[𝑖] ime podskupa koji sadr�ielement 𝑥𝑖. U ovakvoj realizaciji nala�e�e podskupa kome pripada element𝑥𝑖 je trivijalno. Me�utim, formira�e unije dva podskupa je slo�enije.Pretpostavimo da je unija(𝐴,𝐵) novi podskup sa imenom 𝐴. Tada svimelementima vektora 𝑋 iz podskupa 𝐵 treba promeniti ime u 𝐴, pa jeslo�enost ove operacije u najgorem sluqaju 𝑂(𝑛).

Primer 6.1. Sistemu disjunktnih podskupova {1}, {2, 4, 6}, {3, 5}, {7} odgovaraniz

𝑖 1 2 3 4 5 6 7𝑋[𝑖] 1 2 3 2 3 2 7

Da bi se formirala unija {2, 4, 6}∪{3, 5} trebalo bi𝑋[3] i𝑋[5] zamenitisa 2.

Mogu� je i drugi pristup ovom problemu, zasnovan na indirektnomadresira�u, pri qemu je nala�e�e unije bitno jednostavnije. On tako�ekoristi celobrojni niz𝑋 du�ine 𝑛. Za predstava�e podskupa {𝑖1, 𝑖2, ..., 𝑖𝑘}koriste se lokacije 𝑖1, 𝑖2, ..., 𝑖𝑘 u nizu 𝑋. Na svakoj od tih lokacija, semjednoj, zapisuje se indeks nekog drugog elementa podskupa - oca tog elementau na taj naqin predstavenom stablu; na lokaciji koja odgovara jednomelementu zapisuje se 0 - taj element je koren stabla koje odgovara podskupu.

Na primer, spomenuti sistem disjunktnih skupova mo�e se predstavitinizom:

𝑖 1 2 3 4 5 6 7𝑋[𝑖] 0 6 0 6 3 0 0

Koreni stabala { podskupova su elementi 1, 3, 6 i 7 kojima odgovarajuvrednosti 0 u nizu 𝑋; podskup {2, 4, 6} je stablo sa tri qvora, od kojih je6 koren, a 2 i 4 su �egovi sinovi; dakle 2, 4 i 6 su u podskupu 6.

Na poqetku su svi podskupovi jednoqlani, sto znaqi da su svi elementikoreni stabala sa po jednim qvorom; svi elementi niza 𝑋 su dakle nule.Pretpostavimo da su 𝐴, 𝐵 dva elementa koji su predstavnici svojih pod-skupova, tj. 𝑋[𝐴] = 𝑋[𝐵] = 0. Operacija unija(𝐴,𝐵) izvodi se tako xtose 𝑋[𝐴] zameni sa 𝐵 ili obrnuto tako xto se 𝑋[𝐵] zameni sa 𝐴. Poslenekoliko formira�a unija, vektor𝑋 implicitno zadaje nekoliko stabala;na slici 6.1 ta stabla su prikazana kao eksplicitno predstavana stabla.Svako stablo odgovara podskupu, a svaki qvor elementu. Element u korenustabla slu�i kao ime podskupa. Da bi se pronaxlo ime podskupa komepripada element 𝐺, treba pratiti lanac pokazivaqa do korena stabla,sloga sa pokazivaqem nil. Ovo podse�a na situaciju kad neko promeniadresu: umesto da svima java da je promenio adresu, on na staroj adresiostava svoju novu adresu (sa molbom da mu dostavaju prispelu poxtu)

Page 85: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

85 6. Strukture podataka

| xto je jednostavnije. Naravno, nala�e�e prave adrese je sada nextoslo�enije, odnosno operacija nala�e�a podskupa kome element pripadaje ma�e efikasna (naroqito ako su stabla koja predstavaju podskupoveizdu�ena).

𝐺

𝐶

𝐴

6

𝐹

𝐵 𝐸

6

𝐷

66

nil nil nil

Slika 6.1: Struktura podataka pogodna za predstava�e disjunktnihpodskupova.

Ideja na kojoj se zasniva efikasna struktura za nala�e�e unija je da sestabla uravnote�e, odnosno skrate. Unija podskupova 𝐴 i 𝐵 na slici 6.1mo�e se formirati usmerava�em pokazivaqa 𝐴 ka 𝐵, ili usmerava�empokazivaqa𝐵 ka𝐴. Oqigledno je da se u drugom sluqaju dobija uravnote�enijestablo. Ispostava se da slede�a heuristika rexava problem: pokazivaqkorena stabla sa ma�e elemenata (odnosno proizvonog od dva stabla akoim je broj elemenata jednak) treba usmeriti ka korenu stabla sa ve�imbrojem elemenata. Jasno je da pri formira�u svake nove unije usput trebaizraqunavati i broj elemenata novog podskupa. Taj podatak se smexta kaodeo sloga u korenu stabla. Primenom ovog pravila se pri formira�u unijaposti�e da je visina stabla sa 𝑚 elemenata uvek ma�a ili jednaka odlog2 𝑚, xto pokazuje slede�a teorema.

Teorema 6.1. Ako se pri formira�u unija koristi uravnote�ava�e,svako stablo visine ℎ sadr�i bar 2ℎ elemenata.

Dokaz. Dokaz se izvodi indukcijom po broju formira�a unija. Tvr�e�eje oqigledno taqno za prvu uniju: dobija se stablo visine jedan sa dvaelementa. Posmatrajmo uniju podskupova 𝐴 i 𝐵. Neka su visine odgovara-ju�ih stabala ℎ(𝐴) i ℎ(𝐵) i neka su brojevi qvorova u �ima 𝑛(𝐴), 𝑛(𝐵);bez sma�e�a opxtosti mo�e se pretpostaviti da je 𝑛(𝐴) ≥ 𝑛(𝐵). Visinakombinovanog stabla jednaka je max{ℎ(𝐴), ℎ(𝐵)+ 1} ve�em od brojeva ℎ(𝐴)i ℎ(𝐵) + 1. Ako je visina jednaka ℎ(𝑎), onda je tvr�e�e taqno, jer novostavlo ima za istu visinu vixe elemenata od stabla 𝐴. U protivnom, novostablo ima bar dva puta vixe elemenata od 𝑛(𝐵) (zbog 𝑛(𝐴) ≥ 𝑛(𝐵)), avisina mu je za jedan ve�a od ℎ(𝐵), pa je tvr�e�e teoreme tako�e taqno.

Posledica ove teoreme je da se pri tra�e�u podskupa kome pripadaelement nikad ne prolazi vixe od log2 𝑛 pokazivaqa. Unija podskupova seformira za konstantno vreme. Prema tome, za izvrxe�e niza od 𝑚 ≥ 𝑛operacija prve ili druge vrste, broj koraka je najvixe 𝑂(𝑚 log 𝑛). RobertTaran (Tarjan) bio je prvi koji je diskutovao gor�e granice vremenskeslo�enosti niza operacija i on je osmislio kako se efikasnost ove struk-ture mo�e dae poboxati.

Posmatrajmo jox jednom analogiju sa preusmerava�em poxiki. Usluqaju vixestruke promene adrese, poxika �e i�i od jedne do druge

Page 86: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

6.1. Problem formira�a unija 86

adrese, dok ne dospe na konaqno odredixte. Razumna ideja je da se poisporuci poxike unazad, na sve usputne adrese, dostavi posled�a adresa.Dakle, kad se pri odre�iva�u podskupa nekog elementa pre�e put do korenastabla, taj put se jox jednom prolazi u obratnom smeru, a pokazivaqi svihusputnih qvorova preusmeravaju se ka korenu. Slo�enost tra�e�a timeje pove�ana najvixe za konstantni faktor (tj. asimptotska slo�enosttra�e�a se ne me�a), a posti�e se skra�iva�e puteva pri kasnijim tra-�e�ima podskupa za sve usputne qvorove.

Page 87: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Glava 7

Grafovski algoritmi

7.1 Uvod

U ovom poglavu razmatra�emo komplikovanije odnose izme�u objekata zaqije modelira�e koristimo grafove. Grafovi mogu da modeliraju mnogosituacija, i koriste se u razliqitim oblastima, od kartografije do so-cijalne psihologije. Prikaza�emo vixe va�nih osnovnih algoritama zaobradu grafova i za izraqunava�e nekih �ihovih karakteristika.

Pogledajmo najpre neke primere modelira�a pomo�u grafova.

1. Nala�e�e dobrog puta do nekog odredixta u gradu je grafovskiproblem. Ulice odgovaraju granama (usmerene grane u sluqaju jed-nosmernih ulica), a raskrsnice qvorovima. Svakom qvoru i svakojgrani (delu ulice) mo�e se pridru�iti vreme potrebno za prolazak,pa se problem svodi na nala�e�e "najbr�eg" puta izme�u dva qvora.

2. Proces izvrxava�a nekog programa mo�e se podeliti na sta�a. Izsvakog sta�a mo�e se nastaviti na nekoliko naqina. Neka sta�asmatraju se nepo�enim. Problem utvr�iva�a koja sta�a mogu dovestiu nepo�ena sta�a je grafovski problem u kome sta�ima odgovarajuqvorovi, a grane ukazuju na mogu�e prelaske iz jednog u drugo sta�e.

3. Prave�e rasporeda qasova na fakultetu mo�e se posmatrati kaografovski problem. Qvorovi odgovaraju grupama, a dve grupe su po-vezane ako postoji student koji namerava da ih obe poha�a, ili akoimaju zajedniqkog predavaqa. Problem je kako napraviti raspored pogrupama tako da se minimiziraju konflikti. To je te�ak problem,za koji nije lako na�i dobra rexe�a.

Za predstava�e grafova najqex�e �emo koristiti predstavu listompovezanosti, koja je efikasnija za retke grafove (odnosno grafove sarelativno malim brojem grana). Uvex�emo najpre neophodne pojmove. Graf𝐺 = (𝑉,𝐸) sastoji se od skupa 𝑉 qvorova, i skupa 𝐸 grana. Svakagrana odgovara paru razliqitih qvorova (ponekad su dozvoene pete,odnosno grane koje vode od qvora ka �emu samom; mi �emo pretpostava-ti da one nisu dozvoene). Graf mo�e biti usmeren ili neusmeren.Grane usmerenog grafa su ure�eni parovi qvorova (koji se zovu krajevi

87

Page 88: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.1. Uvod 88

grane); redosled dva qvora koje povezuje grana je bitan. Grane usmerenoggrafa crtaju se kao strelice usmerene od jednog qvora (poqetka) ka drugomqvoru (kraju). Grane neusmerenog grafa su neure�eni parovi. Stepen 𝑑(𝑣)qvora 𝑣 je broj grana susednih qvoru 𝑣 (odnosno broj grana koje 𝑣 povezuju sanekim drugim qvorom). U usmerenom grafu razlikujemo ulazni stepen,broj grana za koje je qvor 𝑣 kraj, i izlazni stepen, broj grana za koje jeqvor 𝑣 poqetak.

Put od 𝑣1 do 𝑣𝑘 je niz qvorova 𝑣1, 𝑣2, . . . , 𝑣𝑘 povezanih granama (𝑣1, 𝑣2),(𝑣2, 𝑣3), . . . , (𝑣𝑘−1, 𝑣𝑘); ove grane se obiqno tako�e smatraju delom puta.Put je prost, ako se svaki qvor u �emu pojavuje samo jednom. Za qvor𝑢 se ka�e da je dosti�an iz qvora 𝑣 ako postoji put (usmeren, odnosnoneusmeren, zavisno od grafa) od 𝑣 do 𝑢. Po definiciji je qvor 𝑣 dosti�aniz 𝑣. Ciklus je put qiji se prvi i posled�i qvor poklapaju. Ciklus jeprost ako se, sem prvog i posled�eg qvora, ni jedan drugi qvor u �emune pojavuje dva puta. Neusmereni oblik usmerenog grafa 𝐺 = (𝑉,𝐸) jeisti graf, bez smerova na granama. Za graf se ka�e da je povezan ako (u�egovom neusmerenom obliku) postoji put izme�u proizvona dva qvora.Xuma je graf koji (u svom neusmerenom obliku) ne sadr�i cikluse.Stablo ili drvo je povezana xuma.Korensko stablo je usmereno stablosa jednim posebno izdvojenim qvorom, koji se zove koren pri qemu su svegrane usmerene od korena.

Graf 𝐻 = (𝑈,𝐹 ) je podgraf grafa 𝐺 = (𝑉,𝐸) ako je 𝑈 ⊆ 𝑉 i 𝐹 ⊆ 𝐸.Povezuju�e stablo neusmerenog grafa 𝐺 je �egov podgraf koji je stabloi sadr�i sve qvorove 𝐺. Indukovani podgraf grafa 𝐺 = (𝑉,𝐸) je�egov podgraf 𝐻 = (𝑈,𝐹 ) takav da je 𝑈 ⊆ 𝑉 i 𝐹 sadr�i sve grane iz𝐸 qija su oba kraja u 𝑈 . Ako graf 𝐺 = (𝑉,𝐸) nije povezan, onda se onmo�e na jedinstven naqin razlo�iti u skup povezanih podgrafova, kojise zovu komponente povezanosti grafa 𝐺. Skup qvorova komponentepovezanosti je klasa ekvivalencije u odnosu na relaciju dosti�nosti zaqvorove: komponentu povezanosti 𝐺 kojoj pripada qvor 𝑣 qine svi qvorovidosti�ni iz 𝑣. Komponenta povezanosti grafa 𝐺 je maksimalni povezanipodgraf 𝐺 (odnosno takav podgraf koji nije pravi podgraf ni jednogdrugog povezanog podgrafa 𝐺). Povezuju�a xuma neusmerenog grafa𝐺 je �egov podgraf koji se sastoji od povezuju�ih stabala komponentipovezanosti 𝐺. Bipartitni graf je graf qiji se qvorovi mogu podelitina dva disjunktna podskupa tako da u grafu postoje samo grane izme�uqvorova iz razliqitih podskupova. Te�inski graf je graf qijim sugranama pridru�eni realni brojevi (te�ine, cene, du�ine, eng. weight,cost, length).

Mnoge definicije za usmerene i neusmerene grafove su sliqne, izuzevnekih oqiglednih razlika. Na primer, usmereni i neusmereni putevi de-finixu se na isti naqin, sem xto se kod usmerenih grafova specificirajui smerovi grana. Znaqe�e takvih termina zavisi od konteksta; ako se, naprimer, radi o putevima u usmerenom grafu, onda se misli na usmereneputeve.

Razmotri�emo najpre jednostavan problem, koji se smatra prvim pro-blemom teorije grafova | obilazak Keningsberxkih mostova. Zatim �emose baviti ure�e�em qvorova grafa, nala�e�em najkra�ih puteva u grafui drugim problemima.

Page 89: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

89 7. Grafovski algoritmi

7.2 Ojlerovi grafovi

Pojam Ojlerovih grafova u vezi je sa, kako se smatra, prvim rexenimproblemom teorije grafova. Xvajcarski matematiqar Leonard Ojler na-ixao je na slede�i zadatak 1736. godine. Grad Kenigsberg, danas Kali-�ingrad, le�i na obalama i na dva ostrva na reci Pregel, kao xto jeprikazano na slici 7.1. Grad je bio povezan sa sedam mostova. Pita�e(koje je muqilo mnoge tadax�e gra�ane Kenigsberga) bilo je da li jemogu�e poqeti xet�u iz bilo koje taqke u gradu i vratiti se u polaznutaqku, prelaze�i pri tome svaki most taqno jednom. Rexe�e je dobijenouopxtava�em problema. "Graf" na istoj slici, bar xto se ovog problematiqe, ekvivalentan je sa planom grada (navodnici su upotrebeni jer ovaj"graf" ima vixestruke grane, pa strogo gledano po definiciji i nijegraf; to je tzv. multigraf). Problem se mo�e ekvivalentno formulisatikao slede�i problem iz teorije grafova: da li je mogu�e u povezanom grafuprona�i ciklus, koji svaku granu sadr�i taqno jednom (Ojlerov ciklus).Ili: da li je mogu�e nacrtati graf sa slike 7.1 ne di�u�i olovku sapapira, tako da olovka svoj put zavrxi na mestu sa koga je i krenula. Ojlerje rexio problem, dokazavxi da je ovakav obilazak mogu� ako i samo akoje graf povezan i svi �egovi qvorovi imaju paran stepen. Takvi grafovizovu se Ojlerovi grafovi. Poxto "graf" na slici 7.1 ima qvoroveneparnog stepena, zakuqujemo da problem Kenigsberxkih mostova nemarexe�e. Dokaz teoreme indukcijom, koji sledi, daje efikasan algoritamza nala�e�e Ojlerovog ciklusa u grafu.

� � �� � 𝐶

𝐴

𝐵

𝐷 bbb b𝐴

𝐵

𝐶 𝐷

Slika 7.1: Problem Kenigsberxkih mostova, i odgovaraju�i graf.

Problem. U zadatom neusmerenom povezanom grafu 𝐺 = (𝑉,𝐸) qiji sviqvorovi imaju paran stepen, prona�i zatvoreni put 𝑃 , takav da se u �emusvaka grana iz 𝐸 pojavuje taqno jednom.

Lako je pokazati da ako u grafu postoji Ojlerov ciklus, onda sviqvorovi grafa moraju imati paran stepen. Za vreme obilaska zatvorenogciklusa, u svaki qvor se ulazi isto toliko puta koliko puta se iz �egaizlazi. Poxto se svaka grana prolazi taqno jednom, broj grana susednihproizvonom qvoru mora biti paran. Da bismo indukcijom dokazali daje uslov dovoan, moramo najpre da izaberemo parametar po kome �e bitiizvedena indukcija. Taj izbor treba da omogu�i sma�iva�e problema, bez�egove promene. Ako uklonimo qvor iz grafa, stepeni qvorova u dobijenomgrafu nisu vixe svi parni. Trebalo bi da uklonimo takav skup grana 𝑆,da za svaki qvor 𝑣 grafa broj grana iz 𝑆 susednih sa 𝑣 bude paran (makari 0). Proizvoan ciklus zadovoava ovaj uslov, pa se postava pita�eda li Ojlerov graf uvek sadr�i ciklus. Pretpostavimo da smo zapoqeli

Page 90: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.3. Pretraga u dubinu usmerenih grafova { novi pojmovi i

osobine 90

obilazak grafa iz proizvonog qvora 𝑣 proizvonim redosledom. Sigurnoje da �e se tokom obilaska ranije ili kasnije nai�i na ve� obi�eni qvor,jer kad god u�emo u neki qvor, sma�ujemo �egov stepen za jedan, qinimoga neparnim, pa ga uvek mo�emo i napustiti. Naravno, ovakav obilazakne mora da sadr�i sve grane grafa. To pokazuje da u svakom Ojlerovomgrafu mora da postoji neki ciklus.

Sada mo�emo da formulixemo induktivnu hipotezu i doka�emo teoremu.

Induktivna hipoteza. Povezani graf sa < 𝑚 grana qiji svi qvoroviimaju paran stepen, sadr�i Ojlerov ciklus, koji se mo�e prona�i.

Posmatrajmo graf 𝐺 = (𝑉,𝐸) sa 𝑚 grana. Neka je 𝑃 neki ciklus u 𝐺, ineka je 𝐺′ graf dobijen ukla�a�em grana koje qine 𝑃 iz grafa 𝐺. Stepenisvih qvorova u 𝐺′ su parni, jer je broj uklo�enih grana susednih bilo komqvoru paran. Ipak se induktivna hipoteza ne mo�e primeniti na graf𝐺′, jer on ne mora biti povezan, videti primer na slici 7.2. Neka su 𝐺′

1,𝐺′

2, . . . , 𝐺′𝑘 komponente povezanosti grafa 𝐺

′. U svakoj komponenti stepenisvih qvorova su parni. Pored toga, broj grana u svakoj komponenti je ma�iod 𝑚 (�ihov ukupan broj grana ma�i je od 𝑚). Prema tome, induktivnahipoteza mo�e se primeniti na sve komponente: u svakoj komponenti 𝐺′

𝑖

postoji Ojlerov ciklus 𝑃 ′𝑖 , i mi znamo da ga prona�emo. Potrebno je sada

sve ove cikluse objediniti u jedan Ojlerov ciklus za graf 𝐺. Polazimoiz bilo kog qvora ciklusa 𝑃 ("magistralnog puta") sve dok ne do�emo donekog qvora 𝑣𝑗 koji pripada komponenti 𝐺′

𝑗 . Tada obilazimo komponentu𝐺′

𝑗 ciklusom 𝑃𝑗 ("lokalnim putem") i vra�amo se u qvor 𝑣𝑗 . Nastavaju�ina taj naqin, obilaze�i cikluse komponenti u trenutku nailaska na �ih,na kraju �emo se vratiti u polaznu taqku. U tom trenuku sve grane grafa𝐺 pro�ene su taqno jednom, xto znaqi da je konstruisan Ojlerov ciklus.

e

e e

e e

e e

ee e

Slika 7.2: Primer konstrukcije Ojlerovog puta indukcijom. Punomlinijom izvuqene su grane pomo�nog ciklusa. Izbaciva�em grana ovogciklusa iz grafa, dobija se graf sa dve komponente povezanosti.

7.3 Pretraga u dubinu usmerenih grafova { novi pojmovi i osobine

U toku izvo�e�a DFS usmerenog grafa 𝐺 = (𝑉,𝐸) qvorovima 𝑣 ∈ 𝑉 grafamogu se pripisati:

∙ boje 𝑣.𝑏𝑜𝑗𝑎

{ bela { za neoznaqene qvorove

{ siva { za qvor iz koga je pokrenut DFS

Page 91: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

91 7. Grafovski algoritmi

{ crna { za qvorove iz kojih je zavrxen rekurzivni poziv DFS.

∙ otac 𝑣.𝜋 u DFS xumi. Pri tome je 𝑣.𝜋 = NULL ako je qvor 𝑣 korennekog od stabala DFS xume grafa 𝐺

∙ vremena otvara�a 𝑣.𝑑 i zatvara�a 𝑣.𝑓 qvora 𝑣 ∈ 𝑉 . Pri tome je vremevrednost posebnog brojaqa, koji pre pokreta�a DFS ima vrednost 0,a inkrementira se svaki put kada se:

{ pokrene rekurzivni poziv iz nekog qvora 𝑤 ∈ 𝑉 ; �egova vrednostse tada upisuje u 𝑤.𝑑

{ zavrxi rekurzivni poziv iz nekog qvora 𝑤 ∈ 𝑉 ; �egova vrednostse tada upisuje u 𝑤.𝑓

Jasno je da za svaki qvor 𝑤 ∈ 𝑉 va�i 1 ≤ 𝑤.𝑑 < 𝑤.𝑓 ≤ 2|𝑉 |. Poredtoga, qvor 𝑤 je beo do trenutka 𝑤.𝑑, siv do trenutka 𝑤.𝑓 i crn posle togtrenutka.

Zadatak: Ako se znaju vrednosti 𝑢.𝑑 i 𝑢.𝑓 za sve qvorove 𝑢 ∈ 𝑉 , odreditiodlaznu i dolaznu numeraciju grafa. Da li poznava�e odlazne i dolaznenumeracije qvorova jednoznaqno odre�uje �ihova vremena 𝑢.𝑑 i 𝑢.𝑓? Akoda, kako?

U nastavku je prikazan kod algoritma DFS sa ovim dopunama:

𝐷𝐹𝑆(𝐺)ulaz: 𝐺 = (𝑉,𝐸) (usmereni graf)izlaz: izvrxen DFS obilazak stabla1 for each 𝑣 ∈ 𝑉 do2 𝑣.𝑏𝑜𝑗𝑎← 𝑏𝑒𝑙𝑎3 𝑣.𝜋 ← NULL4 𝑡← 05 for each 𝑣 ∈ 𝑉6 if 𝑣.𝑏𝑜𝑗𝑎 = 𝑏𝑒𝑙𝑎7 𝐷𝐹𝑆 𝑜𝑏𝑖𝑙𝑎𝑧𝑎𝑘(𝐺, 𝑣)

𝐷𝐹𝑆 𝑜𝑏𝑖𝑙𝑎𝑧𝑎𝑘(𝐺, 𝑢)ulaz: 𝐺 = (𝑉,𝐸) (usmereni graf), 𝑢 (qvor grafa)izlaz: izvrxen DFS obilazak stabla1 𝑡← 𝑡+ 1 {beli qvor 𝑢 je upravo otvoren}2 𝑢.𝑑← 𝑡3 𝑢.𝑏𝑜𝑗𝑎← 𝑠𝑖𝑣𝑎4 for each (𝑢, 𝑣) ∈ 𝐸 {otkrivamo granu (𝑢, 𝑣)}5 if 𝑣.𝑏𝑜𝑗𝑎 = 𝑏𝑒𝑙𝑎6 𝑣.𝜋 ← 𝑢7 𝐷𝐹𝑆 𝑜𝑏𝑖𝑙𝑎𝑧𝑎𝑘(𝐺, 𝑣)8 𝑢.𝑏𝑜𝑗𝑎← 𝑐𝑟𝑛𝑎 {qvor 𝑢 zacr�ujemo}9 𝑡← 𝑡+ 110 𝑢.𝑓 ← 𝑡

Page 92: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.3. Pretraga u dubinu usmerenih grafova { novi pojmovi i

osobine 92

Slika 7.3: Primer izvrxava�a algoritma DFS na usmerenom grafu. Granegrafa u toku pretrage postaju podebane ako su grane stabla, odnosnoisprekidane (ostale). Grane koje ne pripadaju stablu oznaqene su slovima𝐵, 𝐶 ili 𝐹 ako su redom povratne, popreqne (ulevo), odnosno direktnegrane. Unutar qvora 𝑢 upisani su brojevi 𝑢.𝑑 i 𝑢.𝑓 .

Primer izvrxava�a algoritma DFS prikazan je na slici 7.3.

Algoritam DFS pre prvog poziva 𝐷𝐹𝑆 𝑜𝑏𝑖𝑙𝑎𝑧𝑎𝑘 sve qvorove boji u beloi pokazivaq na oca u xumi postava na NULL . Globalni brojaq 𝑡 (vreme)postava na 0. Posle svakog poziva𝐷𝐹𝑆 𝑜𝑏𝑖𝑙𝑎𝑧𝑎𝑘 u liniji 7 qvor 𝑢 postajekoren stabla u DFS xumi. Po zavrxetku algoritma DFS svim qvorovima𝑢 pridru�eno je vreme otvara�a 𝑢.𝑑 i zatvara�a 𝑢.𝑓 .

Na poqetku poziva 𝐷𝐹𝑆 𝑜𝑏𝑖𝑙𝑎𝑧𝑎𝑘(𝐺, 𝑢) qvor 𝑢 je beo; posle inkremen-tira�a brojaqa 𝑡 (linija 1), u liniji 2 se ta vrednost upisuje kao vremeotvara�a 𝑢.𝑑, a u liniji 3 qvor 𝑢 postaje siv. U peti u linijama 4{7 prolaze se redom svi susedi 𝑣 qvora 𝑢 i iz �ih se rekurzivno pokre�e𝐷𝐹𝑆 𝑜𝑏𝑖𝑙𝑎𝑧𝑎𝑘 ako je 𝑣 u tom trenutku beo (neoznaqen). Po zavrxetku peteqvor 𝑢 dobija crnu boju.

Zapa�a se da rezultat pretrage zavisi od redosleda qvorova u liniji 5algoritmaDFS, odnosno od redosleda suseda 𝑣 qvora 𝑢 u liniji 4 algoritma𝐷𝐹𝑆 𝑜𝑏𝑖𝑙𝑎𝑧𝑎𝑘 (taj redosled odre�en je listom povezanosti grafa 𝐺).

Zapa�a se da je 𝑢 = 𝑣.𝜋 (odnosno 𝑢 je otac 𝑣) akko je poziv𝐷𝐹𝑆 𝑜𝑏𝑖𝑙𝑎𝑧𝑎𝑘(𝐺, 𝑣)pokrenut za vreme prolaska kroz spisak suseda qvora 𝑢 u peti. Poredtoga, qvor 𝑣 je potomak qvora 𝑢 u xumi akko je 𝑣 otvoren u toku vremenskogintervala dok je 𝑢 siv.

Naredna teorema predstava va�nu karakterizaciju kada je jedan qvorpotomak drugog qvora u DFS xumi.

Teorema [teorema o belim putevima]: U DFS xumi grafa 𝐺 = (𝑉,𝐸)

Page 93: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

93 7. Grafovski algoritmi

(usmerenog ili neusmerenog) qvor 𝑣 je potomak qvora 𝑢 akko u trenutku𝑢.𝑑 pokreta�a pretrage iz 𝑢 postoji put od 𝑢 do 𝑣 preko (iskuqivo) belihqvorova.

Dokaz: (⇒): U specijalnom sluqaju kada je 𝑣 = 𝑢, put od 𝑣 do 𝑢 sastojise od samo jednog qvora 𝑢, koji je jox uvek beo u trenutku pripisiva�avremena 𝑢.𝑑. Pretpostavimo sada da je 𝑣 pravi potomak 𝑢 u DFS xumi.Tada je 𝑣.𝑑 > 𝑢.𝑑, odnosno u trenutku 𝑢.𝑑 qvor 𝑣 je beo. Ovo va�i za svepotomke qvora 𝑢 pa va�i za sve qvorove na jedinstvenom putu kroz stabloxume od 𝑢 do 𝑣.

(⇐): Pretpostavimo da u trenutku 𝑢.𝑑 postoji put od belih qvorovaod 𝑢 do 𝑣, a da 𝑣 nije potomak 𝑢 u DFS xumi. Bez sma�e�a opxtostimo�e se pretpostaviti da su svi qvorovi na tom putu sem 𝑣 potomci 𝑢 (uprotivnom se za 𝑣 mo�e uzeti prvi qvor na tom putu koji nije potomak𝑢). Neka 𝑤 prethodi qvoru 𝑣 na putu (specijalno, 𝑤 mo�e da bude qvor 𝑢).Poxto (𝑤, 𝑣) nije grana stabla, za vreme pretrage iz qvora 𝑤 u trenutkukada se u peti nai�e na qvor 𝑣, qvor 𝑣 je ve� oznaqen i crn (zato xtopre nailaska na qvor 𝑣 prilikom pretrage iz 𝑤 moraju biti zavrxenepretrage svih podstabala sa prethodnim susedima qvora 𝑤), tj. do �egavodi put od 𝑤 (a time i put od 𝑢) preko grana stabla, odnosno 𝑣 je potomak𝑢, suprotno pretpostavci.

7.4 Topoloxko sortira�e

Pretpostavimo da je zadat skup poslova u vezi sa qijim redosledom izvr-xava�a postoje neka ograniqe�a. Neki poslovi zavise od drugih, odnosnone mogu se zapoqeti pre nego xto se ti drugi poslovi zavrxe. Sve zavisnostisu poznate, a ci je napraviti takav redosled izvrxava�a poslova kojizadovoava sva zadata ograniqe�a; drugim reqima, tra�i se takav ras-pored za koji va�i da svaki posao zapoqi�e tek kad budu zavrxeni sviposlovi od kojih on zavisi. Potrebno je konstruisati efikasni algoritamza formira�e takvog rasporeda. Problem se zove topoloxko sortira�e.Zadatim poslovima i �ihovim me�uzavisnostima mo�e se na prirodannaqin pridru�iti graf. Svakom poslu pridru�uje se qvor, a usmerenagrana od posla 𝑥 do posla 𝑦 postoji ako se posao 𝑦 ne mo�e zapoqeti prezavrxetka posla 𝑥. Jasno je da graf mora biti acikliqki (bez usmerenihciklusa), jer se u protivnom neki poslovi nikada ne bi mogli zapoqeti.

Problem. U zadatom usmerenom acikliqkom grafu 𝐺 = (𝑉,𝐸) sa 𝑛 qvo-rova numerisati qvorove brojevima od 1 do 𝑛, tako da ako je proizvoanqvor 𝑣 numerisan sa 𝑘, onda svi qvorovi do kojih postoji usmereni put iz𝑣 imaju broj ve�i od 𝑘.

Prirodna je slede�a induktivna hipoteza.

Induktivna hipoteza. Umemo da numerixemo na zahtevani naqin qvo-rove svih usmerenih acikliqkih grafova sa ma�e od 𝑛 qvorova.

Bazni sluqaj jednog qvora, odnosno posla, je trivijalan. Kao i obiqno,posmatrajmo proizvoni graf sa 𝑛 qvorova, uklonimo jedan qvor, pri-menimo induktivnu hipotezu i pokuxajmo da proxirimo numeraciju napolazni graf. Imamo slobodu izbora 𝑛-tog qvora. Trebalo bi ga izabrati

Page 94: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.4. Topoloxko sortira�e 94

tako da ostatak posla bude xto jednostavniji. Potrebno je numerisatiqvorove. Koji qvor je najlakxe numerisati? To je oqigledno qvor (posao)koji ne zavisi od drugih poslova, odnosno qvor sa ulaznim stepenom nula;�emu se mo�e dodeliti broj 1. Da li se uvek mo�e prona�i qvor saulaznim stepenom nula? Intuitivno se name�e potvrdan odgovor, jer se saoznaqava�em negde mora zapoqeti. Slede�a lema potvr�uje ovu qi�enicu.

Lema 7.1. Usmereni acikliqki graf uvek ima qvor sa ulaznim stepenomnula.

Dokaz. Ako bi svi qvorovi grafa imali pozitivne ulazne stepene, moglibismo da krenemo iz nekog qvora "unazad" prolaze�i grane u suprotnomsmeru. Me�utim, broj qvorova u grafu je konaqan, pa se u tom obilaskumora u nekom trenutku nai�i na neki qvor po drugi put, xto znaqi da ugrafu postoji ciklus. Ovo je me�utim suprotno pretpostavci da se radio acikliqkom grafu. 1

Pretpostavimo da smo pronaxli qvor sa ulaznim stepenom nula. Nu-meriximo ga sa 1, uklonimo sve grane koje vode iz �ega, i numeriximoostatak grafa (koji je tako�e acikliqki) brojevima od 2 do 𝑛 (premainduktivnoj hipotezi oni se mogu numerisati od 1 do 𝑛 − 1, a zatim sesvaki redni broj mo�e pove�ati za jedan). Vidi se da je posle izboraqvora sa ulaznim stepenom nula, ostatak posla jednostavan.

Realizacija. Jedini problem pri realizaciji je kako prona�i qvor saulaznim stepenom nula i kako popraviti ulazne stepene qvorova posleukla�a�a grane. Svakom qvoru mo�e se pridru�iti promeniva (poe)𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛, tako da je na poqetku 𝑣.𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛 jednako ulaznom stepenu qvora𝑣. Poqetne vrednosti prome�ivih 𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛 mogu se dobiti prolaskom krozskup svih grana proizvonim redosledom (sve grane su navedene u listipovezanosti) i pove�ava�em za jedan 𝑤.𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛 svaki put kad se nai�ena granu (𝑣, 𝑤). Qvorovi sa ulaznim stepenom nula stavaju se u red (ilistek, xto je jednako dobro). Prema lemi 7.1 u grafu postoji bar jedan qvor𝑣 sa ulaznim stepenom nula. Qvor 𝑣 se kao prvi u redu lako pronalazi; onse ukla�a iz reda. Zatim se za svaku granu (𝑣, 𝑤) koja izlazi iz 𝑣 brojaq𝑤.𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛 sma�uje za jedan. Ako brojaq pri tome dobije vrednost nula,qvor 𝑤 stava se u red. Posle ukla�a�a qvora 𝑣 graf ostaje acikliqki,pa u �emu prema lemi 7.1 ponovo postoji qvor sa ulaznim stepenom nula.Algoritam zavrxava sa radom kad red koji sadr�i qvorove stepena nulapostane prazan, jer su u tom trenutku svi qvorovi numerisani. Algoritamje dat u nastavku teksta.

𝑇𝑜𝑝 𝑠𝑜𝑟𝑡(𝐺)ulaz: 𝐺 = (𝑉,𝐸) (usmereni acikliqki graf)izlaz: 𝑣.𝑅𝑏 za svaki qvor 𝑣 dobija vrednost u skladu sa topoloxkim sortira�em 𝐺.1 Inicijalizovati 𝑣.𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛 za sve qvorove {npr. pomo�u DFS}2 𝐺 𝑟𝑏← 03 𝑄← ∅ {red za qvorove sa ulaznim stepenom 0 }4 for 𝑖← 1 to 𝑛 do

1Na sliqan naqin zakuquje se da u grafu mora postojati i qvor sa izlaznimstepenom nula.

Page 95: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

95 7. Grafovski algoritmi

5 if 𝑣𝑖.𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛 = 0 then upisati 𝑣𝑖 u red 𝑄6 while red 𝑄 nije prazan7 izvaditi qvor 𝑣 iz reda 𝑄8 𝐺 𝑟𝑏← 𝐺 𝑟𝑏+ 19 𝑣 𝑅𝑏← 𝐺 𝑟𝑏10 for sve grane (𝑣, 𝑤) do11 𝑤.𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛← 𝑤.𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛− 112 if 𝑤.𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛 = 0 then upisati 𝑤 u red 𝑄

Slo�enost. Slo�enost izraqunava�a poqetnih vrednosti promenivih𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛 je 𝑂(|𝑉 | + |𝐸|). Za nala�e�e qvora sa ulaznim stepenom nulapotrebno je konstantno vreme (pristup redu). Svaka grana (𝑣, 𝑤) razmatrase taqno jednom, u trenutku kad se 𝑣 ukla�a iz reda. Prema tome, brojpromena vrednosti 𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛 jednak je broju grana u grafu. Vremenskaslo�enost algoritma je dakle 𝑂(|𝑉 |+ |𝐸|), odnosno linearna je funkcijaod veliqine ulaza.

7.5 Jako povezane komponente usmerenog grafa

Na skupu qvorova usmerenog grafa𝐺 = (𝑉,𝐸) mo�e se definisati relacija∼ obostrane dosti�nosti: 𝑢 ∼ 𝑣 ako je qvor 𝑢 dosti�an iz qvora 𝑣 iqvor 𝑣 dosti�an iz qvora 𝑢. Ova relacija je relacija ekvivalencije:

∙ refleksivna { za svaki qvor 𝑢 ∈ 𝑉 je 𝑢 ∼ 𝑢,

∙ simetriqna { za svaka dva qvora 𝑢, 𝑣 ∈ 𝑉 va�i 𝑢 ∼ 𝑣 akko 𝑣 ∼ 𝑢,

∙ tranzitivna { za svaka tri qvora 𝑢, 𝑣, 𝑤 ∈ 𝑉 iz 𝑢 ∼ 𝑣 i 𝑣 ∼ 𝑤 sledii 𝑢 ∼ 𝑤.

Ova relacija razla�e skup qvorova 𝑉 u klase ekvivalencije koje sezovu jake komponente povezanosti grafa 𝐺 (engl. strong connectedcomponents, SCC). Na slici 7.4(a) prikazan je primer grafa i �egovograzlaga�a na jake komponente povezanosti, odnosno prostije komponente.U nastavku �emo na jake komponente povezanosti referisati kao na samokomponente.

Jakim komponentama povezanosti usmerenih grafova odgovaraju kompo-nente povezanosti neusmerenih grafova. U algoritmu SCC za odre�iva�ejakih komponenti povezanosti grafa 𝐺 koristi se transponovani graf𝐺𝑇 = (𝑉,𝐸𝑇 ) grafa 𝐺. Graf 𝐺𝑇 dobija se usmerava�em svih grana 𝐺u suprotnom smeru, 𝐸𝑇 = {(𝑢, 𝑣)|(𝑣, 𝑢) ∈ 𝐸}. Zapa�a se da grafovi 𝐺i 𝐺𝑇 imaju iste jake komponente povezanosti: dva qvora su obostranodosti�na u 𝐺 akko su obostrano dosti�na u 𝐺𝑇 . Na slici 7.4(b) prikazanje transponovani graf grafa sa slike 7.4(a), sa xrafiranim jakim kom-ponentama povezanosti.

U nastavku je dat kod algoritma SCC za odre�iva�e jakih komponentipovezanosti grafa 𝐺 = (𝑉,𝐸).

SCC(𝐺)

1. pokrenuti DFS(𝐺) i tako odrediti vremena 𝑢.𝑓 za sve qvorove 𝑢 ∈ 𝑉

Page 96: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.5. Jako povezane komponente usmerenog grafa 96

Slika 7.4: (a) Usmereni graf 𝐺 u kome su jake komponente povezanostixrafirane. Qvorovi grafa oznaqeni su vremenom otvara�a i zatvara�a,a grane koje pripadaju stablima DFS xume su podebane. (b) Graf 𝐺𝑇 ,dobijen transponova�em grafa 𝐺, sa DFS xumom odre�enom u liniji 3algoritma SCC, u kome su grane xume podebane. Svaka jaka komponentapovezanosti odgovara jednom stablu DFS xume. Zatam�eni qvorovi 𝑏, 𝑐,𝑔 i ℎ su koreni stabala dobijenih pretragom 𝐺𝑇 . (c) Acikliqki grafkomponenti 𝐺𝑆𝐶𝐶 dobijen poistove�iva�em qvorova u okviru svake jakekomponente povezanosti.

2. odrediti graf 𝐺𝑇

3. pokrenuti DFS(𝐺𝑇 ), pri qemu se u osnovnoj peti DFS qvorovirazmatraju redom prema opadaju�im vrednostima 𝑢.𝑓 (iz linije 1)

4. izlistati qvorove svakog stabla DFS xume iz linije 3 kao jakekomponente povezanosti

Napomena: redosled prema opadaju�im vrednostima 𝑢.𝑓 odgovara redo-sledu prema opadaju�im DFS odlaznim brojevima.

Slo�enost algoritma SCC je oqigledno 𝑂(|𝑉 |+ |𝐸|).Dokaz korektnosti algoritma SCC zasniva se na osobinama grafa

komponenti 𝐺𝑆𝐶𝐶 = (𝑉 𝑆𝐶𝐶 , 𝐸𝑆𝐶𝐶) definisanog na slede�i naqin. Nekasu 𝐶1, 𝐶2, . . . , 𝐶𝑘 jake komponente povezanosti grafa𝐺. Skup qvorova 𝑉

𝑆𝐶𝐶 ={𝑣1, 𝑣2, . . . , 𝑣𝑘} sadr�i po jedan qvor 𝑣𝑖 za svaku jaku komponentu povezanosti𝐶𝑖 grafa 𝐺. Grana (𝑣𝑖, 𝑣𝑗) je grana grafa komponenti, tj. (𝑣𝑖, 𝑣𝑗) ∈ 𝐸𝑆𝐶𝐶

ako u grafu 𝐺 postoji usmerena grana (𝑥, 𝑦) za neka dva qvora 𝑥 ∈ 𝐶𝑖, 𝑦 ∈

Page 97: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

97 7. Grafovski algoritmi

𝐶𝑗 . Drugim reqima, 𝐺𝑆𝐶𝐶 dobija se skra�iva�em (na nulu) svih grana kojepovezuju dva qvora u okviru iste komponente.

Osnovna osobina grafa komponenti je da je on acikliqki, xto je itvr�e�e slede�e leme:

Lema: Neka su 𝐶 i 𝐶 ′ dve razliqite jake komponente povezanosti usmerenoggrafa 𝐺 = (𝑉,𝐸), neka 𝑢, 𝑣 ∈ 𝐶, 𝑢′, 𝑣′ ∈ 𝐶 i pretpostavimo da u 𝐺 postojiput od 𝑢 do 𝑢′. Tada u 𝐺 ne mo�e da postoji put od 𝑣′ do 𝑣.

Dokaz: Ako bi u 𝐺 postojao put od 𝑣′ do 𝑣, onda bi postojali putevi od𝑢 do 𝑣′ i od 𝑣′ do 𝑢, tj. 𝑢 i 𝑣′ pripadali bi istoj komponenti povezanosti,suprotno pretpostavci.

Pokaza�emo sada da se razmatra�em qvorova u drugoj pretrazi redomprema opadaju�im vremenima zatvara�a posti�e topoloxko sortira�egrafa komponenti.

Da se izbegne zabuna, vremena 𝑢.𝑑 i 𝑢.𝑓 odnose se na prvu DFS pretraguu algoritmu SCC. Pojmove vremena otvara�a i vremena zatvara�a uopxti-�emo na skupove qvorova: za skup 𝑈 ⊂ 𝑉 definixemo 𝑑(𝑈) = min𝑢∈𝑈 𝑢.𝑑,𝑓(𝑈) = max𝑢∈𝑈 𝑢.𝑓 . Drugim reqima, 𝑑(𝑈), odnosno 𝑓(𝑈), predstavajuprvo vreme otvara�a, odnosno posled�e vreme zatvara�a nekog qvora izskupa qvorova 𝑈 .

Naredna lema povezuje jako povezane komponente grafa i vremena zat-vara�a qvorova u toku prve DFS pretrage.

Lema: Neka su 𝐶 i 𝐶 ′ razliqite jake komponente povezanosti grafa𝐺 = (𝑉,𝐸). Pretpostavimo da postoji grana (𝑢, 𝑣) ∈ 𝐸 takva da je 𝑢 ∈𝐶, 𝑣 ∈ 𝐶 ′. Tada je 𝑓(𝐶) > 𝑓(𝐶 ′).

Dokaz: Razmotrimo dva sluqaja u odnosu na to da li se prvi otvoreniqvor nalazi u 𝐶 ili u 𝐶 ′.

∙ sluqaj 𝑑(𝐶) < 𝑑(𝐶 ′). Neka je 𝑥 qvor koji je prvi otvoren u 𝐶. Utrenutku 𝑥.𝑑 svi qvorovi u 𝐶 i 𝐶 ′ su beli (neoznaqeni). U tomtrenutku u 𝐺 postoji put od 𝑥 do svih qvorova u 𝐶 preko belihqvorova. Poxto postoji grana (𝑢, 𝑣) ∈ 𝐸, za svaki qvor 𝑤 ∈ 𝐶 ′ postojiput od 𝑥 do 𝑤 (preko 𝑢 i 𝑣). Prema teoremi o belim putevima, sviqvorovi u 𝐶 i 𝐶 ′ su potomci 𝑥 u DFS xumi grafa. Zbog toga sepretraga iz 𝑥 posled�a zavrxava, odnosno 𝑥.𝑓 = 𝑓(𝐶) > 𝑓(𝐶 ′).

∙ sluqaj 𝑑(𝐶) > 𝑑(𝐶 ′). Neka je 𝑦 qvor koji je prvi otvoren u 𝐶 ′. Utrenutku 𝑦.𝑑 svi qvorovi u 𝐶 ′ su beli i u 𝐺 postoje putevi prekobelih qvorova do svih qvorova u 𝐶 ′. Prema teoremi o belim putevimasvi qvorovi u 𝐶 ′ su potomci qvora 𝑦 u DFS stablu, pa je 𝑦 posled�izatvoreni qvor u 𝐶 ′, odnosno 𝑦.𝑓 = 𝑓(𝐶 ′). U trenutku 𝑦.𝑑 svi qvoroviu 𝐶 su beli. Zbog toga xto postoji grana (𝑢, 𝑣) iz 𝐶 u 𝐶 ′, ne mo�eda postoji put iz 𝐶 ′ u 𝐶, tj. ni jedan qvor u 𝐶 nije dosti�an iz 𝑦.Prema tome, u trenutku 𝑦.𝑓 svi qvorovi u 𝐶 su jox uvek beli. Zbogtoga je za svaki qvor 𝑤 ∈ 𝐶 𝑤.𝑓 > 𝑦.𝑓 , pa je 𝑓(𝐶) > 𝑓(𝐶 ′).

Naredna lema tvrdi da svaka grana iz 𝐺𝑇 koja povezuje razliqite jakekomponente povezanosti ide od komponente sa ma�im vremenom zatvara�aka komponenti sa ve�im vremenom zatvara�a.

Posledica: Neka su 𝐶 i 𝐶 ′ razliqite jake komponente povezanosti

usmerenog grafa 𝐺 = (𝑉,𝐸). Pretpostavimo da postoji grana (𝑢, 𝑣) ∈ 𝐸𝑇 ,gde je 𝑢 ∈ 𝐶, 𝑣 ∈ 𝐶 ′. Tada je 𝑓(𝐶) < 𝑓(𝐶 ′).

Page 98: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.6. Najkra�i putevi iz zadatog qvora 98

Ova posledica je kuqna za razumeva�e zaxto algoritam SCC radikorektno. Razmotrimo druguDFS pretragu prime�enu na graf𝐺𝑇 . Poqi�ese sa jakom komponentom povezanosti 𝐶 sa najve�im vremenom zatvara�a(zavrxetka) 𝑓(𝐶). Pretraga poqi�e od nekog qvora 𝑥 i oznaqava sve qvoroveu 𝐶. Na osnovu posledice u grafu 𝐺𝑇 ne mo�e da postoji grana ka nekojdrugoj jakoj komponenti povezanosti. Prema tome, DFS stablo sa korenomu 𝑥 sadr�i taqno qvorove iz skupa 𝐶. Poxto su oznaqeni svi qvorovi iz𝐶, pretraga se nastava iz neke druge jake komponente povezanosti 𝐶 ′,sa najve�im vremenom zavrxetka od svih komponenti razliqitih od 𝐶.Ponovo, ta pretraga oznaqava sve qvorove iz 𝐶 ′; me�utim, prema navedenojposledici, iz komponente 𝐶 ′ grana mo�e da vodi samo ka nekom qvoru ukomponenti 𝐶, koji je u tom trenutku ve� oznaqen. Prema tome, svako DFSstablo obuhvata taqno jednu komponentu; grane iz te komponente mogu davode samo ka komponentama koje su ve� oznaqene. Time je dokazano da jealgoritam SCC korektan.

Teorema: Algoritam SCC odre�uje jake komponente povezanosti grafa𝐺.

Druga DFS pretraga postaje jasnija ako se shvati kao DFS grafa kom-ponenti (𝐺𝑇 )𝑆𝐶𝐶 grafa 𝐺𝑇 . Ako svaku komponentu pose�enu u toku drugeDFS pretrage preslikamo u qvor grafa (𝐺𝑇 )𝑆𝐶𝐶 , druga DFS pretragaoznaqava qvorove (𝐺𝑇 )𝑆𝐶𝐶 redosledom obrnutim od topoloxkog redosleda.Ako se obrnu grane grafa (𝐺𝑇 )𝑆𝐶𝐶 , dobija se graf ((𝐺𝑇 )𝑆𝐶𝐶)𝑇 koji jejednak 𝐺𝑆𝐶𝐶 (ovo je potrebno dokazati), pa druga DFS pretraga prolaziqvorove 𝐺𝑆𝐶𝐶 topoloxkim redosledom.

7.6 Najkra�i putevi iz zadatog qvora

U ovom odeku bavi�emo se te�inskim grafovima. Neka je 𝐺 = (𝑉,𝐸)usmereni graf sa nenegativnim te�inama pridru�enim granama. Ovde�emo te�ine zvati du�inama, poxto operixemo du�inama puteva kaozbirovima du�ina grana (ne brojevima grana). Ako je graf neusmeren,mo�emo ga smatrati usmerenim, pri qemu svakoj �egovoj neusmerenoj graniodgovaraju dve usmerene grane iste du�ine, u oba smera. Prema tome,razmatra�e u ovom odeku odnosi se i na neusmerene grafove.

Problem. Za dati usmereni graf 𝐺 = (𝑉,𝐸) i zadati �egov qvor 𝑣 pro-na�i najkra�e puteve od 𝑣 do svih ostalih qvorova u 𝐺.

Zbog jednostavnosti �emo se baviti samo nala�e�em du�ina najkra�ihputeva. Algoritmi se mogu proxiriti tako da pronalaze i same najkra�eputeve. Postoji mnogo situacija u kojima se pojavuje ovaj problem. Naprimer, graf mo�e odgovarati auto{karti: qvorovi su gradovi, a du�inegrana su du�ine direktnih puteva izme�u gradova (ili vreme potrebnoda se taj put pre�e, ili izgradi, itd, zavisno od problema).

7.6.1 Acikliqki sluqaj

Pretpostavimo najpre da je graf 𝐺 acikliqki. U tom sluqaju problemje lakxi, i �egovo rexe�e pomo�i �e nam da ga reximo u opxtem sluqaju.Pokuxa�emo indukcijom po broju qvorova. Bazni sluqaj je trivijalan.

Page 99: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

99 7. Grafovski algoritmi

Neka je |𝑉 | = 𝑛. Mo�emo da iskoristimo topoloxko sortira�e grafa izprethodnog odeka. Ako je redni broj qvora 𝑣 jednak 𝑘, onda se qvorovi sarednim brojevima ma�im od 𝑘 ne moraju razmatrati: ne postoji naqin da sedo �ih do�e iz 𝑣. Pored toga, redosled dobijen topoloxkim sortira�emje pogodan za primenu indukcije. Posmatrajmo posled�i qvor, odnosnoqvor 𝑧 sa rednim brojem 𝑛. Pretpostavimo (induktivna hipoteza) da znamonajkra�e puteve od 𝑣 do svih ostalih qvorova, sem do 𝑧. Oznaqimo du�inunajkra�eg puta od 𝑣 do 𝑤 sa 𝑤.𝑆𝑃 . Da bismo odredili 𝑧.𝑆𝑃 , dovono je daproverimo samo one qvorove 𝑤 iz kojih postoji grana do 𝑧. Poxto se naj-kra�i putevi do ostalih qvorova ve� znaju, 𝑧.𝑆𝑃 jednako je minimumuzbira 𝑤.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑤, 𝑧), po svim qvorovima 𝑤 iz kojih vodi granado 𝑧. Da li je time problem rexen? Pita�e je da li dodava�e qvora 𝑧mo�e da skrati put do nekog drugog qvora. Me�utim, poxto je 𝑧 posled�iqvor u topoloxkom redosledu, ni jedan drugi qvor nije dosti�an iz 𝑧,pa se du�ine ostalih najkra�ih puteva ne me�aju. Dakle, ukla�a�e 𝑧,nala�e�e najkra�ih puteva bez �ega, i vra�a�e 𝑧 nazad su osnovni delovialgoritma. Drugim reqima, slede�a induktivna hipoteza rexava problem.

Induktivna hipoteza. Ako se zna topoloxki redosled qvorova, umemoda izraqunamo du�ine najkra�ih puteva od 𝑣 do prvih 𝑛− 1 qvorova.

Kad je dat acikliqki graf sa 𝑛 qvorova (topoloxki ure�enih), ukla-�amo 𝑛-ti qvor, indukcijom rexavamo sma�eni problem, nalazimo najma�ume�u vrednostima 𝑤.𝑆𝑃+𝑑𝑢𝑧𝑖𝑛𝑎(𝑤, 𝑧), za sve qvorove 𝑤 takve da (𝑤, 𝑧) ∈ 𝐸.Algoritam je dat u nastavku teksta.

𝐴𝑐𝑖𝑘𝑙 𝑛𝑎𝑗𝑘𝑟 𝑝𝑢𝑡𝑒𝑣𝑖(𝐺, 𝑣, 𝑛)ulaz: 𝐺 = (𝑉,𝐸) (te�inski acikliqki graf), 𝑣 (qvor), 𝑛 (broj qvorova)izlaz: za svaki qvor 𝑤 ∈ 𝑉 , 𝑤.𝑆𝑃 je du�ina najkra�eg puta od 𝑣 do 𝑤.{Pretpostavamo da je ve� izvrxeno topoloxko sortira�e.}{Pre poziva ove procedure stava se 𝑧.𝑆𝑃 ←∞ za sve qvorove 𝑧 = 𝑣.}1 neka je 𝑧 qvor sa rednim brojem 𝑛 u topoloxkom redosledu2 if 𝑧 = 𝑣 then3 𝐴𝑐𝑖𝑘𝑙 𝑛𝑎𝑗𝑘𝑟 𝑝𝑢𝑡𝑒𝑣𝑖(𝐺− 𝑧, 𝑣, 𝑛− 1)4 {𝐺− 𝑧 dobija se ukla�a�em 𝑧 sa svim susednim granama iz 𝐺}5 for sve qvorove 𝑤 takve da je (𝑤, 𝑧) ∈ 𝐸 do6 if 𝑤.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑤, 𝑧) < 𝑧.𝑆𝑃 then7 𝑧.𝑆𝑃 ← 𝑤.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑤, 𝑧);8 else 𝑣.𝑆𝑃 ← 0;

Sada �emo pokuxati da usavrximo algoritam tako da se topoloxkosortira�e obava istovremeno sa nala�e�em najkra�ih puteva. Drugimreqima, ci je objediniti dva prolaza (za topoloxko sortira�e i nala-�e�e najkra�ih puteva) u jedan.

Razmotrimo naqin na koji se algoritam rekurzivno izvrxava (poslenala�e�a topoloxkog redosleda). Pretpostavimo, zbog jednostavnosti, daje redni broj qvora 𝑣 u topoloxkom redosledu 1 (qvorovi sa rednim brojemma�im od rednog broja 𝑣 ionako nisu dosti�ni iz 𝑣). Prvi korak je pozivrekurzivne procedure. Procedura zatim poziva rekurzivno samu sebe, svedok se ne do�e do qvora 𝑣. U tom trenutku se du�ina najkra�eg puta do 𝑣

Page 100: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.6. Najkra�i putevi iz zadatog qvora 100

postava na 0, i rekurzija poqi�e da se "razmotava". Zatim se razmatraqvor 𝑢 sa rednim brojem 2; du�ina najkra�eg puta do �ega izjednaquje se sadu�inom grane (𝑣, 𝑢), ako ona postoji; u protivnom, ne postoji put od 𝑣 do𝑢. Slede�i korak je provera qvora 𝑥 sa rednim brojem 3. U ovom sluqaju u 𝑥ulaze najvixe dve grane (od 𝑣 ili 𝑢), pa se upore�uju du�ine odgovaraju�ihputeva. Umesto ovakvog izvrxava�a rekurzije unazad, pokuxa�emo da istekorake izvrximo preko niza qvorova sa rastu�im rednim brojevima.

Indukcija se prime�uje prema rastu�im rednim brojevima poqevxi od𝑣. Ovaj redosled osloba�a nas potrebe da redne brojeve unapred znamo, pa�emo biti u sta�u da izvrxavamo istovremeno oba algoritma. Pretpos-tavimo da su du�ine najkra�ih puteva do qvorova sa rednim brojevimaod 1 do 𝑚 pri topoloxkom sortira�u poznati, i razmotrimo qvor sarednim brojem 𝑚+ 1, koji �emo oznaqavati sa 𝑧. Da bismo pronaxli naj-kra�i put do 𝑧, moramo da proverimo sve grane koje vode u 𝑧. Topoloxkiredosled garantuje da sve takve grane polaze iz qvorova sa ma�im rednimbrojevima. Prema induktivnoj hipotezi ti qvorovi su ve� razmatrani,pa se du�ine najkra�ih puteva do �ih znaju. Za svaku granu (𝑤, 𝑧) znamodu�inu 𝑤.𝑆𝑃 najkra�eg puta do 𝑤, pa je du�ina najkra�eg puta do 𝑧 preko𝑤 jednaka 𝑤.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑤, 𝑧). Pored toga, kao i ranije, ne moramo davodimo raquna o eventualnim promenama najkra�ih puteva ka qvorovimasa ma�im rednim brojevima, jer se do �ih ne mo�e do�i iz 𝑧. Poboxanialgoritam prikazan je u nastavku.

𝐴𝑐𝑖𝑘𝑙 𝑛𝑎𝑗𝑘𝑟 𝑝𝑢𝑡𝑒𝑣𝑖2(𝐺, 𝑣)ulaz: 𝐺 = (𝑉,𝐸) (te�inski acikliqki graf), 𝑣 (qvor grafa 𝐺)izlaz: za svaki qvor 𝑤 ∈ 𝑉 , 𝑤.𝑆𝑃 je du�ina najkra�eg puta od 𝑣 do 𝑤.1 for 𝑤 ∈ 𝑉 do2 𝑤.𝑆𝑃 ←∞3 inicijalizuj 𝑣.𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛 za sve qvorove4 for 𝑖← 1 to 𝑛 do5 if 𝑣𝑖.𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛 = 0 then upisati 𝑣𝑖 u red 𝑄6 𝑣.𝑆𝑃 ← 07 while red 𝑄 nije prazan8 skini qvor 𝑤 iz reda 𝑄9 for sve grane (𝑤, 𝑧) do10 if 𝑤.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑤, 𝑧) < 𝑧.𝑆𝑃 then11 𝑧.𝑆𝑃 ← 𝑤.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑤, 𝑧)12 𝑧.𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛← 𝑧.𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛− 113 if 𝑧.𝑈𝑙𝑆𝑡𝑒𝑝𝑒𝑛 = 0 then upisati 𝑧 u red 𝑄

Slo�enost. Svaka grana se po jednom razmatra u toku inicijalizacijeulaznih stepenova, i po jednom u trenutku kad se �en polazni qvor ukla�aiz liste. Pristup listi zahteva konstantno vreme. Svaki qvor se razmatrataqno jednom. Prema tome, vremenska slo�enost algoritma u najgoremsluqaju je 𝑂(|𝑉 |+ |𝐸|).

Page 101: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

101 7. Grafovski algoritmi

7.6.2 Opxti sluqaj

Kad graf nije acikliqki, ne postoji topoloxki redosled, pa se raz-matrani algoritmi ne mogu direktno primeniti. Me�utim, osnovne idejese mogu iskoristiti i u opxtem sluqaju. Jednostavnost razmotrenih al-goritama posledica je slede�e osobine topoloxkog redosleda:

Ako je 𝑧 qvor sa rednim brojem 𝑘, onda (1) ne postoje putevi od𝑧 do qvorova sa rednim brojevima ma�im od 𝑘, i (2) ne postojeputevi od qvorova sa rednim brojevima ve�im od 𝑘 do 𝑧.

Ova osobina omogu�uje nam da na�emo najkra�i put od 𝑣 do 𝑧, ne vode�iraquna o qvorovima koji su posle 𝑧 u topoloxkom redosledu. Mo�e li senekako definisati redosled qvorova proizvonog grafa (koji nije nu�noacikliqki) koji bi omogu�io nexto sliqno?

Ideja je razmatrati qvorove grafa redom prema du�inama najkra�ihputeva do �ih od 𝑣. Te du�ine se na poqetku, naravno, ne znaju; onese izraqunavaju u toku izvrxava�a algoritma. Najpre proveravamo svegrane koje izlaze iz 𝑣. Neka je (𝑣, 𝑥) najkra�a me�u �ima. Poxto su popretpostavci sve du�ine grana pozitivne, najkra�i put od 𝑣 do 𝑥 je grana(𝑣, 𝑥). Du�ine svih drugih puteva do 𝑥 su ve�e ili jednake od du�ineove grane. Qvor 𝑥 je pritom najbli�i od svih qvorova qvoru 𝑣. Prematome, znamo najkra�i put do 𝑥, i to mo�e da poslu�i kao baza indukcije.Pokuxajmo da napravimo slede�i korak. Kako mo�emo da prona�emo naj-kra�i put do nekog drugog qvora? Biramo qvor koji je drugi najbli�i do 𝑣(𝑥 je prvi najbli�i). Jedini putevi koje treba uzeti u obzir su druge graneiz 𝑣 ili putevi koji se sastoje od dve grane: prva je (𝑣, 𝑥), a druga je granaiz qvora 𝑥. Neka je sa 𝑑𝑢𝑧𝑖𝑛𝑎(𝑢,𝑤) oznaqena du�ina grane (𝑢,𝑤). Biramonajma�i od izraza 𝑑𝑢𝑧𝑖𝑛𝑎(𝑣, 𝑦) (𝑦 = 𝑥) ili 𝑑𝑢𝑧𝑖𝑛𝑎(𝑣, 𝑥) + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑥, 𝑧)(𝑧 = 𝑣). Jox jednom zakuqujemo da se drugi putevi ne moraju razmatrati,jer je ovo najkra�i put za odlazak iz 𝑣 (izuzev do 𝑥). Mo�e se formulisatislede�a induktivna hipoteza.

Induktivna hipoteza. Za zadati graf i �egov qvor 𝑣, umemo da pro-na�emo 𝑘 qvorova najbli�ih qvoru 𝑣, kao i du�ine najkra�ih puteva do�ih.

Zapazimo da je indukcija po broju qvorova do kojih su du�ine najkra�ihputeva ve� izraqunate, a ne po veliqini grafa. Pored toga, pretpostavase da su to qvorovi najbli�i qvoru 𝑣, i da umemo da ih prona�emo. Miumemo da prona�emo prvi najbli�i qvor, pa je baza (sluqaj 𝑘 = 1) rexena.Kad 𝑘 dobije vrednost |𝑉 | − 1, rexen je kompletan problem.

Oznaqimo sa 𝑉𝑘 skup koji se sastoji od 𝑘 najbli�ih qvorova qvoru 𝑣,ukuquju�i i 𝑣. Problem je prona�i qvor 𝑤 koji je najbli�i qvoru 𝑣 me�uqvorovima van 𝑉𝑘, i prona�i najkra�i put od 𝑣 do 𝑤. Najkra�i put od𝑣 do 𝑤 mo�e da sar�i samo qvorove iz 𝑉𝑘. On ne mo�e da sadr�i nekiqvor 𝑦 van 𝑉𝑘, jer bi 𝑦 bio bli�i qvoru 𝑣 od 𝑤. Prema tome, da bismopronaxli qvor 𝑤, dovono je da proverimo grane koje spajaju qvorove iz𝑉𝑘 sa qvorovima koji nisu u 𝑉𝑘; sve druge grane se za sada mogu ignorisati.Neka je (𝑢, 𝑧) grana takva da je 𝑢 ∈ 𝑉𝑘 i 𝑧 /∈ 𝑉𝑘. Takva grana odre�uje putod 𝑣 do 𝑧 koji se sastoji od najkra�eg puta od 𝑣 do 𝑢 (prema induktivnoj

Page 102: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.6. Najkra�i putevi iz zadatog qvora 102

hipotezi ve� poznat) i grane (𝑢, 𝑧). Dovono je uporediti sve takve putevei izabrati najkra�i me�u �ima, videti ilustraciju na slici 7.5.

d

dddd

d d

d

dddd𝑧′

𝑢′𝑢

𝑣

𝑧

𝑉𝑘

Slika 7.5: Nala�e�e slede�eg najbli�eg qvora zadatom qvoru 𝑣.

Algoritam odre�en ovom induktivnom hipotezom izvrxava se na slede�inaqin. U svakoj iteraciji dodaje se novi qvor. To je qvor 𝑤 za koji jenajma�a du�ina

min {𝑢.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑢,𝑤)|𝑢 ∈ 𝑉𝑘} (7.1)

me�u svim qvorovima 𝑤 /∈ 𝑉𝑘. Iz ve� iznetih razloga, 𝑤 je zaista (𝑘+1)-vi(slede�i) najbli�i qvor qvoru 𝑣. Prema tome, �egovo dodava�e produ�ujeinduktivnu hipotezu.

Algoritam je sada u potpunosti preciziran, ali mu se efikasnostmo�e poboxati. Osnovni korak algoritma je pronala�e�e slede�eg naj-bli�eg qvora. To se ostvaruje izraqunava�em najkra�eg puta prema (7.1).Me�utim, nije neophodno u svakom koraku proveravati sve vrednosti 𝑢.𝑆𝑃+𝑑𝑢𝑧𝑖𝑛𝑎(𝑢,𝑤). Ve�ina tih vrednosti ne me�a se pri dodava�u novog qvora:mogu se promeniti samo one vrednosti koje odgovaraju putevima kroz novo-dodati qvor. Mi mo�emo da pamtimo du�ine poznatih najkra�ih putevado svih qvorova van 𝑉𝑘, i da im popravamo vrednosti samo pri proxiri-va�u 𝑉𝑘. Jedini naqin da se dobije novi najkra�i put posle dodava�a 𝑤 u𝑉𝑘 je da taj put prolazi kroz 𝑤. Prema tome, treba proveriti sve grane od𝑤 ka qvorovima van 𝑉𝑘. Za svaku takvu granu (𝑤, 𝑧) upore�ujemo du�inu𝑤.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑤, 𝑧) sa vrednox�u 𝑧.𝑆𝑃 , i po potrebi popravamo 𝑧.𝑆𝑃 .Svaka iteracija obuhvata nala�e�e qvora sa najma�om vrednox�u 𝑆𝑃 , ipopravku vrednosti 𝑆𝑃 za neke od preostalih qvorova. Ovaj algoritampoznat je kao Dijkstrin algoritam (Dijkstra).

Primer 7.1. Primer izvrxava�a algoritma 𝑁𝑎𝑗𝑘𝑟 𝑝𝑢𝑡𝑒𝑣𝑖 za nala�e�enajkra�ih puteva od qvora 𝑣 u grafu dat je na slici 7.6. Prva vrstaodnosi se samo na puteve od jedne grane iz 𝑣. Bira se najkra�i put, uovom sluqaju on vodi ka qvoru 𝑎. Druga vrsta pokazuje popravke du�inaputeva ukuquju�i sada sve puteve od jedne grane iz 𝑣 ili 𝑎, i najkra�iput sada vodi do 𝑐. U svakoj liniji bira se novi qvor, i prikazuju sedu�ine trenutnih najkra�ih puteva od 𝑣 do svih qvorova. Podebana surastoja�a za koja se pouzdano zna da su najkra�a.

Page 103: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

103 7. Grafovski algoritmi

d

d

d

d d

d d

d d?

?

-

? ?

? ?

- -

� �

𝑎 1 𝑣 5 𝑏

2 9 3

𝑒2𝑑4𝑐

9 4 1

32

𝑓 𝑔 ℎ

𝑣 𝑎 𝑏 𝑐 𝑑 𝑒 𝑓 𝑔 ℎ𝑎 0 1 5 ∞ 9 ∞ ∞ ∞ ∞𝑐 0 1 5 3 9 ∞ ∞ ∞ ∞𝑏 0 1 5 3 7 ∞ 12 ∞ ∞𝑑 0 1 5 3 7 8 12 ∞ ∞𝑒 0 1 5 3 7 8 12 11 ∞ℎ 0 1 5 3 7 8 12 11 9𝑔 0 1 5 3 7 8 12 11 9𝑓 0 1 5 3 7 8 12 11 9

Slika 7.6: Primer izvrxava�a algoritma za nala�e�e najkra�ih putevaod zadatog qvora.

Realizacija. Potrebno je da pronalazimo najma�u vrednost u skupu du-�ina puteva i da qesto popravamo du�ine puteva. Dobra strukturapodataka za nala�e�e minimalnih elemenata i za popravke du�ina ele-menata je hip. Poxto je potrebno da prona�emo qvor sa najma�om du�inomputa do �ega, sve qvorove van skupa 𝑉𝑘 quvamo u hipu, sa kuqevimajednakim du�inama trenutno najkra�ih puteva od 𝑣 do �ih. Na poqetku susve du�ine puteva sem jedne jednake∞, pa redosled elemenata u hipu nijebitan, sem xto 𝑣 mora biti na vrhu. Nala�e�e qvora 𝑤 je jednostavno: onse uzima sa vrha hipa. Posle toga za svaku granu (𝑤, 𝑢) proverava se dali korix�e�e te grane skra�uje put do qvora 𝑢. Me�utim, kad se promenidu�ina puta do nekog qvora 𝑢, mo�e se promeniti polo�aj 𝑢 u hipu. Prematome, potrebno je na odgovaraju�i naqin popravati hip (problem je utome xto hip kao struktura podataka ne omogu�uje efikasno pronala�e�ezadatog elementa). Locira�e qvora 𝑢 u hipu mo�e se izvesti tako xtose odr�ava niz sa indeksima qvorova u hipu. Nala�e�e qvora u hipuje zbog toga ekvivalentno pristupa�u elementu niza. Poxto su elementihipa qvorovi grafa, prostorna slo�enost je 𝑂(|𝑉 |), xto je prihvativo.Du�ine puteva mogu samo da opadaju. Ako neki elemenat hipa postanema�i od oca, on se mo�e zame�iva�em pomerati navixe dok mu se neprona�e odgovaraju�i polo�aj. To je isti postupak kao i pri obiqnompostupku popravke hipa (pri umeta�u elementa u hip, na primer). Dijkstrinalgoritam za nala�e�e najkra�ih puteva od zadatog qvora prikazan je unastavku.

𝑁𝑎𝑗𝑘𝑟 𝑝𝑢𝑡𝑒𝑣𝑖2(𝐺, 𝑣)ulaz: 𝐺 = (𝑉,𝐸) (te�inski usmereni graf), 𝑣 (qvor grafa 𝐺)izlaz: za svaki qvor 𝑤 ∈ 𝑉 , 𝑤.𝑆𝑃 je du�ina najkra�eg puta od 𝑣 do 𝑤.{Pretpostavka je da su sve du�ine grana nenegativne. }1 for sve qvorove 𝑤 do2 𝑤.𝑂𝑧𝑛𝑎𝑘𝑎← 𝑓𝑎𝑙𝑠𝑒 {oznaqeni qvorovi su u 𝑉𝑘}3 𝑤.𝑆𝑃 ← +∞;4 𝑣.𝑆𝑃 ← 0;5 while postoji neoznaqen qvor do6 neka je 𝑤 neoznaqeni qvor sa najma�om vrednox�u 𝑤.𝑆𝑃

Page 104: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.7. Belman-Fordov algoritam 104

7 𝑤.𝑂𝑧𝑛𝑎𝑘𝑎← 𝑡𝑟𝑢𝑒 {ukuqiva�e 𝑤 u 𝑉𝑘}8 for sve grane (𝑤, 𝑧) takve da je 𝑧 neoznaqen do9 if 𝑤.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑤, 𝑧) < 𝑧.𝑆𝑃 then10 𝑧.𝑆𝑃 ← 𝑤.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑤, 𝑧)

Slo�enost. Popravka du�ine puta zahteva 𝑂(log𝑚) upore�iva�a, gdeje 𝑚 veliqina hipa. Ukupno ima |𝑉 | iteracija, i zbog toga |𝑉 | brisa�a izhipa. Popravke treba izvrxiti najvixe |𝐸| puta (jer svaka grana mo�eda prouzrokuje najvixe jednu popravku), pa je potrebno izvrxiti najvixe𝑂(|𝐸| log |𝑉 |) upore�iva�a u hipu. Prema tome, vremenska slo�enost al-goritma je 𝑂((|𝐸| + |𝑉 |) log |𝑉 |). Zapa�a se da je algoritam sporiji negoalgoritam koji isti problem rexava za acikliqke grafove: u drugomsluqaju slede�i qvor se uzima iz (proizvono ure�ene) liste, i nikakvepopravke nisu potrebne.

Najkra�e puteve od 𝑣 do svih ostalih qvorova naxli smo tako xtosmo puteve pronalazili jedan po jedan. Svaki novi put je odre�en jednomgranom, koja produ�uje prethodno poznati najkra�i put do novog qvora.Sve te grane formiraju stablo sa korenom 𝑣. Ovo stablo zove se stablonajkra�ih puteva, i va�no je za rexava�e mnogih problema sa putevima.Ako su te�ine svih grana jednake, onda je stablo najkra�ih puteva u stvariBFS stablo sa korenom u qvoru 𝑣. U primeru na slici 7.6 podebane sugrane koje pripadaju stablu najkra�ih puteva.

7.7 Belman-Fordov algoritam

Osnovni korak u Belman-Fordovom algoritmu je relaksacija grane (𝑢, 𝑣),odnosno provera da li se vrednost 𝑣.𝑆𝑃 mo�e zameniti ma�om vrednox�u𝑢.𝑆𝑃 +𝑑𝑢𝑧𝑖𝑛𝑎(𝑢, 𝑣); ako je to taqno, poprava se vrednost 𝑣.𝑆𝑃 i pamti danajkra�i put vodi kroz qvor 𝑢. Na slici 7.7 ilustrovano je izvrxava�eovog koraka na dva primera.

Slika 7.7: Relaksacija grane (𝑢, 𝑣) du�ine 2. Vrednost 𝑆𝑃 za svaki qvorprikazana je unutar kru�i�a. (a) Poxto je 𝑢.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑢, 𝑣) < 𝑣.𝑆𝑃 ,vrednost 𝑣.𝑆𝑃 se sma�uje. (b) Ovde je 𝑣.𝑆𝑃 ≤ 𝑢.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑢, 𝑣), pavrednost 𝑣.𝑆𝑃 ostaje neprome�ena.

Page 105: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

105 7. Grafovski algoritmi

7.7.1 Osobine najkra�ih puteva i koraka relaksacije

Osobine koje �e biti navedene koriste se u dokazu korektnosti Belman-Fordovog algoritma. Ovde 𝛿(𝑢,𝑤) oznaqava du�inu najkra�eg puta od 𝑢 do𝑤; 𝑑𝑢𝑧𝑖𝑛𝑎(𝑢,𝑤) je oznaka za du�inu grane (𝑢,𝑤); 𝑢.𝑆𝑃 oznaqava trenutnuprocenu du�ine najkra�eg puta od 𝑣 do 𝑢.

Nejednakost trougla: Za svaku granu (𝑢,𝑤) ∈ 𝐸 va�i 𝛿(𝑣, 𝑤) ≤ 𝛿(𝑣, 𝑢)+𝑑𝑢𝑧𝑖𝑛𝑎(𝑢,𝑤)

Gor�a granica: Uvek va�i da je 𝑢.𝑆𝑃 ≥ 𝛿(𝑣, 𝑢) za sve qvorove 𝑢 ∈ 𝑉 , akad 𝑢.𝑆𝑃 dostigne 𝛿(𝑣, 𝑢), onda se 𝑢.𝑆𝑃 vixe ne me�a.

Karakterizacija nedosti�nosti: Ako 𝑢 nije dosti�an iz 𝑣, onda jeuvek 𝑣.𝑆𝑃 = 𝛿(𝑣, 𝑢) = +∞

Osobina konvergencije: Ako je 𝑣 →˓ 𝑢 → 𝑤 najkra�i put u 𝐺 za nekeqvorove 𝑢,𝑤 ∈ 𝑉 i ako je 𝑢.𝑆𝑃 = 𝛿(𝑣, 𝑢) u bilo kom trenutku pre relaksacijegrane (𝑢,𝑤), onda je posle relaksacije 𝑤.𝑆𝑃 = 𝛿(𝑣, 𝑤).

Osobina relaksacije puta: Ako je 𝑝 = (𝑣0, 𝑣1, . . . , 𝑣𝑘) najkra�i put odqvora 𝑣 = 𝑣0 do qvora 𝑣𝑘 i grane puta 𝑃 se relaksiraju redom (𝑣0, 𝑣1), (𝑣1, 𝑣2), . . . , (𝑣𝑘−1, 𝑣𝑘),onda je 𝑣𝑘.𝑆𝑃 = 𝛿(𝑣, 𝑣𝑘). Ovo va�i bez obzira na eventualne druge korakerelaksacije.

Osobina grafa prethodnika: U trenutku kada je 𝑢.𝑆𝑃 = 𝛿(𝑣, 𝑢) za bilokoji qvor 𝑢 ∈ 𝑉 , podgraf od grana ka prethodnicima qvorova je stablonajkra�ih puteva sa korenom u 𝑣.

7.7.2 Belman-Fordov algoritam

Problem odre�iva�a najkra�ih puteva u grafu 𝐺 = (𝑉,𝐸) od datogqvora 𝑣 ∈ 𝑉 rexava i Belman-Fordov algoritam:

𝐵𝑒𝑙𝑙𝑚𝑎𝑛− 𝐹𝑜𝑟𝑑(𝐺, 𝑣)ulaz: 𝐺 = (𝑉,𝐸) (dati graf), 𝑣 (qvor grafa)

te�ina grane 𝑒 ∈ 𝐸 je 𝑑𝑢𝑧𝑖𝑛𝑎(𝑒)izlaz: za svako 𝑢 ∈ 𝑉 izraqunata vrednost najkra�eg rastoja�a od 𝑣1 for each 𝑤 ∈ 𝑉 do2 𝑤.𝑆𝑃 ←∞3 𝑣.𝑆𝑃 ← 04 for 𝑖← 1 to |𝑉 | − 1 do5 for each (𝑢, 𝑣) ∈ 𝐸 do6 if 𝑢.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑢, 𝑣) < 𝑣.𝑆𝑃 then7 𝑣.𝑆𝑃 ← 𝑢.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑢, 𝑣)8 for each (𝑢, 𝑣) ∈ 𝐸 do9 if 𝑢.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑢, 𝑣) < 𝑣.𝑆𝑃 then10 return 𝑓𝑎𝑙𝑠𝑒11 return 𝑡𝑟𝑢𝑒

Algoritam poprava procene 𝑤.𝑆𝑃 du�ina najkra�ih puteva 𝛿(𝑣, 𝑤)postepeno ih sma�uju�i, dok ne dostignu stvarnu du�inu najkra�ih puteva𝛿(𝑣, 𝑤).

Za razliku od Dijkstrinog algoritma, ovaj algoritam radi i ako grafima grane negativne du�ine. Algoritam vra�a logiqku vrednost 𝑓𝑎𝑙𝑠𝑒 ako

Page 106: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.7. Belman-Fordov algoritam 106

u 𝐺 postoji ciklus sa negativnim zbirom du�ina grana, odnosno 𝑡𝑟𝑢𝑒 uprotivnom. U prvom sluqaju du�ine najkra�ih puteva se ne mogu odrediti.

Na slici 7.8 prikazano je izvrxava�e algoritma na grafu sa petqvorova. Posle inicijalizacije u linijama 1{3, algoritam |𝑉 | − 1 putprolazi sve grane for pete u linijama 5{7. Na slikama 7.8(b)-(e) prika-zano je sta�e algoritma posle svakog od qetiri prolaska kroz grane. Posletih |𝑉 |−1 prolazaka u linijama 8{11 proverava se da li u𝐺 postoji ciklusnegativne du�ine i vra�a se odgovaraju�a logiqka vrednost (u nastavku�emo videti zaxto je ta provera korektna).

Slo�enost algoritma je 𝑂(|𝑉 ||𝐸|), zbog dve umetnute for pete.

Slika 7.8: Primer izvrxava�a Belman-Fordovog algoritma. Vrednosti𝑆𝑃 prikazane su unutar qvorova, a xrafirane grane vode kaprethodnicima qvorova na (trenutno) najkra�im putevima: ako je grana(𝑢, 𝑣) xrafirana, onda se do qvora 𝑣 najkra�im putem dolazi prekoqvora 𝑢. U primeru u svakom prolazu se grane relaksiraju u slede�emredosledu: (𝑡, 𝑥), (𝑡, 𝑦), (𝑡, 𝑧), (𝑥, 𝑡), (𝑦, 𝑥), (𝑦, 𝑧), (𝑧, 𝑥), (𝑧, 𝑠), (𝑠, 𝑡), (𝑠, 𝑦). (a)Situacija pre prvog prolaska kroz grane. (b)-(e) Situacija nakon svakognarednog prolaska kroz grane. Vrednosti 𝑆𝑃 i grane ka prethodnicima sukonaqne na slici (e). U ovom primeru, algoritam vra�a vrednost 𝑇𝑅𝑈𝐸.

Lema: Neka je 𝐺 = (𝑉,𝐸) te�inski usmereni graf, 𝑣 ∈ 𝑉 i za svako𝑒 ∈ 𝐸 je 𝑑𝑢𝑧𝑖𝑛𝑎(𝑒) du�ina grane 𝑒. Pretpostavimo da u 𝐺 ne postoji ciklusnegativne du�ine dosti�an iz qvora 𝑣. Tada je posle |𝑉 | − 1 izvrxava�afor pete u linijama 5{7 algoritma 𝐵𝑒𝑙𝑙𝑚𝑎𝑛−𝐹𝑜𝑟𝑑 𝑢.𝑆𝑃 = 𝛿(𝑣, 𝑢) za sveqvorove 𝑢 ∈ 𝑉 dosti�ne iz 𝑣.

Dokaz: Dokaz se zasniva na osobini relaksacije puta. Posmatrajmo bilokoji qvor 𝑢 koji je dosti�an iz 𝑣 i neka je 𝑝 = (𝑣0, 𝑣1, . . . , 𝑣𝑘) gde je 𝑣0 =𝑣, 𝑣𝑘 = 𝑢 najkra�i put od 𝑣 do 𝑢. Poxto su najkra�i putevi prosti, 𝑝ima najvixe |𝑉 | − 1 grana, pa je 𝑘 ≤ |𝑉 | − 1. Svaka od |𝑉 | − 1 iteracijarelaksira svih |𝐸| grana. Me�u granama relaksiranim u iteraciji 𝑖 je(𝑣𝑖−1, 𝑣𝑖), 𝑖 = 1, 2, . . . , 𝑘. Zbog toga je na osnovu osobine relaksacije puteva𝑢.𝑆𝑃 = 𝑣𝑘.𝑆𝑃 = 𝛿(𝑣, 𝑢).

Page 107: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

107 7. Grafovski algoritmi

Posledica: Neka je𝐺 = (𝑉,𝐸) te�inski usmereni graf, 𝑣 ∈ 𝑉 , 𝑡𝑒𝑧𝑖𝑛𝑎(𝑢,𝑤)je te�ina grane (𝑢,𝑤) ∈ 𝐸. Pretpostavimo da u 𝐺 ne postoji ciklusnegativne du�ine dosti�an iz 𝑣. Tada za svaki qvor 𝑢 ∈ 𝑉 postoji put od𝑣 do 𝑢 akko algoritam 𝐵𝑒𝑙𝑙𝑚𝑎𝑛− 𝐹𝑜𝑟𝑑 pokrenut za 𝑣 daje 𝑢.𝑆𝑃 <∞.

Teorema (Korektnost algoritma 𝐵𝑒𝑙𝑙𝑚𝑎𝑛 − 𝐹𝑜𝑟𝑑): Ako 𝐺 ne sadr�iciklus negativne du�ine dosti�an iz 𝑣 onda algoritam vra�a 𝑡𝑟𝑢𝑒, dobijase 𝑢.𝑆𝑃 = 𝛿(𝑣, 𝑢) za sve qvorove 𝑢 ∈ 𝑉 i podgraf prethodnika u 𝐺 je stablonajkra�ih puteva u 𝐺 sa korenom u 𝑣. Ako 𝐺 sadr�i ciklus negativnedu�ine dosti�an iz 𝑣 onda algoritam vra�a 𝑓𝑎𝑙𝑠𝑒.

Dokaz: Pretpostavimo najpre da 𝐺 ne sadr�i ciklus negativne du�inedosti�an iz 𝑣. Dokaza�emo najpre da je na kraju 𝑢.𝑆𝑃 = 𝛿(𝑣, 𝑢) za sveqvorove 𝑢 ∈ 𝑉 . Ako je qvor 𝑢 dosti�an iz 𝑣, onda je tvr�e�e taqno naosnovu leme. U protivnom tvr�e�e sledi iz karakterizacije nedosti�nosti.Time je tvr�e�e dokazano. Osobina grafa prethodnika zajedno sa dokazanimtvr�e�em ima za posledicu da je podgraf prethodnika stablo najkra�ihputeva. Ostaje da se doka�e da algoritam vra�a rezultat 𝑡𝑟𝑢𝑒. Na zavrxetkuse za svaku granu (𝑢,𝑤) ∈ 𝐸 na osnovu nejednakosti trougla dobija 𝑤.𝑆𝑃 =𝛿(𝑣, 𝑤) ≤ 𝛿(𝑣, 𝑢) + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑢,𝑤) = 𝑢.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑢,𝑤), pa nijedan test uliniji 9 ne vra�a 𝑓𝑎𝑙𝑠𝑒. Dakle, algoritam vra�a 𝑡𝑟𝑢𝑒.

Pretpostavimo sada da𝐺 sadr�i ciklus negativne du�ine 𝑐 = (𝑣0, 𝑣1, . . . , 𝑣𝑘), 𝑣𝑘 =𝑣0, dosti�an iz 𝑣. Tada je:

𝑘∑𝑖=1

𝑑𝑢𝑧𝑖𝑛𝑎(𝑣𝑖−1, 𝑣𝑖) < 0 (7.2)

Pretpostavimo suprotno, da je algoritam vratio 𝑡𝑟𝑢𝑒, tj. 𝑣𝑖.𝑆𝑃 ≤𝑣𝑖−1.𝑆𝑃 + 𝑑𝑢𝑧𝑖𝑛𝑎(𝑣𝑖−1, 𝑣𝑖) za 𝑖 = 1, 2, . . . , 𝑘. Sabira�em ovih nejednakostiza sve grane ciklusa dobija se:∑𝑘

𝑖=1 𝑣𝑖.𝑆𝑃 ≤∑𝑘

𝑖=1 𝑣𝑖−1.𝑆𝑃+𝑑𝑢𝑧𝑖𝑛𝑎(𝑣𝑖−1, 𝑣𝑖) =∑𝑘

𝑖=1 𝑣𝑖−1.𝑆𝑃+∑𝑘

𝑖=1 𝑑𝑢𝑧𝑖𝑛𝑎(𝑣𝑖−1, 𝑣𝑖)

Poxto je 𝑣0 = 𝑣𝑘, svaki qvor ulazi u zbirove∑𝑘

𝑖=1 𝑣𝑖.𝑆𝑃 i∑𝑘

𝑖=1 𝑣𝑖−1.𝑆𝑃 ,tj. ovi zbirovi su jednaki.

Pored toga, na osnovu posledice, vrednosti 𝑣𝑖.𝑆𝑃 su konaqne za 𝑖 =1, 2, . . . , 𝑘 pa se dobija da je

0 ≤𝑘∑

𝑖=1

𝑑𝑢𝑧𝑖𝑛𝑎(𝑣𝑖−1, 𝑣𝑖)

suprotno nejednakosti 7.2. Zakuqujemo da algoritam 𝐵𝑒𝑙𝑙𝑚𝑎𝑛 − 𝐹𝑜𝑟𝑑vra�a 𝑡𝑟𝑢𝑒 ako graf 𝐺 ne sadr�i ciklus negativne du�ine, odnosno 𝑓𝑎𝑙𝑠𝑒u protivnom.

7.8 Minimalno povezuju�e stablo

Razmotrimo sistem raqunara koje treba povezati optiqkim kablovima.Potrebno je obezbediti da postoji veza izme�u svaka dva raqunara. Poznatisu troxkovi postava�a kabla izme�u svaka dva raqunara. Ci je pro-jektovati mre�u optiqkih kablova tako da cena mre�e bude minimalna.Sistem raqunara mo�e biti predstaven grafom qiji qvorovi odgovarajuraqunarima, a grane { potencijalnim vezama izme�u raqunara, sa odgo-varaju�om (pozitivnom) cenom. Problem je prona�i povezani podgraf (sa

Page 108: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.8. Minimalno povezuju�e stablo 108

granama koje odgovaraju postavenim optiqkim kablovima), koji sadr�isve qvorove, takav da mu suma cena grana bude minimalna. Nije texkovideti da taj podgraf mora da bude stablo. Ako bi podgraf imao ciklus,onda bi se iz ciklusa mogla ukloniti jedna grana| time se dobija podgrafkoji je i dae povezan, a ima ma�u cenu, jer su cene grana pozitivne.Tra�eni podgraf zove seminimalno povezuju�e (razapi�u�e) stablo(MCST, skra�enica od minimum–cost spanning tree) i ima mnogo primena.Nax ci je konstrukcija efikasnog algoritma za nala�e�e MCST. Zbogjednostavnosti, pretpostavimo da su cene grana razliqite. Ova pretpo-stavka ima za posledicu da jeMCST jedinstveno, xto olakxava rexava�eproblema. Bez ove pretpostavke algoritam ostaje neprome�en, izuzev xto,kad se nai�e na grane jednake te�ine, proizvono se bira jedna od �ih.

Problem. Za zadati neusmereni povezani te�inski graf 𝐺 = (𝑉,𝐸)konstruisati povezuju�e stablo 𝑇 minimalne cene.

U ovom kontekstu te�ine grana te�inskog grafa 𝐺 su u stvari �ihovecene. Prirodno je koristiti slede�u induktivnu hipotezu.

Induktivna hipoteza (1). Umemo da konstruixemo MCST za povezanigraf sa ma�e od 𝑚 grana.

Bazni sluqaj je trivijalan. Ako je zadat problem MCST sa 𝑚 grana,kako se on mo�e svesti na problem sa ma�e od 𝑚 grana? Tvrdimo dagrana najma�e te�ine mora biti ukuqena u MCST. Ako ona ne bi bilaukuqena, onda bi �eno dodava�e stablu MCST zatvorilo neki ciklus;ukla�a�em proizvone druge grane iz tog ciklusa ponovo se dobija stablo,ali ma�e te�ine|xto je u suprotnosti sa pretpostavkom o minimalnostiMCST. Dakle, mi znamo jednu granu koja mora da pripada MCST. Mo�emoda je uklonimo iz grafa i primenimo induktivnu hipotezu na ostatakgrafa, koji sada ima ma�e od 𝑚 grana. Da li je ovo regularna primenaindukcije?

Problem je u tome xto posle ukla�a�a grane, preostali problem vixenije ekvivalentan polaznom. Prvo, izbor jedne grane ograniqava mogu�-nosti izbora drugih grana. Drugo, posle ukla�a�a grane graf ne mora daostane povezan.

Rexe�e nastalog problema je u precizira�u induktivne hipoteze. Miznamo kako da izaberemo prvu granu, ali ne mo�emo da je uklonimo iprosto zaboravimo na �u, jer ostali izbori zavise od �e. Dakle, umestoda granu uklonimo, treba da je oznaqimo, i da tu qi�enicu, �en izbor,koristimo dae u algoritmu. Algoritam se izvrxava tako xto se jednapo jedna grana bira i dodaje u MCST. Prema tome, indukcija je ne premaveliqini grafa, nego prema broju izabranih grana u zadatom (fiksiranom)grafu.

Induktivna hipoteza (2). Za zadati povezan graf 𝐺 = (𝑉,𝐸) umemo daprona�emo podgraf { stablo 𝑇 sa 𝑘 grana (𝑘 < |𝑉 | − 1), tako da je stablo𝑇 podgraf MCST grafa 𝐺.

Bazni sluqaj za ovu hipotezu smo ve� razmotrili | on se odnosi naizbor prve grane. Pretpostavimo da smo pronaxli stablo 𝑇 koje zadovoavainduktivnu hipotezu i da je potrebno da 𝑇 proxirimo narednom granom.

Page 109: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

109 7. Grafovski algoritmi

Kako da prona�emo novu granu za koju �emo biti sigurni da pripadaMCST? Primeni�emo sliqan pristup kao i pri izboru prve grane. Za 𝑇 seve� zna da je deo konaqnog MCST. Zbog toga u MCST mora da postoji barjedna grana koja povezuje neki qvor iz 𝑇 sa nekim qvorom u ostatku grafa.Pokuxa�emo da prona�emo takvu granu. Neka je 𝐸𝑘 skup svih grana kojepovezuju 𝑇 sa qvorovima van 𝑇 . Tvrdimo da grana sa najma�om cenom iz 𝐸𝑘

pripadaMCST. Oznaqimo tu granu sa (𝑢, 𝑣) (videti sliku 7.9; grane stabla𝑇 su podebane). Poxto je MCST povezuju�e stablo, ono sadr�i taqnojedan put od 𝑢 do 𝑣 (izme�u svaka dva qvora u stablu postoji taqno jedanput). Ako grana (𝑢, 𝑣) ne pripada MCST, onda ona ne pripada ni tom putuod 𝑢 do 𝑣. Me�utim, poxto 𝑢 pripada, a 𝑣 ne pripada 𝑇 , na tom putu morada postoji bar jedna grana (𝑥, 𝑦) takva da 𝑥 ∈ 𝑇 i 𝑦 /∈ 𝑇 . Cena ove grane ve�aje od cene (𝑢, 𝑣), jer je cena (𝑢, 𝑣) najma�a me�u cenama grana koje povezuju𝑇 sa ostatkom grafa. Sada mo�emo da primenimo sliqno zakuqiva�e kaopri izboru prve grane. Ako dodamo (𝑢, 𝑣) stablu MCST, a izbacimo (𝑥, 𝑦),dobijamo povezuju�e stablo ma�e cene, xto je kontradikcija.

t ttttt t

ttt

ttt

t

𝑢𝑣

𝑥

𝑦

Slika 7.9: Nala�e�e slede�e grane minimalnog povezuju�eg stabla(MCST).

Realizacija. Opisani algoritam (Primov algoritam) sliqan je algoritmuza nala�e�e najkra�ih puteva od zadatog qvora iz prethodnog odeka.Prva izabrana grana je grana sa najma�om cenom. 𝑇 se definixe kaostablo sa samo tom jednom granom. U svakoj iteraciji pronalazi se granakoja povezuje 𝑇 sa nekim qvorom van 𝑇 , a ima najma�u cenu. U algoritmuza nala�e�e najkra�ih puteva od zadatog qvora tra�ili smo najkra�iput do qvora van 𝑇 . Prema tome, jedina razlika izme�u MCST algoritmai algoritma za nala�e�e najkra�ih puteva je u tome xto se minimumtra�i ne po du�ini puta, nego po ceni grane. Ostatak algoritma prenosise praktiqno bez promene. Za svaki qvor 𝑤 van 𝑇 pamtimo cenu graneminimalne cene do 𝑤 od nekog qvora iz 𝑇 , odnosno ∞ ako takva grana nepostoji. U svakoj iteraciji mi na taj naqin biramo granu najma�e cenei povezujemo odgovaraju�i qvor 𝑤 sa stablom 𝑇 . Zatim proveravamo svegrane susedne qvoru 𝑤. Ako je cena neke takve grane (𝑤, 𝑧) (za 𝑧 /∈ 𝑇 ) ma�aod cene trenutno najjeftinije poznate grane do 𝑧, onda popravamo cenuqvora 𝑧 i granu koja kroz stablo vodi do �ega. Ovaj algoritam poznat je

Page 110: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.8. Minimalno povezuju�e stablo 110

pod nazivom Primov algoritam.

𝑀𝐶𝑆𝑇 𝑃𝑟𝑖𝑚(𝐺)ulaz: 𝐺 = (𝑉,𝐸) (neusmereni te�inski graf)izlaz: 𝑇 (minimalno povezuju�e stablo grafa 𝐺){Na poqetku je 𝑇 prazan skup}1 for sve qvorove 𝑤 do2 𝑤.𝑂𝑧𝑛𝑎𝑘𝑎← 𝑓𝑎𝑙𝑠𝑒; {𝑤.𝑂𝑧𝑛𝑎𝑘𝑎 je 𝑡𝑟𝑢𝑒 ako je 𝑤 u 𝑇}3 𝑤.𝐶𝑒𝑛𝑎←∞;4 neka je (𝑥, 𝑦) grana sa najma�om cenom u 𝐺5 𝑥.𝑂𝑧𝑛𝑎𝑘𝑎← 𝑡𝑟𝑢𝑒; {𝑦 �e biti oznaqeno u glavnoj peti}6 for sve grane (𝑥, 𝑧) do7 𝑧.𝐺𝑟𝑎𝑛𝑎← (𝑥, 𝑧) ; {grana najma�e cene od 𝑇 do 𝑧}8 𝑧.𝐶𝑒𝑛𝑎← 𝑐𝑒𝑛𝑎(𝑥, 𝑧); {cena grane 𝑧.𝐺𝑟𝑎𝑛𝑎}9 while postoji neoznaqen qvor do10 {neka je 𝑤 neoznaqeni qvor sa najma�om vrednox�u 𝑤.𝐶𝑒𝑛𝑎;}11 if 𝑤.𝐶𝑒𝑛𝑎 =∞ then12 𝑝𝑟𝑖𝑛𝑡 "𝐺 nije povezan"; ℎ𝑎𝑙𝑡;13 else14 𝑤.𝑂𝑧𝑛𝑎𝑘𝑎← 𝑡𝑟𝑢𝑒15 {dodaj 𝑤.𝐺𝑟𝑎𝑛𝑎 u 𝑇}16 {sada popravamo cene neoznaqenih qvorova povezanih sa 𝑤}17 for sve grane (𝑤, 𝑧) do18 if not 𝑧.𝑂𝑧𝑛𝑎𝑘𝑎 then19 if 𝑐𝑒𝑛𝑎(𝑤, 𝑧) < 𝑧.𝐶𝑒𝑛𝑎 then20 𝑧.𝐺𝑟𝑎𝑛𝑎← (𝑤, 𝑧)21 𝑧.𝐶𝑒𝑛𝑎← 𝑐𝑒𝑛𝑎(𝑤, 𝑧);

Slo�enost. Slo�enost Primovog algoritma identiqna je slo�enostialgoritma za nala�e�e najkra�ih rastoja�a od zadatog qvora iz prethodnogodeka, 𝑂((|𝐸|+ |𝑉 |) log |𝑉 |).

Primer 7.2. Algoritam za konstrukcijuMCST ilustrova�emo primeromna slici 7.10. Qvor u prvoj koloni tabele je onaj koji je dodat u odgovara-ju�em koraku. Prvi dodati qvor je 𝑣, i u prvoj vrsti navedene su sve graneiz 𝑣 sa svojim cenama. U svakoj vrsti bira se grana sa najma�om cenom.Spisak trenutno najboih grana i �ihovih cena poprava se u svakomkoraku (prikazani su samo krajevi grana). Na slici su grane grafa kojepripadaju MCST podebane.

Drugi efikasan algoritam za odre�iva�e MCST grafa 𝐺 = (𝑉,𝐸)je tako�e pohlepan, ali do MCST ne dolazi dodava�em novih grana natrenutno stablo, nego na trenutnu xumu. Dodava�em svake nove granesma�uje se broj stabala u xumi, tako da se na kraju dolazi do samo jednogstabla, za koje se ispostava da je MCST. Pri tome se grane za dodava�erazmatraju redosledom prema rastu�im te�inama; ako grana koja je naredu povezuje dva qvora u razliqitim stablima trenutne xume, onda se tagrana ukuquje u xumu, qime se dva stabla spajaju u jedno. U protivnom,ako grana povezuje dva qvora u istom stablu trenutne xume, grana sepreskaqe.

Page 111: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

111 7. Grafovski algoritmi

ddd

d dd dd d𝑎 1 𝑣 6 𝑏

2 9 3

𝑒7𝑑4

𝑐

10 12 51113

𝑓 𝑔 ℎ

𝑣 𝑎 𝑏 𝑐 𝑑 𝑒 𝑓 𝑔 ℎ𝑣 − 𝑣(1) 𝑣(6) ∞ 𝑣(9) ∞ ∞ ∞ ∞𝑎 − − 𝑣(6) 𝑎(2) 𝑣(9) ∞ ∞ ∞ ∞𝑐 − − 𝑣(6) − 𝑐(4) ∞ 𝑐(10) ∞ ∞𝑑 − − 𝑣(6) − − 𝑑(7) 𝑐(10) 𝑑(12) ∞𝑏 − − − − − 𝑏(3) 𝑐(10) 𝑑(12) ∞𝑒 − − − − − − 𝑐(10) 𝑑(12) 𝑒(5)ℎ − − − − − − 𝑐(10) ℎ(11) −𝑓 − − − − − − − ℎ(11) −𝑔 − − − − − − − − −

Slika 7.10: Primer izvrxava�a Primovog algoritma za nala�e�eMCST.

Da se ustanovi da li su krajevi 𝑢, 𝑣 trenutne grane (𝑢, 𝑣) u istomili razliqitim stablima trenutne xume, zgodno je koristiti strukturupodataka za disjunktne skupove (videti odeak 6.1): trenutna stabla xumesu disjunktni podskupovi skupa qvorova. Operacije 𝑝𝑜𝑑𝑠𝑘𝑢𝑝(𝑢) i 𝑝𝑜𝑑𝑠𝑘𝑢𝑝(𝑣)pronalaze predstavnike 𝑢′, 𝑣′ dva podskupa (korene stabala kojim su onipredstaveni), pa su 𝑢 i 𝑣 u istom podskupu akko je 𝑢′ = 𝑣′. Ako je 𝑢 = 𝑣,onda se ta dva podskupa zame�uju svojom unijom, tj. prime�uje se operacija𝑢𝑛𝑖𝑗𝑎(𝑢′, 𝑣′). U nastavku je prikazan kod ovog algoritma { Kruskalovogalgoritma.

𝑀𝐶𝑆𝑇 𝐾𝑟𝑢𝑠𝑘𝑎𝑙(𝐺)ulaz: 𝐺 = (𝑉,𝐸) (neusmereni te�inski graf, te�ina grane 𝑒 ∈ 𝐸 je 𝑒.𝑤)izlaz: 𝐴 (minimalno povezuju�e stablo grafa 𝐺)1 𝐴← ∅2 for each 𝑣 ∈ 𝑉 do3 formirati podskup {𝑣}4 sortirati grane 𝑒 ∈ 𝐸 u neopadaju�i niz prema te�inama 𝑒.𝑤5 for each (𝑢, 𝑣) ∈ 𝐸 datim u neopadaju�em redosledu prema (𝑢, 𝑣).𝑤 do6 if 𝑢′ = 𝑝𝑜𝑑𝑠𝑘𝑢𝑝(𝑢) = 𝑝𝑜𝑑𝑠𝑘𝑢𝑝(𝑣) = 𝑣′ then7 𝐴← 𝐴 ∪ {(𝑢, 𝑣)}8 𝑢𝑛𝑖𝑗𝑎(𝑢′, 𝑣′)9 return 𝐴

Primer izvrxava�a Kruskalovog algoritma na grafu sa slike 7.10prikazan je u tabeli 7.1. S obzirom na to da su du�ine svih grana razliqite,rezultat je isto MCST kao na slici 7.10.

Slo�enost algoritma je𝑂(|𝑉 |)+𝑂(|𝐸| log |𝐸|)+𝑂(|𝐸| log |𝑉 |) = 𝑂(|𝐸| log |𝑉 |){ ovi sabirci odgovaraju redom peti u linijama 2, 3, sortira�u grana uliniji 4 i for peti u linijama 5{8. Pri tome se koristi qi�enica daje 𝑂(log |𝐸|) = 𝑂(log |𝑉 |) zbog |𝐸| ≤ |𝑉 |2.

7.9 Svi najkra�i putevi

Sada �emo razmotriti problem izraqunava�a najkra�ih puteva izme�usvaka dva qvora u grafu.

Page 112: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.9. Svi najkra�i putevi 112

grana du�ina ukuqena? xuma𝑣, 𝑎, 𝑏, 𝑐, 𝑑, 𝑒, 𝑓, 𝑔, ℎ

𝑎𝑣 1 da 𝑎𝑣, 𝑏, 𝑐, 𝑑, 𝑒, 𝑓, 𝑔, ℎ𝑎𝑐 2 da 𝑎𝑐𝑣, 𝑏, 𝑐, 𝑑, 𝑒, 𝑓, 𝑔, ℎ𝑏𝑒 3 da 𝑎𝑐𝑣, 𝑏𝑒, 𝑑, 𝑒, 𝑓, 𝑔, ℎ𝑐𝑑 4 da 𝑎𝑐𝑑𝑣, 𝑏𝑒, 𝑓, 𝑔, ℎ𝑒ℎ 5 da 𝑎𝑐𝑑𝑣, 𝑏𝑒ℎ, 𝑓, 𝑔𝑏𝑣 6 da 𝑎𝑏𝑐𝑑𝑒ℎ𝑣, 𝑓, 𝑔𝑑𝑒 7 ne 𝑎𝑏𝑐𝑑𝑒ℎ𝑣, 𝑓, 𝑔𝑑𝑣 8 ne 𝑎𝑏𝑐𝑑𝑒ℎ𝑣, 𝑓 , 𝑔𝑐𝑓 9 da 𝑎𝑏𝑐𝑑𝑒𝑓ℎ𝑣, 𝑔𝑔ℎ 10 da 𝑎𝑏𝑐𝑑𝑒𝑓𝑔ℎ𝑣𝑑𝑔 11 ne 𝑎𝑏𝑐𝑑𝑒𝑓𝑔ℎ𝑣𝑓𝑔 12 ne 𝑎𝑏𝑐𝑑𝑒𝑓𝑔ℎ𝑣

Tabela 7.1: Primer izvrxava�a Kruskalovog algoritma za graf sa slike7.10

Problem. Dat je te�inski graf 𝐺 = (𝑉,𝐸) (usmereni ili neusmereni)sa nenegativnim te�inama (du�inama) grana. Prona�i puteve minimalnedu�ine izme�u svaka dva qvora.

Ponovo, poxto govorimo o najkra�im putevima, te�ine grana zovemodu�inama. Ovo je problem nala�e�a svih najkra�ih puteva. Zbog jedno-stavnosti �emo se zadovoiti nala�e�em du�ina svih najkra�ih puteva,umesto samih puteva. Pretpostavamo da je graf usmeren; sve xto �e bitireqeno va�i i za neusmerene grafove. Pored toga, pretpostava se da sudu�ine grana nenegativne.

Kao i obiqno, pokuxajmo sa direktnim induktivnim pristupom. Mo�ese koristiti indukcija po broju grana ili qvorova.

Kako se me�aju najkra�i putevi u grafu posle dodava�a nove grane(𝑢,𝑤)? Nova grana mo�e pre svega da predstava kra�i put izme�u qvorova𝑢 i 𝑤. Pored toga, mo�e se promeniti najkra�i put izme�u proizvonadruga dva qvora 𝑣1 i 𝑣2. Da bi se ustanovilo ima li promene, treba saprethodno poznatom najma�om du�inom puta od 𝑣1 do 𝑣2 uporediti zbirdu�ina najkra�eg puta od 𝑣1 do 𝑢, grane (𝑢,𝑤) i du�ine najkra�eg putaod 𝑤 do 𝑣2. Ukupno, za svaku novu granu potrebno je izvrxiti 𝑂(|𝑉 |2)provera, pa je slo�enost ovakvog algoritma u najgorem sluqaju 𝑂(|𝐸||𝑉 |2).Poxto je broj grana najvixe 𝑂(|𝑉 |2), slo�enost ovog algoritma je 𝑂(|𝑉 |4).

Kako se me�aju najkra�i putevi ako se u graf doda novi qvor 𝑢?Potrebno je najpre prona�i du�ine najkra�ih puteva od 𝑢 do svih ostalihqvorova, i od svih ostalih qvorova do 𝑢. Poxto su du�ine najkra�ihputeva koji ne sadr�e 𝑢 ve� poznate, najkra�i put od 𝑢 do 𝑤 mo�emo daprona�emo na slede�i naqin. Potrebno je da odredimo samo prvu granuna tom putu. Ako je to grana (𝑢, 𝑣), onda je du�ina najkra�eg puta od 𝑢do 𝑤 jednaka zbiru du�ine grane (𝑢, 𝑣) i du�ine najkra�eg puta od 𝑣 do𝑤, koja je ve� poznata. Potrebno je dakle da uporedimo ove zbirove zasve grane susedne sa 𝑢, i da me�u �ima izaberemo najma�u. Najkra�i putod 𝑤 do 𝑢 mo�e se prona�i na sliqan naqin. Ali to sve nije dovono.

Page 113: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

113 7. Grafovski algoritmi

Ponovo je potrebno da za svaki par qvorova proverimo da li izme�u �ihpostoji novi kra�i put kroz novi qvor 𝑢. Za svaka dva qvora 𝑣1 i 𝑣2, dabi se ustanovilo ima li promene, treba sa prethodno poznatom najma�omdu�inom puta od 𝑣1 do 𝑣2 uporediti zbir du�ina najkra�eg puta od 𝑣1do 𝑢 i du�ine najkra�eg puta od 𝑢 do 𝑣2. To je ukupno 𝑂(|𝑉 |2) proverai sabira�a posle dodava�a svakog novog qvora, pa je slo�enost ovakvogalgoritma u najgorem sluqaju 𝑂(|𝑉 |3). Ispostava se da je indukcija pobroju qvorova efikasnija nego po broju grana. Me�utim, postoji jox boainduktivna konstrukcija za rexava�e ovog problema.

Ideja je da se ne me�a broj qvorova ili grana, nego da se uvedu ograni-qe�a na tip dozvoenih puteva. Indukcija se izvodi po opadaju�em brojutakvih ograniqe�a, tako da na kraju dolaze u obzir svi mogu�i putevi.Numeriximo qvorove od 1 do |𝑉 |. Put od 𝑢 do 𝑤 zove se 𝑘-put ako suredni brojevi svih qvorova na putu (izuzev 𝑢 i 𝑤) ma�i ili jednaki od 𝑘.Specijalno, 0-put se sastoji samo od jedne grane (poxto se ni jedan drugiqvor ne mo�e pojaviti na putu).

Induktivna hipoteza. Umemo da odredimo du�ine najkra�ih putevaizme�u svaka dva qvora, pri qemu su dozvoeni samo 𝑘-putevi, za 𝑘 < 𝑚.

Baza indukcije je sluqaj 𝑚 = 1, kad se razmatraju samo direktne granei rexe�e je oqigledno. Pretpostavimo da je induktivna hipoteza taqna ida ho�emo da je proxirimo na 𝑘 ≤ 𝑚. Jedini novi putevi koje treba darazmotrimo su 𝑚-putevi. Treba da prona�emo najkra�e 𝑚-puteve izme�usvaka dva qvora i da proverimo da li oni poboxavaju 𝑘-puteve za 𝑘 < 𝑚.Neka je 𝑣𝑚 qvor sa rednim brojem 𝑚. Proizvoan najkra�i 𝑚-put sadr�i𝑣𝑚 najvixe jednom (pretpostava se da su cene grana pozitivne). Najkra�i𝑚-put izme�u 𝑢 i 𝑣 mo�e da se sastoji od najkra�eg (𝑚−1)-puta od 𝑢 do 𝑣𝑚,i najkra�eg (𝑚− 1)-puta od 𝑣𝑚 do 𝑣. Prema induktivnoj hipotezi mi ve�znamo du�ine najkra�ih 𝑘-puteva za 𝑘 < 𝑚, pa je dovono da saberemo ovedve du�ine (i zbir uporedimo sa du�inom najkra�eg (𝑚− 1)-puta od 𝑢 do𝑣) da bismo pronaxli du�inu najkra�eg 𝑚-puta od 𝑢 do 𝑣. Ovaj algoritampoznat je pod nazivom Flojd-Varxalov algoritam. On je nexto br�i odprethodnog algoritma (za konstantni faktor) i lakxe ga je i realizovati.

𝑆𝑣𝑖 𝑁𝑎𝑗𝑘𝑟 𝑝𝑢𝑡𝑒𝑣𝑖(𝑊 )ulaz: 𝑊 (𝑛× 𝑛 matrica povezanosti koja predstava te�inski graf){ 𝑊 [𝑥, 𝑦] je te�ina grane (𝑥, 𝑦) ako ona postoji, odnosno ∞ u protivnom}{ 𝑊 [𝑥, 𝑥] je 0 za sve qvorove 𝑥}izlaz: na kraju matrica 𝑊 sadr�i du�ine najkra�ih puteva.1 for 𝑚← 1 to 𝑛 do {indukcija je po parametru 𝑚}2 for 𝑥← 1 to 𝑛 do3 for 𝑦 ← 1 to 𝑛 do4 if 𝑊 [𝑥,𝑚] +𝑊 [𝑚, 𝑦] < 𝑊 [𝑥, 𝑦] then5 𝑊 [𝑥, 𝑦]←𝑊 [𝑥,𝑚] +𝑊 [𝑚, 𝑦]

Unutrax�e dve pete koriste se za proveru svih parova qvorova. Zapa-�a se da se ova provera mo�e izvrxavati sa parovima qvorova proizvonimredosledom, jer je svaka provera nezavisna od ostalih.

Page 114: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

7.10. Tranzitivno zatvore�e 114

Slo�enost. Za svako 𝑚 algoritam izvrxava jedno sabira�e i jednoupore�iva�e za svaki par qvorova. Broj koraka indukcije je |𝑉 |, pa jeukupan broj sabira�a, odnosno upore�iva�a, najvixe |𝑉 |3. Prisetimo seda je vremenska slo�enost algoritma za nala�e�e du�ina najkra�ih putevaod jednog qvora 𝑂(|𝐸| log |𝑉 |). Ako je graf gust, pa je broj grana Ω(|𝑉 |2),onda je opisani algoritam efikasniji od izvrxava�a za svaki qvor al-goritma za najkra�e puteve od datog qvora. Iako je mogu�e realizovatialgoritam za najkra�e puteve od jednog qvora slo�enosti 𝑂(|𝑉 |2), a timei algoritam slo�enosti 𝑂(|𝑉 |3) za nala�e�e svih najkra�ih rastoja�a,algoritam iz ovog odeka boi je za guste grafove zbog svoje jednostavnerealizacije. S druge strane, ako graf nije gust (pa ima na primer 𝑂(|𝑉 |)grana), onda je boa vremenska slo�enost 𝑂(|𝐸||𝑉 | log |𝑉 |) koja potiqe od(|𝑉 |) puta upotrebenog algoritma za najkra�e puteve od jednog qvora.

7.10 Tranzitivno zatvore�e

Za zadati usmereni graf 𝐺 = (𝑉,𝐸) �egovo tranzitivno zatvore�e𝐶 = (𝑉, 𝐹 ) je usmereni graf u kome grana (𝑢,𝑤) izme�u qvorova 𝑢 i 𝑤postoji ako i samo ako u 𝐺 postoji usmereni put od 𝑢 do 𝑤. Postoji mnogoprimena tranzitivnog zatvore�a, pa je va�no imati efikasni algoritamza �egovo nala�e�e.

Problem. Prona�i tranzitivno zatvore�e zadatog usmerenog grafa 𝐺 =(𝑉,𝐸).

Ovaj problem rexi�emo redukcijom (svo�e�em) na drugi problem.Drugim reqima pokaza�emo kako se mo�e proizvoni ulaz za problemtranzitivno zatvore�e svesti na ulaz za drugi problem, koji umemo dareximo. Posle toga rexe�e drugog problema transformixemo u rexe�eproblema tranzitivnog zatvore�a. Problem o kome je req je nala�e�e svihnajkra�ih puteva.

Neka je 𝐺′ = (𝑉,𝐸′) kompletni usmereni graf (graf kod koga za svakipar qvorova postoje obe grane, u oba smera). Grani 𝑒 ∈ 𝐸′ dodeuje sedu�ina 0 ako je 𝑒 ∈ 𝐸, odnosno 1 u protivnom. Sada za graf 𝐺′ rexavamoproblem nala�e�a svih najkra�ih puteva. Ako u 𝐺 postoji put izme�u𝑣 i 𝑤, onda je u 𝐺′ �egova du�ina 0. Xta vixe, put izme�u 𝑣 i 𝑤 u 𝐺postoji ako i samo ako je du�ina najkra�eg puta izme�u 𝑣 i 𝑤 u 𝐺′ jednaka0. Drugim reqima, rexe�e problema svih najkra�ih puteva neposredno setransformixe u rexe�e problema tranzitivnog zatvore�a.

Nije texko prepraviti algoritam za sve najkra�e puteve, tako da direktnorexava problem tranzitivnog zatvore�a.

𝑇𝑟𝑎𝑛𝑧𝑖𝑡𝑖𝑣𝑛𝑜 𝑧𝑎𝑡𝑣𝑜𝑟𝑒𝑛𝑗𝑒(𝐴)ulaz: 𝐴 (𝑛× 𝑛 matrica povezanosti koja predstava usmereni graf){ 𝐴[𝑥, 𝑦] je 𝑡𝑟𝑢𝑒 ako grana (𝑥, 𝑦) pripada grafu, odnosno 𝑓𝑎𝑙𝑠𝑒 u protivnom}{ 𝐴[𝑥, 𝑥] je 𝑡𝑟𝑢𝑒 za sve qvorove 𝑥}izlaz: na kraju matrica 𝐴 predstava tranzitivno zatvore�e grafa.1 for 𝑚← 1 to 𝑛 do {indukcija je po parametru 𝑚}2 for 𝑥← 1 to 𝑛 do3 for 𝑦 ← 1 to 𝑛 do

Page 115: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

115 7. Grafovski algoritmi

4 if 𝐴[𝑥,𝑚] and 𝐴[𝑚, 𝑦] then 𝐴[𝑥, 𝑦]← 𝑡𝑟𝑢𝑒5 {ovaj korak je popraven u slede�oj varijanti algoritma}

Qi�enica da mo�emo da svedemo jedan problem na drugi znaqi da jeprvi problem opxtiji od drugog, odnosno da je drugi problem specijalnisluqaj prvog. Obiqno su opxtija rexe�a skupa, slo�enija. Mi smo videlimnogo primera gde je opxtiji problem lakxe rexiti; ipak, da bismovixe dobili, moramo vixe i da platimo. Posle korix�e�a redukcijepreporuqivo je pokuxati sa popravkom dobijenog rexe�a, koriste�ispecijalne osobine problema.

Razmotrimo osnovni korak algoritma, naredbu if . Ona se sastoji oddve provere, 𝐴[𝑥,𝑚] i 𝐴[𝑚, 𝑦]. Nexto se preduzima samo ako su oba uslovaispu�ena. Ova if naredba izvrxava se 𝑛 puta za svaki par qvorova. Svakapopravka ove naredbe vodila bi bitnoj popravci algoritma. Moraju lise svaki put proveravati oba uslova? Prva provera zavisi samo od 𝑥 i𝑚, a druga zavisi samo od 𝑚 i 𝑦. Zbog toga se prva provera mo�e zafiksirane 𝑥 i 𝑚 izvrxiti samo jednom (umesto 𝑛 puta). Ako prvi uslovnije ispu�en, onda se drugi ne mora proveravati ni za jednu vrednost𝑦. Ako je pak prvi uslov ispu�en, onda se �egova ispu�enost ne moraponovo proveravati. Ova promena je ugra�ena u poboxani algoritam datu nastavku. Asimptotska slo�enost ostaje neprome�ena, ali se algoritamu proseku izvrxava dva puta br�e.

𝑇𝑟𝑎𝑛𝑧𝑖𝑡𝑖𝑣𝑛𝑜 𝑧𝑎𝑡𝑣𝑜𝑟𝑒𝑛𝑗𝑒2(𝐴)ulaz: 𝐴 (𝑛× 𝑛 matrica povezanosti koja predstava usmereni graf){ 𝐴[𝑥, 𝑦] je 𝑡𝑟𝑢𝑒 ako grana (𝑥, 𝑦) pripada grafu, odnosno 𝑓𝑎𝑙𝑠𝑒 u protivnom}{ 𝐴[𝑥, 𝑥] je 𝑡𝑟𝑢𝑒 za sve qvorove 𝑥}izlaz: na kraju matrica 𝐴 predstava tranzitivno zatvore�e grafa.1 for 𝑚← 1 to 𝑛 do {indukcija je po parametru 𝑚}2 for 𝑥← 1 to 𝑛 do3 if 𝐴[𝑥,𝑚] then4 for 𝑦 ← 1 to 𝑛 do5 if 𝐴[𝑚, 𝑦] then 𝐴[𝑥, 𝑦]← 𝑡𝑟𝑢𝑒

Ovaj algoritam mo�e se dae usavrxiti. Linijaif A[m,y] then A[x,y] <- true

mo�e se ekvivalentno zameniti linijomA[x,y] = A[x,y] or A[m,y].Zapa�a se da se posle ove zamene u unutrax�oj peti algoritma operacija

or prime�uje na vrstu 𝑚 i vrstu 𝑥 matrice 𝐴, a rezultat je nova vrsta 𝑚.Zbog toga, ako je 𝑛 ≤ 64, vrste matrice 𝐴 mogu se predstaviti 𝑛-bitnimcelim brojevima, pa se primena operacije or na vrste zame�uje bitskomor operacijom dva cela broja, xto je 𝑛 puta br�e. Ako je 𝑛 veliko, onda sevrsta mo�e predstaviti nizom 64-bitnih celih brojeva, pa se algoritamizvrxava pribli�no 64 puta br�e. Asimptotska slo�enost je i dae𝑂(𝑛3), ali ubrza�e za faktor 64 nije zanemarivo.

Page 116: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo
Page 117: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Glava 8

Algebarski algoritmi

8.1 Uvod

Kad god izvrximo neku algebarsku operaciju, mi u stvari izvrxavamojedan algoritam. Do sada smo te operacije prihvatali kao nexto obiqno,kao algoritme koji postoje sami po sebi. Me�utim, bez obzira da li jeu pita�u mno�e�e, dee�e ili neka slo�enija algebarska operacija,uobiqajeni algoritam nije uvek najboi ako se radi sa vrlo velikimbrojevima ili nizovima brojeva. Ista pojava na koju smo nailazili uprethodnim poglavima ispoava se i ovde: algoritmi koji su dobri zamali ulaz postaju neefikasni za ve�e ulaze.

Slo�enost algoritma meri se brojem "operacija" koje algoritam izvr-xava. U najve�em broju sluqajeva pretpostavamo da se osnovne aritmetiqkeoperacije (kao xto su sabira�e, mno�e�e, dee�e) izvrxavaju za jediniqnovreme. To je razumna pretpostavka kad se argumenti mogu predstavitimaxinskom reqi (na primer, ne preveliki celi brojevi, realni brojevijednostruke ili dvostruke taqnosti). Postoje me�utim situacije kad suargumenti ogromni, na primer brojevi sa 2000 cifara. Tada se mora uzmetiu obzir i veliqina argumenata, a osnovne operacije prestaju da budu jedno-stavne. Ako se ignorixu veliqine argumenata, mogu�e je da na prvi pogleddobar algoritam bude u stvari vrlo neefikasan.

Znaqe�e "veliqine ulaza" ponekad nije sasvim jasno. Neka je dat celibroj 𝑛 sa kojim treba izvrxiti neku aritmetiqku operaciju. Na prvipogled izgleda prirodno da se za veliqinu ulaza smatra sama vrednost𝑛. Ovo se, me�utim, ne uklapa u neformalnu definiciju veliqine ulazakao meri veliqine memorijskog prostora potrebnog za �egovo smexta�e.Razlika je vrlo velika. Sabira�e dva broja od po 100 cifara mo�e seizvrxiti vrlo brzo, qak i ruqno. S druge strane, broja�e do vrednostipredstavene 100-cifrenim brojem praktiqno je nemogu�e, qak i na naj-br�em raqunaru. Poxto se broj 𝑛 mo�e predstaviti sa ⌈log2 𝑛⌉ bita, za�egovu veliqinu mo�e se smatrati ⌈log2 𝑛⌉ = 𝑂(log 𝑛). Tako se algoritamkoji zahteva 𝑂(log 𝑛) operacija kad je ulaz 𝑛 smatra linearnim (na primerizraqunava�e 2𝑛), jer je 𝑂(log 𝑛) linearna funkcija veliqine ulaza. Al-goritam koji zahteva izvrxava�e 𝑂(

√𝑛) operacija za ulaz 𝑛 (na primer

faktorizacija broja 𝑛 proverom deivosti broja 𝑛 svim brojevima ma�im

117

Page 118: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

8.2. Stepenova�e 118

ili jednakim od√𝑛) ima eksponencijalnu slo�enost.

Kao i obiqno, u ovom poglavu �emo pa��u usmeriti na interesantnetehnike konstrukcije algoritama. Najpre se razmatra stepenova�e datogbroja, zatim verovatno najstariji netrivijalni algoritam, Euklidov al-goritam za izraqunava�e najve�eg zajedniqkog delioca dva broja. Vrlo jeinteresantno da moderni raqunari koriste 2200 godina star algoritam.Ova dva algoritma koriste se recimo u poznatom asimetriqnom xifarskomsistemu RSA. Poglave se zavrxava jednim od najva�nijih i najlepxihalgoritama | brzom Furijeovom transformacijom.

8.2 Stepenova�e

Zapoqi�emo jednom od osnovnih aritmetiqkih operacija.

Problem. Data su dva prirodna broja 𝑛 i 𝑘. Izraqunati 𝑛𝑘.

Problem se lako mo�e svesti na izraqunava�e 𝑛𝑘−1, jer je 𝑛𝑘 = 𝑛·𝑛𝑘−1.Prema tome, problem se mo�e rexiti indukcijom po 𝑘; dobijeni direktnialgoritam prikazan je na slici 8.1. Sma�ena je vrednost 𝑘, ali ne i �egovaveliqina. Trivijalni algoritam zahteva 𝑘 mno�e�a. Poxto je veliqinabroja 𝑘 pribli�no log2 𝑘, broj iteracija je eksponencijalna funkcijaveliqine 𝑘 (𝑘 = 2log2 𝑘). Ovo nije loxe za male, ali je neprihvativoza velike vrednosti 𝑘.

Algoritam Stepen(𝑛, 𝑘); {prvi pokuxaj}Ulaz: 𝑛 i 𝑘 (dva prirodna broja).

Izlaz: 𝑃 (vrednost izraza 𝑛𝑘).

begin

𝑃 := 𝑛;

for 𝑖 := 1 to 𝑘 − 1 do

𝑃 := 𝑛 · 𝑃end

Slika 8.1: Trivijalni algoritam za stepenova�e.

Drugi naqin da se problem rexi je svo�e�e na problem sa dvostruko ma-�im eksponentom pomo�u jednakosti 𝑛𝑘 = (𝑛𝑘/2)2. Polove�e 𝑘 odgovarasma�e�u �egove veliqine za konstantu. Zbog toga je broj mno�e�a linearnafunkcija od veliqine 𝑘. Najjednostavniji sluqaj je 𝑘 = 2𝑗 , za neki prirodanbroj 𝑗:

𝑛𝑘 = 𝑛2𝑗 =

𝑗 puta⏞ ⏟ ((𝑛2

)2)...2

.

Xta ako 𝑘 nije stepen dvojke? Razmotrimo jox jednom prime�eni postupakredukcije. Poxavxi od parametara 𝑛 i 𝑘, problem je sveden na ma�i, saparametrima 𝑛 i 𝑘/2. Ako 𝑘/2 nije celi broj, onda (𝑘 − 1)/2 jeste, pa semo�e primeniti sliqna redukcija:

𝑛𝑘 = 𝑛(𝑛(𝑘−1)/2

)2

.

Page 119: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

119 8. Algebarski algoritmi

Sada je algoritam kompletiran. Ako je 𝑘 parno, jednostavno kvadriramorezultat stepenova�a izlo�iocem 𝑘/2. Ako je pak 𝑘 neparno, kvadriramorezultat stepenova�a izlo�iocem (𝑘 − 1)/2 i mno�imo ga sa 𝑛. Brojmno�e�a je najvixe 2 log2 𝑘. Algoritam je prikazan na slici 8.2.

Algoritam Stepen kvadriranjem(𝑛, 𝑘);

Ulaz: 𝑛 i 𝑘 (dva prirodna broja).

Izlaz: 𝑃 (vrednost izraza 𝑛𝑘).

begin

if 𝑘 = 1 then 𝑃 := 𝑛

else

𝑧 := 𝑆𝑡𝑒𝑝𝑒𝑛 𝑘𝑣𝑎𝑑𝑟𝑖𝑟𝑎𝑛𝑗𝑒𝑚(𝑛, 𝑘 div 2);

if 𝑘mod2 = 0 then

𝑃 := 𝑧 · 𝑧else

𝑃 := 𝑛 · 𝑧 · 𝑧end

Slika 8.2: Stepenova�e kvadrira�em.

Slo�enost. Ukupan broj mno�e�a je𝑂(log 𝑘). Me�utim, kako se napredujesa izvrxava�em algoritma, me�urezultati postaju sve ve�i, pa mno�e�apostaju sve komplikovanija. Ako se mno�e�e obava u prstenu ostatakapo modulu 𝑚 (odnosno posle svake operacije rezultat se zame�uje svojimostatkom pri dee�u sa 𝑚), onda me�urezultati ne rastu u toku izvrxe�aalgoritma i vremenska slo�enost algoritma je proizvod slo�enosti jednogmno�e�a i broja mno�e�a, 𝑂(𝑙𝑜𝑔𝑘).

8.3 Euklidov algoritam

Najve�i zajedniqki delilac dva prirodna broja 𝑛 i 𝑚 (oznaqava sesa NZD (𝑛,𝑚)) je jedinstveni prirodni broj 𝑑 koji 1) deli 𝑚 i 𝑛, i 2)ve�i je ili jednak od svakog drugog prirodnog broja 𝑑′ koji deli 𝑛 i 𝑚.Na primer, 𝑁𝑍𝐷(24, 33) = 3.

Problem. Odrediti najve�i zajedniqki delilac dva data prirodna broja.

Kao i obiqno, ideja je svesti polazni problem na problem sa ma�imulazom. Mogu li se 𝑛 ili 𝑚 nekako sma�iti, a da se rezultat ne promeni?Euklid je primetio da je to mogu�e: ako 𝑑 deli 𝑛 i 𝑚, onda deli i �ihovurazliku. Va�i i obrnuto; ako je na primer 𝑛 ≥ 𝑚, a 𝑑 deli𝑚 i 𝑛−𝑚, onda 𝑑deli i zbir𝑚+(𝑛−𝑚) = 𝑛. Drugim reqima,NZD (𝑛,𝑚) = NZD (𝑛−𝑚,𝑚), idobijen je ma�i ulaz. Me�utim, oduzima�em su sma�ene vrednosti brojevasa kojima se radi, ali ne (bitno, u opxtem sluqaju) i �ihove veliqine.Da bi algoritam bio efikasan, moraju se sma�iti veliqine brojeva. Naprimer, ako je 𝑛 vrlo veliki broj (npr. 1000 cifara) i 𝑚 = 24, brojoduzima�a 24 od 𝑛 je ogroman, oko 𝑛/24. Ovo raquna�e sastoji se od 𝑂(𝑛)koraka, xto je eksponencijalna funkcija od veliqine 𝑛.

Page 120: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

8.3. Euklidov algoritam 120

Razmotrimo ovu ideju jox jednom. Posle oduzima�a 𝑚 od 𝑛 isti algo-ritam treba primeniti na 𝑛−𝑚 i𝑚. Ako je 𝑛−𝑚 i dae ve�e od𝑚, od �egatreba oduzeti𝑚. Sa oduzima�em𝑚 nastava se sve dok razlika ne postanema�a od 𝑚. Broj ovakvih oduzima�a mo�e biti ogroman; sre�om, rezultatkoji se tako dobija je jednak ostatku 𝑛mod𝑚 pri dee�u 𝑛 sa 𝑚. Prematome, NZD (𝑛,𝑚) = NZD (𝑛mod𝑚,𝑚). Dee�e sa ostatkom izvrxava seefikasno. Na primer, NZD (33, 24) = NZD (24, 33 mod 24) = NZD (24, 9).Nastavaju�i na isti naqin, dobija seNZD (24, 9) = NZD (9, 6) = NZD (6, 3) =NZD (3, 0) = 3.

U opxtem sluqaju, polaze�i od brojeva 𝑟0 = 𝑛 i 𝑟1 = 𝑚, izraqunava seostatak 𝑟2 = 𝑟0 mod 𝑟1, zatim ostatak 𝑟3 = 𝑟1 mod 𝑟2, itd. Tako se dobijaopadaju�i niz ostataka

𝑟𝑖−1 = 𝑞𝑖𝑟𝑖 + 𝑟𝑖+1, 0 ≤ 𝑟𝑖+1 < 𝑟𝑖, za 𝑖 = 1, 2, . . . , 𝑘 (8.1)

(pri dee�u 𝑟𝑖−1 sa 𝑟𝑖 koliqnik je 𝑞𝑖, a ostatak 𝑟𝑖+1). Dobijeni niz jekonaqan jer je opadaju�i i sastoji se od prirodnih brojeva. Neka je npr.𝑟𝑘+1 = 0 i neka je 𝑟𝑘 = 0 posled�i qlan ovog niza razliqit od nule. Kakoje

NZD (𝑟0, 𝑟1) = NZD (𝑟1, 𝑟2) = . . . = NZD(𝑟𝑘−1, 𝑟𝑘) = NZD (𝑟𝑘, 0) = 𝑟𝑘,

vidimo da je 𝑑 = NZD(𝑛,𝑚) upravo jednako 𝑟𝑘, posled�em ostatku raz-liqitom od nule. Opisani postupak za izraqunava�e najve�eg zajedniqkogdelioca dva broja zove se Euklidov algoritam.

𝑁𝑍𝐷(𝑚,𝑛)ulaz: 𝑚 i 𝑛 (dva prirodna broja)izlaz: 𝑛𝑧𝑑 (najve�i zajedniqki delilac brojeva 𝑚 i 𝑛)1 𝑎← max(𝑛,𝑚)2 𝑏← min(𝑛,𝑚)3 𝑟 ← 1 {vrednost koja omogu�uje ulazak u petu}4 while 𝑟 > 0 do {𝑟 je ostatak}5 𝑟 ← 𝑎mod 𝑏6 𝑎← 𝑏7 𝑏← 𝑟8 return 𝑎

Slo�enost. Tvrdimo da je broj dee�a u Euklidovom algoritmu jednak𝑂(log(𝑚 + 𝑛)) (xto ne znaqi da je slo�enost algoritma linearna, jerveliqine brojeva koji se dele opadaju kako se odmiqe sa izvrxava�emalgoritma). Da se to doka�e, dovono je dokazati da vrednost ostatka𝑎 u algoritmu postaje bar dva puta ma�a posle dve iteracije. Posle prveiteracije par (𝑎, 𝑏) (𝑎 > 𝑏) zame�uje se parom (𝑏, 𝑎mod 𝑏), a posle drugeiteracije parom (𝑎mod 𝑏, 𝑏mod (𝑎mod 𝑏)). Prema tome, posle dve iteracijeje broj 𝑎 zame�en brojem 𝑎mod 𝑏, koji je uvek ma�i od 𝑎/2. Zaista, ako𝑏 ≤ 𝑎/2 onda je 𝑎mod 𝑏 < 𝑏 ≤ 𝑎/2; u protivnom, za 𝑏 > 𝑎/2, tako�e se dobija𝑎mod 𝑏 = 𝑎− 𝑏 = 𝑎/2− (𝑏− 𝑎/2) < 𝑎/2.

Uz malu dopunu, Euklidov algoritam se mo�e iskoristiti i za rexava�eslede�eg problema.

Page 121: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

121 8. Algebarski algoritmi

Problem. Najve�i zajedniqki delilac 𝑑 dva prirodna broja 𝑛 i 𝑚 iz-raziti kao �ihovu celobrojnu linearnu kombinaciju. Drugim reqima,odrediti cele brojeve 𝑥, 𝑦, tako da va�i 𝑑 = NZD(𝑛,𝑚) = 𝑛𝑥+𝑚𝑦.

Ci je 𝑑 izraziti u obliku linearne kombinacije 𝑑 = 𝑟0𝑥+𝑟1𝑦 ostataka𝑟0 = 𝑛 i 𝑟1 = 𝑚. Problem se mo�e rexiti indukcijom. Polazi se od baze,izraza za 𝑑 u obliku linearne kombinacije ostataka 𝑟𝑘−1 = 𝑛 i 𝑟𝑘−2 = 𝑚:𝑑 = 𝑟𝑘 = 𝑟𝑘−2−𝑞𝑘−1𝑟𝑘−1; ovaj izraz je ekvivalentan pretposled�em dee�uu Euklidovom algoritmu (izraz (8.1) za 𝑖 = 𝑘−1). Korak indukcije bio biizra�ava�e 𝑑 u obliku linearne kombinacije ostataka 𝑟𝑖−1 i 𝑟𝑖, polaze�iod izraza 𝑑 = 𝑥′𝑟𝑖 + 𝑦′𝑟𝑖+1 | celobrojne linearne kombinacije 𝑟𝑖 i 𝑟𝑖+1.Zaista, zamenom 𝑟𝑖+1 u ovom izrazu sa 𝑟𝑖+1 = 𝑟𝑖−1 − 𝑞𝑖𝑟𝑖, dobija se

𝑑 = 𝑥′𝑟𝑖 + 𝑦′(𝑟𝑖−1 − 𝑞𝑖𝑟𝑖) = 𝑦′𝑟𝑖−1 + (𝑥′ − 𝑞𝑖𝑦′)𝑟𝑖,

tj. izraz za 𝑑 u obliku celobrojne linearne kombinacije ostataka 𝑟𝑖−1 i𝑟𝑖. Dakle, indukcijom po 𝑖, 𝑖 = 𝑘−2, 𝑘−1, . . . , 1, 0 dokazano je da se 𝑑 mo�eizraziti kao celobrojna linearna kombinacija bilo koja dva uzastopnaqlana 𝑟𝑖, 𝑟𝑖+1 niza ostataka. Specijalno, za 𝑖 = 0, dobija se tra�eni izraz.

Primer 8.1. Neka je zadatak odrediti cele brojeve 𝑥 i 𝑦 tako da va�i3 = 33𝑥+24𝑦. S obzirom na to da je NZD (33, 24) = 3 mo�emo iskoristitiprethodni postupak za odre�iva�e brojeva 𝑥 i 𝑦. Prilikom izraqunava�anajve�eg zajedniqkog delioca imamo naredni niz jednakosti:NZD (33, 24) =NZD (24, 9) = NZD (9, 6) = NZD (6, 3) = NZD (3, 0). Prate�i ovaj niz jedna-kosti dobijamo: 𝑑 = 3 = 9−6 = 9−(24−2 ·9) = 3 ·9−24 = 3 ·(33−24)−24 =3 · 33− 4 · 24, odnosno 𝑥 = 3, 𝑦 = −4.

Slo�enost. Broj operacija je proporcionalan sa brojem dee�a u Eu-klidovom algoritmu, tj. 𝑂(𝑚+ 𝑛).

Znaqaj ove dopune Euklidovog algoritma je u tome xto ona omogu�ujerexava�a tzv. linearnih Diofantovih jednaqina 𝑎𝑥 + 𝑏𝑦 = 𝑐, gde su 𝑎,𝑏, 𝑐 dati celi brojevi, a 𝑥 i 𝑦 su celi brojevi koje treba odrediti. Bezsma�e�a opxtosti mo�e se pretpostaviti da je 𝑎, 𝑏 > 0. Da bi navedenajednaqina imala bar jedno rexe�e, potrebno je da 𝑑 = NZD(𝑎, 𝑏) deli𝑐 (poxto 𝑑 deli levu stranu jednaqine, mora da deli i desnu). Ako jeovaj uslov ispu�en, jedno od rexe�a lako se dobija opisanim postupkom.Poxto se 𝑑 izrazi u obliku 𝑑 = 𝑎𝑥′ + 𝑏𝑦′, mno�e�em sa celim brojem 𝑐/𝑑dobija se 𝑐 = 𝑎(𝑥′𝑐/𝑑) + 𝑏(𝑦′𝑐/𝑑), tj. vidi se da je jedno rexe�e jednaqinepar (𝑥, 𝑦) = (𝑥′𝑐/𝑑, 𝑦′𝑐/𝑑).

Page 122: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

8.4. Brza Furijeova transformacija 122

8.4 Brza Furijeova transformacija

Brza Furijeova transformacija (ili FFT, xto je skra�enica od fast Fouriertransform) je va�na iz vixe razloga. Ona efikasno rexava va�an praktiqanproblem, elegantna je, i otvara nove, neoqekivane oblasti primene. Zbogtoga je ona jedan od najva�nijih algoritama od svog otkri�a sredinomxezdesetih godina.

Algoritam FFT nije jednostavan, i do �ega se ne dolazi direktno.Ograniqi�emo se na samo jednu �egovu primenu, mno�e�e polinoma.

Problem. Izraqunati proizvod dva zadata polinoma 𝑝(𝑥) i 𝑞(𝑥).

Formulacija problema je precizna samo na prvi pogled, jer nije pre-ciziran naqin predstava�a polinoma. Obiqno se polinom

𝑃 = 𝑎𝑛−1𝑥𝑛−1 + 𝑎𝑛−2𝑥

𝑛−2 + . . .+ 𝑎1𝑥+ 𝑎0

predstava nizom svojih koeficijenata uz 1, 𝑥, 𝑥2, . . . , 𝑥𝑛−1; ali to nijejedina mogu�nost. Alternativa je predstava�e polinoma stepena 𝑛 −1 svojim vrednostima u 𝑛 razliqitih taqaka: te vrednosti jednoznaqnoodre�uju polinom. Drugi naqin predstava�a je interesantan zbog jed-nostavnosti mno�e�a. Proizvod dva polinoma stepena 𝑛 − 1 je polinomstepena 2𝑛 − 2, pa je odre�en svojim vrednostima u 2𝑛 − 1 taqaka. Akopretpostavimo da su vrednosti polinoma { qinilaca date u 2𝑛−1 taqaka,onda se proizvod polinoma izraqunava pomo�u 2𝑛−1, odnosno𝑂(𝑛) obiqnihmno�e�a.

Na�alost, predstava�e polinoma vrednostima za neke primene nijepogodno. Primer je izraqunava�e vrednosti polinoma u zadatim taqkama;pri reprezentaciji vrednostima, ovo je mnogo te�e nego ako su zadatikoeficijenti polinoma. Me�utim, ako bismo mogli da efikasno prevodimopolinome iz jedne u drugu predstavu, dobili bismo odliqan algoritam zamno�e�e polinoma. Upravo to se posti�e primenom FFT.

Prelaz od predstave polinoma koeficijentima na predstavu vrednostimau taqkama, rexava se izraqunava�em vrednosti polinoma. Vrednost polinoma𝑝(𝑥) (zadatog koeficijentima) u bilo kojoj taqki mo�e se pomo�u Hornerovexeme (odeak 4.2) izraqunati pomo�u 𝑛 mno�e�a. Izraqunava�e vrednosti𝑝(𝑥) u 𝑛 proizvonih taqaka izvodivo je dakle pomo�u 𝑛2 mno�e�a.Prelaz od predstave polinoma vrednostima na predstavu koeficijentimazove se interpolacija. Interpolacija u opxtem sluqaju tako�e zahteva𝑂(𝑛2) operacija. Ovde je kuqna ideja (kao i u mnogim drugim primerimakoje smo videli) da se ne koristi proizvonih 𝑛 taqaka: mi imamo sloboduda po �ei izaberemo pogodan skup od 𝑛 razliqitih taqaka. Brza Furijeovatransformacija koristi specijalan skup taqaka, tako da se obe transfor-macije, izraqunava�e vrednosti i interpolacija, mogu efikasno izvrxavati.

8.4.1 Direktna Furijeova transformacija

Razmotrimo problem izraqunava�a vrednosti polinoma. Potrebno jeizraqunati vrednosti dva polinoma stepena 𝑛−1 u 2𝑛−1 taqaka, da bi se�ihov proizvod, polinom stepena 2𝑛− 2, mogao interpolirati. Me�utim,polinom stepena 𝑛 − 1 mo�e se predstaviti kao polinom stepena 2𝑛 − 2

Page 123: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

123 8. Algebarski algoritmi

izjednaqava�em sa nulom vode�ih 𝑛 − 1 koeficijenata. Zbog toga se bezgubitka opxtosti mo�e pretpostaviti da je problem izraqunati vrednostiproizvonog polinoma 𝑃 =

∑𝑛−1𝑗=0 𝑎𝑗𝑥

𝑗 stepena 𝑛−1 u 𝑛 razliqitih taqaka.Ci je prona�i takvih 𝑛 taqaka, u kojima je lako izraqunati vrednostipolinoma. Zbog jednostavnosti pretpostavamo da je 𝑛 stepen dvojke.

Koristi�emo matriqnu terminologiju da bismo uprostili oznaqava�e.Izraqunava�e vrednosti polinoma 𝑃 u 𝑛 taqaka 𝑥0, 𝑥1, . . . , 𝑥𝑛−1 mo�e sepredstaviti kao izraqunava�e proizvoda matrice i vektora:⎛⎜⎜⎝

1 𝑥0 𝑥20 . . . 𝑥𝑛−1

0

1 𝑥1 𝑥21 . . . 𝑥𝑛−1

1

. . . . . . . . . . . . . . .1 𝑥𝑛−1 𝑥2

𝑛−1 . . . 𝑥𝑛−1𝑛−1

⎞⎟⎟⎠⎛⎜⎜⎝

𝑎0𝑎1. . .𝑎𝑛−1

⎞⎟⎟⎠ =

⎛⎜⎜⎝𝑃 (𝑥0)𝑃 (𝑥1). . .

𝑃 (𝑥𝑛−1)

⎞⎟⎟⎠ .

Pita�e je kako izabrati vrednosti 𝑥0, 𝑥1, . . . , 𝑥𝑛−1, tako da se ovo mno�e�euprosti. Posmatrajmo dve proizvone vrste 𝑟 i 𝑠. Voleli bismo da ihuqinimo xto sliqnijim, da bismo uxtedeli na mno�e�ima. Ne mo�e sestaviti 𝑥𝑟 = 𝑥𝑠, jer su taqke razliqite, ali se 𝑥2

𝑟 = 𝑥2𝑠 mo�e posti�i

stavaju�i 𝑥𝑠 = −𝑥𝑟. Ovo je dobar izbor, jer je svaki paran stepen 𝑥𝑟

jednak odgovaraju�em parnom stepenu 𝑥𝑠; neparni stepeni razlikuju sesamo po znaku. Isto se mo�e uraditi i sa ostalim parovima vrsta. Naslu�ujese u kom pravcu treba tra�iti 𝑛 specijalnih vrsta, za koje bi se gor�iproizvod svodio na samo 𝑛/2 proizvoda vrsta matrice sa kolonom koeficijenata.Rezultat bi bio polove�e veliqine ulaza, a time i vrlo efikasan algoritam.Pokuxajmo da postavimo ovaj problem kao dva odvojena problema dvostrukoma�e veliqine.

Podela polaznog problema na dva potproblema veliqine 𝑚 = 𝑛/2 mo�ese opisati slede�im izrazom⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

1 𝑥0 𝑥20 . . . 𝑥𝑛−1

0

1 𝑥1 𝑥21 . . . 𝑥𝑛−1

1

. . . . . . . . . . . . . . .1 𝑥𝑚−1 𝑥2

𝑚−1 . . . 𝑥𝑛−1𝑚−1

1 −𝑥0 (−𝑥0)2 . . . (−𝑥0)𝑛−1

1 −𝑥1 (−𝑥1)2 . . . (−𝑥1)𝑛−1

. . . . . . . . . . . . . . .1 −𝑥𝑚−1 (−𝑥𝑚−1)2 . . . (−𝑥𝑚−1)𝑛−1

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

⎛⎜⎜⎝𝑎0

𝑎1

. . .𝑎𝑛−1

⎞⎟⎟⎠ =

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎝

𝑃 (𝑥0)𝑃 (𝑥1). . .

𝑃 (𝑥𝑚−1)𝑃 (−𝑥0)

. . .𝑃 (−𝑥𝑚−1)

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎠. (8.2)

Polazna 𝑛 × 𝑛 matrica podeena je na dve vrlo sliqne podmatricedimenzija 𝑛/2 × 𝑛. Za svako 𝑗 = 0, 1, . . . , 𝑛/2 − 1, va�i 𝑥𝑛/2+𝑗 = −𝑥𝑗 .Zgodno je dakle napisati izraze za 𝑃 (𝑥𝑗) i 𝑃 (−𝑥𝑗), odnosno uopxte 𝑃 (𝑥),sa razdvojenim qlanovima parnog i neparnog stepena:

𝑃 (𝑥) =

𝑛/2−1∑𝑗=0

𝑎2𝑗𝑥2𝑗 +

𝑛/2−1∑𝑗=0

𝑎2𝑗+1𝑥2𝑗+1.

Ako sa 𝑃0(𝑥) =∑𝑛/2−1

𝑗=0 𝑎2𝑗𝑥𝑗 , odnosno 𝑃1(𝑥) =

∑𝑛/2−1𝑗=0 𝑎2𝑗+1𝑥

𝑗 oznaqimopolinome stepena 𝑛/2− 1 sa koeficijentima polinoma 𝑃 parnog, odnosnoneparnog indeksa, dolazimo do jednakosti

𝑃 (𝑥) = 𝑃0(𝑥2) + 𝑥𝑃1(𝑥

2). (8.3)

Page 124: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

8.4. Brza Furijeova transformacija 124

Zamenom 𝑥 sa −𝑥 dobijamo 𝑃 (−𝑥) = 𝑃0(𝑥2) + (−𝑥)𝑃1(𝑥

2). Izraqunava�e𝑃 (𝑥𝑗), 𝑗 = 0, 1, . . . , 𝑛 − 1 svodi se na raquna�e 𝑃 (𝑥𝑗) i 𝑃 (−𝑥𝑗) za 𝑗 =0, 1, . . . , 𝑛/2− 1, odnosno na izraqunava�e samo 𝑛/2 vrednosti 𝑃0(𝑥

2𝑗 ), 𝑛/2

vrednosti 𝑃1(𝑥2𝑗 ), i dopunskih 𝑛/2 sabira�a, 𝑛/2 oduzima�a i 𝑛 mno�e�a.

Dakle, imamo dva potproblema veliqine 𝑛/2 i 𝑂(𝑛) dopunskih operacija.Mo�e li se nastaviti rekurzivno na isti naqin? Ako bi nam to poxlo

za rukom, doxli bismo do poznate diferencne jednaqine 𝑇 (𝑛) = 2𝑇 (𝑛/2)+𝑂(𝑛), qije je rexe�e 𝑇 (𝑛) = 𝑂(𝑛 log 𝑛). Problem izraqunava�a 𝑃 (𝑥) (polinomastepena 𝑛 − 1) u 𝑛 taqaka sveli smo na izraqunava�e 𝑃0(𝑥

2) i 𝑃1(𝑥2)

(dva polinoma stepena 𝑛/2 − 1) u 𝑛/2 taqaka. To je regularna redukcija,izuzev jednog detaa: vrednosti 𝑥 u 𝑃 (𝑥) mogu se proizvono birati, alivrednosti 𝑥2 u izrazu (na primer) 𝑃0(𝑥

2) mogu biti samo pozitivne. Poxtosmo do redukcije doxli korix�e�em negativnih brojeva, ovo predstavaproblem. Izdvojimo iz (8.2) matricu koja odgovara izraqunava�u vrednosti𝑃0(𝑥

2):⎛⎜⎜⎝1 𝑥2

0 𝑥40 . . . 𝑥𝑛−2

0

1 𝑥21 𝑥4

1 . . . 𝑥𝑛−21

. . . . . . . . . . . . . . .1 𝑥2

𝑛/2−1 𝑥4𝑛/2−1 . . . 𝑥𝑛−2

𝑛/2−1

⎞⎟⎟⎠⎛⎜⎜⎝

𝑎0𝑎2. . .𝑎𝑛−2

⎞⎟⎟⎠ =

⎛⎜⎜⎝𝑃0(𝑥

20)

𝑃0(𝑥21)

. . .𝑃0(𝑥

2𝑛/2−1)

⎞⎟⎟⎠ .

Da bismo jox jednom izveli redukciju na isti naqin, morali bismo dastavimo npr. 𝑥2

𝑛/4 = −(𝑥0)2. Poxto su kvadrati realnih brojeva uvek

pozitivni, ovo je nemogu�e, bar ako se ograniqimo na realne brojeve.Potexko�a se prevazilazi prelaskom na kompleksne brojeve. Problem semo�e opet podeliti na dva dela stavaju�i 𝑥𝑗+𝑛/4 = 𝑖𝑥𝑗 , za 𝑗 = 0, 1, . . . , 𝑛/4−1 (𝑖 je ovde koren iz −1, kompleksan broj). Ovo razdvaja�e zadovoavaiste uslove kao i prethodno. Prema tome, problem veliqine 𝑛/2 mo�e serexiti svo�e�em na dva problema veliqine 𝑛/4, izvode�i 𝑂(𝑛) dopunskihoperacija.

Za slede�e razdvaja�e potreban nam je broj 𝑧 takav da je 𝑧8 = 1 i 𝑧𝑗 = 1za 0 < 𝑗 < 8, odnosno primitivni osmi koren iz jedinice; tada je 𝑧4 = −1i 𝑧2 = 𝑖. Opxtije, potreban nam je primitivni 𝑛-ti koren iz jedinice.Oznaqimo ga sa 𝜔 (zbog jednostavnosti se 𝑛 ne spomi�e eksplicitno; uokviru ovog odeka radi se uvek o jednom istom 𝑛). Primitivni 𝑛-tikoren iz jedinice 𝜔 zadovoava slede�e uslove:

𝜔𝑛 = 1, 𝜔𝑗 = 1 za 0 < 𝑗 < 𝑛. (8.4)

Za 𝑛 taqaka 𝑥0, 𝑥1, . . . , 𝑥𝑛−1 biramo brojeve 1, 𝜔, 𝜔2, . . . , 𝜔𝑛−1. Prema tome,

izraqunava se slede�i proizvod:⎛⎜⎜⎜⎜⎝1 1 1 . . . 11 𝜔 𝜔2 . . . 𝜔𝑛−1

1 𝜔2 𝜔2·2 . . . 𝜔2·(𝑛−1)

. . . . . . . . . . . . . . .1 𝜔𝑛−1 𝜔(𝑛−1)·2 . . . 𝜔(𝑛−1)·(𝑛−1)

⎞⎟⎟⎟⎟⎠⎛⎜⎜⎝

𝑎0𝑎1. . .𝑎𝑛−1

⎞⎟⎟⎠ =

⎛⎜⎜⎝𝑃 (1)𝑃 (𝜔). . .

𝑃 (𝜔𝑛−1)

⎞⎟⎟⎠ . (8.5)

Ovaj proizvod se zoveFurijeova transformacija vektora (𝑎0, 𝑎1, . . . , 𝑎𝑛−1).Zapazimo najpre da je ispu�en uslov

𝑥𝑛/2+𝑗 = 𝜔𝑛/2+𝑗 = 𝜔𝑛/2𝜔𝑗 = −𝑥𝑗 , 𝑗 = 0, 1, . . . , 𝑛/2− 1.

Page 125: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

125 8. Algebarski algoritmi

Prema tome, prva redukcija problema veliqine 𝑛 na dva ma�a je i daeispravna. Dae, dva potproblema proizaxla iz ove redukcije imaju po𝑛/2 taqaka 1, 𝜔2, 𝜔4, . . . , 𝜔𝑛−2, xto je upravo problem veliqine 𝑛/2, u komeumesto 𝜔 figurixe 𝜔2 | primitivni 𝑛/2-ti koren iz jedinice. Da je 𝜔2

primitivni 𝑛/2-ti koren iz jedinice neposredno sledi iz uslova (8.4).Prema tome, dae se mo�e nastaviti rekurzivno. Slo�enost algoritmazadovoava diferencnu jednaqinu 𝑇 (𝑛) = 2𝑇 (𝑛/2) +𝑂(𝑛), qije je rexe�e𝑂(𝑛 log 𝑛). Algoritam omogu�uje efikasno izraqunava�e Furijeove trans-formacije vektora koeficijenata polinoma, pa je dobio ime brza Furijeovatransformacija, odnosno FFT.

𝐹𝐹𝑇 (𝑛, 𝑎0, 𝑎1, . . . , 𝑎𝑛−1, 𝜔)ulaz: 𝑛 (prirodni broj), 𝑎0, 𝑎1, . . . , 𝑎𝑛−1 (niz elemenata tipa koji zavisi od primene)𝜔 (primitivni 𝑛-ti koren iz jedinice)izlaz: 𝑉 (niz izlaznih elemenata, sa indeksima od 0 do 𝑛− 1).{pretpostava se da je 𝑛 stepen dvojke}1 if 𝑛 = 1 then2 𝑉 [0]← 𝑎03 else4 𝑈 ← 𝐹𝐹𝑇 (𝑛/2, 𝑎0, 𝑎2, . . . , 𝑎𝑛−2, 𝜔

2);5 𝑊 ← 𝐹𝐹𝑇 (𝑛/2, 𝑎1, 𝑎3, . . . , 𝑎𝑛−1, 𝜔

2);6 for 𝑗 ← 0 to 𝑛/2− 1 do {prema (8.3) za 𝑥 = 𝜔𝑗}7 𝑉 [𝑗]← 𝑈 [𝑗] + 𝜔𝑗𝑊 [𝑗];8 𝑉 [𝑗 + 𝑛/2] := 𝑈 [𝑗]− 𝜔𝑗𝑊 [𝑗];9 return 𝑉

Primer 8.2. Demonstrira�emo izraqunava�e FFT na primeru polinomasa koeficijentima (0, 1, 2, 3, 4, 5, 6, 7). Da bismo izbegli zabunu, potprobleme�emo oznaqavati sa 𝑃𝑗0,𝑗1,...,𝑗𝑘(𝑥0, 𝑥1, . . . , 𝑥𝑘), gde 𝑗0, 𝑗1, . . . , 𝑗𝑘 oznaqavajukoeficijente polinoma, a 𝑥0, 𝑥1, . . . , 𝑥𝑘 taqke u kojima se izraqunavajuvrednosti polinoma. Zadatak je dakle rexiti problem 𝑃0,1,2,3,4,5,6,7(1, 𝜔, 𝜔

2, . . . , 𝜔7),i to na osnovu (8.3).

Prvi korak je svo�e�e 𝑃0,1,2,3,4,5,6,7(1, 𝜔, 𝜔2, . . . , 𝜔7) na 𝑃0,2,4,6(1, 𝜔

2, 𝜔4, 𝜔6)i 𝑃1,3,5,7(1, 𝜔

2, 𝜔4, 𝜔6). Nastavamo rekurzivno i svodimo 𝑃0,2,4,6(1, 𝜔2, 𝜔4, 𝜔6)

na 𝑃0,4(1, 𝜔4) i 𝑃2,6(1, 𝜔

4). 𝑃0,4(1, 𝜔4) se zatim svodi na 𝑃0(1) = 0, i 𝑃4(1) =

4. Kombinova�em ovih rezultata dobijamo

𝑃0,4(1) = 𝑃0(1) + 1 · 𝑃4(1) = 0 + 1 · 4 = 4,

𝑃0,4(𝜔4) = 𝑃0(𝜔

8) + 𝜔4𝑃4(𝜔8) = 0 + 𝜔4 · 4.

Poxto je 𝜔4 = −1, dobijamo 𝑃0,4(𝜔4) = −4, odnosno posle objedi�ava�a

𝑃0,4(1, 𝜔4) = (4,−4). Na isti naqin dobijamo 𝑃2,6(1, 𝜔

4) = (8,−4).Sada kombinova�em ova dva vektora dobijamo 𝑃0,2,4,6(1, 𝜔

2, 𝜔4, 𝜔6):

𝑃0,2,4,6(1) = 𝑃0,4(1) + 1 · 𝑃2,6(1) = 4 + 8 = 12,

𝑃0,2,4,6(𝜔2) = 𝑃0,4(𝜔

4) + 𝜔2𝑃2,6(𝜔4) = −4 + 𝜔2(−4),

𝑃0,2,4,6(𝜔4) = 𝑃0,4(𝜔

8) + 𝜔4𝑃2,6(𝜔8) = 𝑃0,4(1)− 1𝑃2,6(1) = 4− 8 = −4,

𝑃0,2,4,6(𝜔6) = 𝑃0,4(𝜔

12) + 𝜔6𝑃2,6(𝜔12) = 𝑃0,4(𝜔

4)− 𝜔2𝑃2,6(𝜔4) = −4− 𝜔2(−4),

Page 126: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

8.4. Brza Furijeova transformacija 126

odnosno

𝑃0,2,4,6(1, 𝜔2, 𝜔4, 𝜔6) = (12,−4(1 + 𝜔2),−4,−4(1− 𝜔2)).

Na sliqan naqin dobija se

𝑃1,3,5,7(1, 𝜔2, 𝜔4, 𝜔6) = (16,−4(1 + 𝜔2),−4,−4(1− 𝜔2)).

Preostaje jox izraqunava�e 8 vrednosti 𝑃0,1,2,3,4,5,6,7(1, 𝜔, 𝜔2, . . . , 𝜔7). Na

primer, 𝑃0,1,2,3,4,5,6,7(1) = 12 + 1 · 16 = 28, i sliqno 𝑃0,1,2,3,4,5,6,7(𝜔4) =

12− 1 · 16 = −4; 𝑃0,1,2,3,4,5,6,7(𝜔) = (−4(1+ 𝜔2)) + 𝜔 · (−4(1+ 𝜔2)), i sliqno𝑃0,1,2,3,4,5,6,7(𝜔

5) = (−4(1 + 𝜔2))− 𝜔 · (−4(1 + 𝜔2)), itd. Rezultat je

𝑃0,1,2,3,4,5,6,7(1, 𝜔, 𝜔2, . . . , 𝜔7) =

4(7,−1− 𝜔 − 𝜔2 − 𝜔3,−1− 𝜔2,−1 + 𝜔2 − 𝜔3 + 𝜔5,

−1,−1 + 𝜔 − 𝜔2 + 𝜔3,−1 + 𝜔2,−1 + 𝜔2 + 𝜔3 − 𝜔5).

8.4.2 Inverzna Furijeova transformacija

Brza Furijeova transformacija rexava samo pola problema: vrednostizadatih polinoma 𝑝(𝑥) i 𝑞(𝑥) mogu se efikasno izraqunati u taqkama1, 𝜔, . . . , 𝜔𝑛−1, izmno�iti parovi dobijenih vrednosti, i tako na�i vrednostipolinoma 𝑝(𝑥)𝑞(𝑥) u navedenim taqkama. Ostaje problem interpolacije,odnosno odre�iva�a koeficijenata proizvoda polinoma na osnovu vrednostiu taqkama. Na sre�u, ispostava se da je problem interpolacije vrlosliqan problemu izraqunava�a vrednosti, i da ga rexava praktiqno istialgoritam.

Vratimo se matriqnoj notaciji. Neka je 𝐴𝑇 transponovana matricamatrice𝐴. Oznaqimo vektor koeficijenata polinoma sa a = (𝑎0, 𝑎1, . . . , 𝑎𝑛−1)

𝑇 ,a vektor vrednosti polinoma sa v = (𝑃 (1), 𝑃 (𝜔), . . . , 𝑃 (𝜔𝑛−1))𝑇 . Neka je𝑉 (𝜔) matrica iz jednakosti (8.5). Ako su zadati koeficijenti polinomaa, �egove vrednosti v u 𝑛 taqaka 1, 𝜔, . . . , 𝜔𝑛−1 dobijaju se prema (8.5) izra-qunava�em proizvoda v = 𝑉 (𝜔)a. S druge strane, ako su zadate vrednostipolinoma v = (𝑃 (1), 𝑃 (𝜔), . . . , 𝑃 (𝜔𝑛−1))𝑇 = (𝑣0, 𝑣1, . . . , 𝑣𝑛−1)

𝑇 , a potrebnoje izraqunati �egove koeficijente, jednakost (8.5), odnosno 𝑉 (𝜔)a = vje sistem linearnih jednaqina po a. Rexava�e sistema jednaqina svodise na raquna�e inverzne matrice 𝑉 (𝜔)−1 algoritmom slo�enosti 𝑂(𝑛3).Neposredno se proverava da je

𝑉 (𝜔)𝑉 (𝜔−1) = 𝑛𝐸,

gde je sa 𝐸 oznaqena jediniqna matrica reda 𝑛. Zaista, ako je 𝑟 = 𝑠, ondaje proizvod (𝑟+1)-e vrste matrice 𝑉 (𝜔) i (𝑠+1)-e kolone matrice 𝑉 (𝜔−1)jednak

𝑛−1∑𝑘=0

𝜔𝑟𝑘𝜔−𝑠𝑘 =

𝑛−1∑𝑘=0

𝜔𝑘(𝑟−𝑠) =1− 𝜔𝑛(𝑟−𝑠)

1− 𝜔𝑟−𝑠= 0.

Ako je pak 𝑟 = 𝑠, onda je taj proizvod∑𝑛−1

𝑘=0 𝜔𝑟𝑘𝜔−𝑟𝑘 = 𝑛. Time je dokazana

slede�a teorema.

Teorema 8.1. Inverzna matrica matrice 𝑉 (𝜔) Furijeove transformacijeje

𝑉 (𝜔)−1 =1

𝑛𝑉 (𝜔−1).

Page 127: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

127 8. Algebarski algoritmi

Rexava�e sistema jednaqina v = 𝑉 (𝜔)a svodi se dakle na izraqunava�eproizvoda

a =1

𝑛𝑉 (𝜔−1)v.

Posao se dae pojednostavuje zahvauju�i slede�oj teoremi.

Teorema 8.2. Ako je 𝜔 primitivni 𝑛-ti koren iz jedinice, onda je 𝜔−1

tako�e primitivni 𝑛-ti koren iz jedinice.

Prema tome, proizvod 1𝑛𝑉 (𝜔−1)v mo�e se izraqunati primenom brze

Furijeove transformacije, zame�uju�i 𝜔 sa 𝜔−1. Ova transformacijazove se inverzna Furijeova transformacija.

Slo�enost. Uzimaju�i sve u obzir, proizvod dva polinoma mo�e seizraqunati izvode�i 𝑂(𝑛 log 𝑛) operacija (sa kompleksnim brojevima).

Page 128: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo
Page 129: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Glava 9

Redukcije

9.1 Uvod

Zapoqe�emo ovo poglave jednom anegdotom. Matematiqaru je objax�enokako mo�e da skuva qaj: treba da uzme qajnik, napuni ga vodom iz slavine,stavi qajnik na xted�ak, saqeka da voda provri, i na kraju stavi qaj uvodu. A onda su ga pitali: kako mo�e da skuva qaj ako ima qajnik punvrele vode? Jednostavno, ka�e on; prosu�e vodu i tako svesti problem nave� rexen.

U ovom poglavu pozabavi�emo se idejom redukcije, odnosno svo�e�ajednog problema na drugi. Pokaza�emo da redukcije, iako ponekad nera-cionalne, mogu biti i vrlo korisne. Na primer, ako ubacite u sanduqepoxte na Novom Beogradu pismo za qoveka koji stanuje odmah pored tepoxte, pismo �e, bez obzira na blizinu odredixta, pre�i put do Glavnepoxte u Beogradu, pa nazad do poxte na Novom Beogradu, i tek onda �ega poxtar odneti vaxem poznaniku. Qesti su sluqajevi kad nije lakoprepoznati specijalni sluqaj i za �ega skrojiti efikasnije specijalnorexe�e. U praksi je qesto efikasnije sve specijalne sluqajeve tretiratina isti naqin. Na takvu situaciju qesto se nailazi i pri konstrukcijialgoritama. Kad nai�emo na problem koji se mo�e shvatiti kao specijalnisluqaj drugog problema, koristimo poznato rexe�e. To rexe�e ponekadmo�e biti previxe opxte ili previxe skupo. Me�utim, u mnogim slu-qajevima je korix�e�e opxteg rexe�a najlakxi, najbr�i i najelegan-tniji naqin da se problem rexi. Ovaj princip se qesto koristi. Za nekeraqunarske probleme, na primer rad sa nekom bazom podataka, obiqno nijeneophodno napisati program koji rexava samo taj problem. Opxte rexe�ene mora biti najefikasnije, ali je mnogo jednostavnije iskoristiti upravo�ega.

Pretpostavimo da je dat problem 𝑃 , koji izgleda komplikovano, aliliqi na poznati problem 𝑄. Mo�e se nezavisno (ispoqetka) rexavatiproblem 𝑃 , ili se mo�e iskoristiti neki od metoda za rexava�e 𝑄 iprimeniti ga na 𝑃 . Postoji, me�utim, i tre�a mogu�nost. Mo�e se pokuxatisa nala�e�em redukcije, odnosno svo�e�a jednog problema na drugi.Neformalno, redukcija je rexava�e jednog problema korix�e�em "crnekutije" koja rexava drugi problem. Redukcijom se mo�e posti�i jedan

129

Page 130: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

9.2. Nala�e�e trouglova u neusmerenom grafu 130

od dva cia, zavisno od smera. Rexe�e 𝑃 , koje koristi crnu kutiju zarexava�e 𝑄, mo�e se transformisati u algoritam za rexava�e 𝑃 , ako sezna algoritam za rexava�e 𝑄. S druge strane, ako se za 𝑃 zna da je te�akproblem, i zna se do�a granica slo�enosti za algoritme koji rexavaju𝑃 , onda je to istovremeno i do�a granica slo�enosti za problem 𝑄. Uprvom sluqaju je redukcija iskorix�ena za dobija�e informacije o 𝑃 , au drugom | o 𝑄.

U ovom poglavu vide�emo jedan primer redukcije. Nala�e�e redukcijejednog problema na drugi mo�e biti korisno qak i ako ne daje novu do�uili gor�u granicu slo�enosti problema. Redukcija omogu�uje boe razu-meva�e oba problema. Ona se mo�e iskoristiti za nala�e�e novih teh-nika za napad na problem ili �egove varijante.

I ranije smo ve� sretali sa primerima redukcija | na primer, redukcijaproblema nala�e�a tranzitivnog zatvore�a na problem nala�e�a svihnajkra�ih puteva (odeak 7.10).

9.2 Nala�e�e trouglova u neusmerenom grafu

Postoji tesna veza izme�u grafova i matrica. Graf 𝐺 = (𝑉,𝐸) sa 𝑛qvorova 𝑣1, 𝑣2, . . . 𝑣𝑛, mo�e se predstaviti svojom matricom povezanosti| kvadratnom matricom 𝐴 = (𝑎𝑖𝑗) reda 𝑛, takvom da je 𝑎𝑖𝑗 = 1 ako(𝑣𝑖, 𝑣𝑗) ∈ 𝐸, odnosno 𝑎𝑖𝑗 = 0 u ostalim sluqajevima. Ako je 𝐺 neusmerenigraf, matrica 𝐴 je simetriqna. Ako je 𝐺 te�inski graf, onda se tako�emo�e predstaviti kvadratnom matricom 𝐴 = (𝑎𝑖𝑗) reda 𝑛, pri qemu jeelemenat 𝑎𝑖𝑗 jednak te�ini grane (𝑣𝑖, 𝑣𝑗), odnosno ∞, ako te grane nemau grafu. Postoje i drugi naqini da se matrica pridru�i grafu. Tako segrafu 𝐺 = (𝑉,𝐸) sa 𝑛 qvorova i 𝑚 grana mo�e pridru�iti 𝑛×𝑚 matricau kojoj je (𝑖, 𝑗) elemenat jednak 1 ako i samo ako je 𝑖-ti qvor susedan sa 𝑗-tomgranom.

Veze grafova i matrica ne zadr�avaju se samo na reprezentaciji. Mnogeosobine grafova mogu se boe razumeti analizom odgovaraju�ih matrica.Sliqno, mnoge osobine matrica otkrivaju se posmatra�em odgovaraju�ihgrafova. Nije iznena�uju�e da se mnogi algoritamski problemi mogu rexitikorix�e�em ove analogije. To �emo ilustrovati jednim primerom.

Problem. Neka je 𝐺 = (𝑉,𝐸) neusmereni povezani graf sa 𝑛 qvorova i 𝑚grana. Potrebno je ustanoviti da li u 𝐺 postoji trougao, odnosno takvatri qvora da izme�u svaka dva od �ih postoji grana.

Direktno rexe�e obuhvata proveru svih troqlanih podskupova skupaqvorova. Podskupova ima

(𝑛3

)= 𝑛(𝑛 − 1)(𝑛 − 2)/6, a poxto se svaki od

�ih mo�e proveriti za konstantno vreme, vremenska slo�enost ovakvogalgoritma je𝑂(𝑛3). Mo�e se konstruisati i algoritam slo�enosti𝑂(𝑚𝑛),gde je 𝑚 broj grana u grafu (zasnovan na proveri svih parova (𝑔𝑟𝑎𝑛𝑎, 𝑐𝑣𝑜𝑟)| da li grade trougao), koji je boi ako graf nije gust. Mo�e li seovo dae poboxati? Prikaza�emo sada algoritam koji je asimptotskibr�i, i suxtinski je drugaqiji. Svrha primera je da ilustruje vezu izme�ugrafovskih i matriqnih algoritama.

Neka je 𝐴 matrica povezanosti grafa 𝐺. Poxto je graf 𝐺 neusmeren,matrica 𝐴 je simetriqna. Razmotrimo vezu elemenata matrice 𝐵 = 𝐴2 =

Page 131: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

131 9. Redukcije

𝐴𝐴 (proizvod je obiqan proizvod matrica) i grafa 𝐺. Prema definicijiproizvoda matrica je

𝐵[𝑖, 𝑗] =

𝑛∑𝑘=1

𝐴[𝑖, 𝑘] ·𝐴[𝑘, 𝑗].

Iz ove jednakosti sledi da je uslov 𝐵[𝑖, 𝑗] > 0 ispu�en akko postoji indeks𝑘, takav da su oba elementa 𝐴[𝑖, 𝑘] i 𝐴[𝑘, 𝑗] jedinice. Drugim reqima,𝐵[𝑖, 𝑗] > 0 je ispu�eno ako i samo ako postoji qvor 𝑣𝑘, takav da je 𝑘 = 𝑖,𝑘 = 𝑗 i da su oba qvora 𝑣𝑖 i 𝑣𝑗 povezana sa 𝑣𝑘 (pretpostavamo da grafnema peti, odnosno 𝐴[𝑖, 𝑖] = 0 za 𝑖 = 1, 2, . . . , 𝑛). Prema tome, u grafupostoji trougao koji sadr�i temena 𝑣𝑖 i 𝑣𝑗 akko je 𝑣𝑖 povezan sa 𝑣𝑗 i𝐵[𝑖, 𝑗] > 0. Konaqno, u 𝐺 postoji trougao akko postoje takvi indeksi 𝑖, 𝑗da je 𝐴[𝑖, 𝑗] = 1 i 𝐵[𝑖, 𝑗] > 0.

Navedena analiza sugerixe algoritam. Treba izraqunati matricu 𝐵 =𝐴2 i proveriti ispu�enost uslova 𝐴[𝑖, 𝑗] = 1, 𝐵[𝑖, 𝑗] > 0 za svih 𝑛2

parova (𝑖, 𝑗). Slo�enost provere ovog uslova je 𝑂(𝑛2), pa preovla�uju�ideo vremenske slo�enosti algoritma potiqe od mno�e�a matrica. Timeje problem nala�e�a trougla u grafu sveden na problem kvadrira�amatrica. Za mno�e�e matrica mo�e se iskoristiti Xtrasenov algoritami tako dobiti algoritam za nala�e�e trougla u grafu slo�enosti𝑂(𝑛2.81).Preciznije, opisana redukcija pokazuje da je slo�enost ovog grafovskogproblema 𝑂(𝑀(𝑛)), gde je𝑀(𝑛) slo�enost mno�e�a Bulovih matrica reda𝑛.

Page 132: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo
Page 133: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Glava 10

NP-kompletnost

10.1 Uvod

U prethodnim poglavima razmatrane su tehnike za rexava�e algoritam-skih problema i �ihove primene na konkretne probleme. Bilo bi lepo kadbi svi problemi imali elegantne efikasne algoritme, do kojih se dolazikorix�e�em malog skupa tehnika. Me�utim, postoji mnogo problema kojise ne pokoravaju do sada razmotrenim tehnikama. Mogu�e je da prilikom�ihovog rexava�a nije ulo�eno dovono napora, ali se sa dosta razlogamo�e pretpostaviti da postoje problemi koji nemaju efikasno opxterexe�e. U ovom poglavu opisa�emo tehnike za prepoznava�e nekih takvihproblema.

Vremenska slo�enost ve�ine do sada razmatranih algoritama ograni-qena je nekim polinomom od veliqine ulaza. Za takve algoritme ka�emoda su efikasni algoritmi, a za odgovaraju�e probleme da su rexivi.Drugim reqima, za algoritam ka�emo da je efikasan ako je �egova vremenskaslo�enost𝑂(𝑃 (𝑛)), gde je 𝑃 (𝑛) polinom od veliqine problema 𝑛. Podsetimose da je veliqina ulaza definisana kao broj bitova potrebnih za predstav-a�e ulaza. Ovo nije strogo formalna definicija: mogu�e je iste podatkepredstaviti bitovima na vixe naqina; me�utim, du�ine svih dovonoefikasnih predstava�a istih podataka ne mogu se znaqajno razlikovati.Klasu svih problema koji se mogu rexiti efikasnim algoritmom ozna-qava�emo sa P (polinomijalno vreme). Ova definicija mo�e da izgledaqudno na prvi pogled. Tako, na primer, algoritam slo�enosti 𝑂(𝑛10) seni po kojim merilima ne mo�e smatrati efikasnim; sliqno, algoritam savremenom izvrxava�a 107𝑛 texko je smatrati efikasnim, iako je linearneslo�enosti. Ipak, ova definicija ima smisla iz dva razloga. Prvo, onaomogu�uje razvoj teorije kojom �emo se sada pozabaviti; drugo, i va�nije,ovu definiciju je lako primeniti. Ispostava se da ogromna ve�inarexivih problema ima praktiqno upotrebiva rexe�a. Drugim reqima,vremenska slo�enost polinomijalnih algoritama na koje se u praksi nailazije najqex�e polinom malog stepena, retko iznad kvadratnog. Obrnuto jeobiqno tako�e taqno: algoritmi sa vremenskom slo�enox�u ve�om od pro-izvonog polinoma obiqno se ne mogu praktiqno izvrxavati za velikeulaze.

Postoji dosta problema za koje se ne zna ni jedan algoritam polinomijalne

133

Page 134: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

10.2. Redukcije polinomijalne vremenske slo�enosti 134

slo�enosti. Neki od tih problema �e jednom mo�da biti rexeni efikasnimalgoritmima. Me�utim, ima razloga za verova�e da se mnogi problemi nemogu rexiti efikasno. Voleli bismo da budemo u sta�u da prepoznamotakve probleme, da ne bismo gubili vreme na tra�e�e nepostoje�eg al-goritma. U ovom poglavu razmotri�emo kako pristupati problemimaza koje se ne zna da li su u klasi P. Specijalno, razmotri�emo jednupotklasu takvih problema, klasu takozvanih NP-kompletnih problema.Ovi problemi mogu se grupisati u jednu klasu jer su svi me�usobno strogoekvivalentni | efikasan algoritam za neki NP-kompletan problem po-stoji ako i samo ako za svaki NP-kompletan problem postoji efikasanalgoritam. Xiroko je rasprostra�eno verova�e da ne postoji efikasanalgoritam za bilo koji NP-kompletan problem, ali se ne zna dokaz ovakvogtvr�e�a. Qak i kad bi postojali efikasni algoritmi za rexava�e NP-kompletnih problema, oni bi sigurno bili vrlo komplikovani, jer setakvim problemima mnogo istra�ivaqa bavilo tokom dugog niza godina.Do ovog trenutka se za stotine (odnosno hiade, u zavisnosti od naqinabroja�a tih problema) problema zna da su NP-kompletni, xto ovu oblastqini vrlo znaqajnom.

Ovo poglave sastoji se iz dva dela. U prvom se definixe klasaNP-kompletnih problema i navode primeri dokaza pripadnosti nekihproblema toj klasi. Zatim se razmatra nekoliko tehnika za pribli�norexava�e NP-kompletnih problema algoritmima polinomijalne slo�e-nosti.

10.2 Redukcije polinomijalne vremenske slo�enosti

U ovom odeku ograniqi�emo se na probleme odluqiva�a, tj. razmatra-�emo samo one probleme na koje se posle izvrxava�a odre�enog algoritmamo�e odgovoriti sa "da" ili "ne". Ovo ograniqe�e uprox�ava razmatra�a.Ve�i deo problema lako se mo�e prevesti u probleme odluqiva�a. Naprimer, umesto da tra�imo maksimalnu kliku (potpuno povezani podrafgrafa, tj. podskup qvorova grafa takav da izme�u svaka dva qvora u podskupupostoji grana), mo�emo da postavimo pita�e da li za zadato 𝑘 postojiklika veliqine bar 𝑘. Ako umemo da reximo problem odluqiva�a, obiqnomo�emo da reximo i polazni problem | binarnom pretragom, na primer.

Problem odluqiva�a mo�e se posmatrati kao problem prepoznava�ajezika. Neka je 𝑈 skup mogu�ih ulaza za problem odluqiva�a. Neka je𝐿 ⊆ 𝑈 skup svih ulaza za koje je rexe�e problema "da". Za 𝐿 se ka�eda je jezik koji odgovara problemu, pa pojmovi problem i jezik mogu dase koriste ravnopravno. Problem odluqiva�a je ustanoviti da li zadatiulaz pripada jeziku 𝐿. Sada �emo uvesti pojam redukcije polinomijalneslo�enosti izme�u jezika, kao osnovni alat u ovom poglavu.

Definicija 1. Neka su 𝐿1 i 𝐿2 dva jezika, podskupa redom skupova ulaza𝑈1 i 𝑈2. Ka�emo da je 𝐿1 polinomijalno svodiv na 𝐿2, ako postojialgoritam polinomijalne vremenske slo�enosti, koji dati ulaz 𝑢1 ∈ 𝑈1

prevodi u ulaz 𝑢2 ∈ 𝑈2, tako da 𝑢1 ∈ 𝐿1 ako i samo ako 𝑢2 ∈ 𝐿2. Algoritamje polinomijalan u odnosu na veliqinu ulaza 𝑢1. Pretpostavamo da jepojam veliqine dobro definisan u prostorima ulaza 𝑈1 i 𝑈2, tako da je,na primer, veliqina 𝑢2 ograniqena polinomom od veliqine 𝑢1.

Page 135: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

135 10. NP-kompletnost

Algoritam iz definicije svodi jedan problem na drugi. Ako znamoalgoritam za prepoznava�e 𝐿2, onda ga mo�emo superponirati sa algo-ritmom redukcije i tako dobiti algoritam za rexava�e 𝐿1. Oznaqimoalgoritam redukcije sa 𝐴𝑅, a algoritam za prepoznava�e 𝐿2 sa 𝐴𝐿2.Proizvoni ulaz 𝑢1 ∈ 𝑈1 mo�e se primenom 𝐴𝑅 transformisati u ulaz𝑢2 ∈ 𝑈2, i primenom 𝐴𝐿2 ustanoviti da li 𝑢2 ∈ 𝐿2, a time i da li 𝑢1 ∈ 𝐿1.Specijalno, ako je 𝐿2 ∈ 𝑃 , zakuqujemo da je i 𝐿1 ∈ 𝑃 .

Teorema 10.1. Ako je jezik 𝐿1 polinomijalno svodiv na jezik 𝐿2, i 𝐿2 ∈𝑃 , onda je i 𝐿1 ∈ 𝑃 .

Relacija polinomijalne svodivosti nije simetriqna: polinomijalnasvodivost 𝐿1 na 𝐿2 ne povlaqi polinomijalnu svodivost 𝐿2 na 𝐿1. Ovaasimetrija potiqe od qi�enice da definicija svodivosti zahteva dase proizvoan ulaz za 𝐿1 mo�e transformisati u ekvivalentan ulaz za𝐿2, ali ne i obrnuto. Mogu�e je da ulazi za 𝐿2, dobijeni na ovaj naqin,predstavaju samo mali deo svih mogu�ih ulaza za 𝐿2. Prema tome, ako je𝐿1 polinomijalno svodiv na 𝐿2, onda mo�emo smatrati da je problem 𝐿2

te�i.

Dva jezika 𝐿1 i 𝐿2 su polinomijalno ekvivalentni, ili jednostavnoekvivalentni, ako je svaki od �ih polinomijalno svodiv na drugi. Spe-cijalno, svi netrivijalni problemi iz klase P su ekvivalentni. Doka�imoovo tv�e�e. Neka su 𝐵 i 𝐶 dva netrivijalna problema iz P (tj. za obapostoje ulazi sa odgovorom "da" i ulazi sa odgovorom "ne"). Neka su 𝑢0

i 𝑢1 dva ulaza za problem 𝐶, takva da je za 𝑢0 rexe�e "ne", a za 𝑢1 "da"(odnosno 𝑢0 /∈ 𝐿𝐶 i 𝑢1 ∈ 𝐿𝐶). Za svo�e�e problema 𝐵 na problem 𝐶 mo�ese iskoristiti slede�i polinomijalni algoritam: ulazu 𝑣 za problem 𝐵pridru�uje se 𝜑(𝑣) = 𝑢0 ako 𝑣 /∈ 𝐿𝐵 , odnosno 𝜑(𝑣) = 𝑢1 ako 𝑣 ∈ 𝐿𝐵 . Tadaza proizvoan ulaz 𝑣 za problem 𝐵 va�i 𝑣 ∈ 𝐿𝐵 akko 𝜑(𝑣) ∈ 𝐿𝐶 .

Relacija "polinomijalne svodivosti" je tranzitivna, kao xto pokazujeslede�a teorema.

Teorema 10.2. Ako je 𝐿1 polinomijalno svodiv na 𝐿2 i 𝐿2 je polinomijalnosvodiv na 𝐿3, onda je 𝐿1 polinomijalno svodiv na 𝐿3.

Dokaz. Neka su jezici 𝐿1, 𝐿2 i 𝐿3 podskupovi skupova mogu�ih ulaza redom𝑈1, 𝑈2 i 𝑈3. Superponira�em algoritama redukcije 𝐿1 na 𝐿2, odnosno 𝐿2

na 𝐿3 dobija se algoritam redukcije 𝐿1 na 𝐿3. Proizvoan ulaz 𝑢1 ∈ 𝑈1

konvertuje se najpre u ulaz 𝑢2 ∈ 𝑈2, koji se zatim konvertuje u ulaz𝑢3 ∈ 𝑈3. Poxto su redukcije polinomijalne slo�enosti, a kompozicija dvepolinomijalne funkcije je polinomijalna funkcija, rezultuju�i algoritamredukcije je tako�e polinomijalne slo�enosti (to je jedan od razlogazaxto su za meru slo�enosti rexivih problema izabrani polinomi).

Suxtina metoda koji �emo prime�ivati u ovom poglavu je da ako seza neki problem ne mo�e na�i efikasan algoritam, onda pokuxavamo daustanovimo da li je on ekvivalentan nekom od problema za koje znamo da sutexki. Klasa NP-kompletnih problema sadr�i stotine takvih me�usobnoekvivalentnih problema.

Page 136: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

10.3. Nedeterminizam i Kukova teorema 136

10.3 Nedeterminizam i Kukova teorema

Sada �emo definisati drugu va�nu klasu jezika (odnosno problema odlu-qiva�a) | klasuNP. Razmotrimo kao primer problem trgovaqkog putnika.

Problem. Zadat je te�inski graf 𝐺 = (𝑉,𝐸) sa |𝑉 | = 𝑛 qvorova (takoda je za proizvone qvorove { gradove 𝑣𝑖, 𝑣𝑗 ∈ 𝑉 , te�ina grane (𝑣𝑖, 𝑣𝑗) ∈ 𝐸jednaka 𝑑(𝑣𝑖, 𝑣𝑗)) i broj 𝐵 ∈ Z+. Ustanoviti da li u 𝐺 postoji Hamiltonovciklus sa zbirom te�ina grana ma�im ili jednakim od 𝐵. Drugim reqima,postoji li takav niz qvorova (𝑣𝜋(1), 𝑣𝜋(2), . . . , 𝑣𝜋(𝑛)) da je

𝑛−1∑𝑖=1

𝑑(𝑣𝜋(𝑖), 𝑣𝜋(𝑖+1)) + 𝑑(𝑣𝜋(𝑛), 𝑣𝜋(1)) ≤ 𝐵?

Polinomijalni algoritam za rexava�e ovog problema nije poznat. Pret-postavimo, me�utim, da je za neki konkretan ulaz za ovaj problem dobijenodgovor "da". Ako u to posum�amo, mo�emo zahtevati "dokaz" tog tvr�e�a| niz qvorova koji ima tra�enu osobinu. Kad imamo ovakav niz qvorova,lako mo�emo da proverimo da li je to Hamiltonov ciklus, da izraqunamo�egovu du�inu i uporedimo je sa zadatom granicom 𝐵. Pored toga, oqi-gledno je vremenska slo�enost ovakvog algoritma provere polinomijalnau odnosu na veliqinu ulaza.

Upravo pojam polinomijalne proverivosti karakterixe klasu NP.Primetimo da proverivost za polinomijalno vreme ne povlaqi i mogu�-nost rexava�a za polinomijalno vreme. Utvr�uju�i da se za polinomijalnovreme mo�e proveriti odgovor "da" za problem trgovaqkog putnika, mi neuzimamo u obzir vreme koje nam mo�e biti potrebno za pronala�e�e jednogod mogu�ih Hamiltonovih ciklusa, qiji broj raste eksponencijalno sabrojem qvorova grafa. Mi samo tvrdimo da se za svaki zadati niz qvorovai za konkretan ulaz 𝑢, za polinomijalno vreme mo�e proveriti da li tajniz "dokazuje" da je za ulaz 𝑢 odgovor "da".

Klasa NP se na drugi naqin neformalno mo�e definisati pomo�upojma nedeterministiqkog algoritma. Takav algoritam sastoji se oddve razliqite faze: faze poga�a�a i faze provere. Za zadati ulaz 𝑢, uprvoj fazi se izvodi prosto "poga�a�e" neke strukture 𝑆. Zatim se 𝑢i 𝑆 zajedno predaju kao ulaz fazi provere, koja se izvodi na obiqan(deterministiqki) naqin, pa se zavrxava odgovorom "da" ili "ne", ilise izvrxava beskonaqno dugo. Nedeterministiqki algoritam "rexava"problem odluqiva�a Π, ako su za proizvoni ulaz 𝑢 ∈ 𝑈Π za ovaj problemispu�ena slede�a dva uslova:

1. Ako 𝑢 ∈ 𝐿Π, onda postoji takva struktura 𝑆, qije bi poga�a�e zaulaz 𝑢 dovelo do toga da se faza provere sa ulazom (𝑢, 𝑆) zavrxiodgovorom "da".

2. Ako 𝑢 /∈ 𝐿Π, onda ne postoji takva struktura 𝑆, qije bi poga�a�e zaulaz 𝑢 obezbedilo zavrxava�e faze provere sa ulazom (𝑢, 𝑆) odgovorom"da".

Na primer, nedeterministiqki algoritam za rexava�e problema tr-govaqkog putnika mogao bi se konstruisati koriste�i kao fazu poga�a�a

Page 137: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

137 10. NP-kompletnost

izbor proizvonog niza gradova (qvorova), a kao fazu provere | gorepomenuti algoritam "provere dokaza" za problem trgovaqkog putnika.Oqigledno je da za proizvoan konkretan ulaz 𝑢 postoji takvo poga�a�e𝑆, da se kao rezultat rada faze provere sa ulazom (𝑢, 𝑆) dobija "da", ondai samo onda, ako za ulaz 𝑢 postoji Hamiltonov ciklus tra�ene du�ine.

Ka�e se da nedeterministiqki algoritam koji rexava problem odluqi-va�a Π radi za "polinomijalno vreme", ako postoji polinom 𝑝 takav da zasvaki ulaz 𝑢 ∈ 𝑈Π postoji takvo poga�a�e 𝑆, da se faza provere sa ulazom(𝑢, 𝑆) zavrxava sa odgovorom "da" za vreme 𝑝(|𝑢|). Iz toga sledi da jeveliqina strukture 𝑆 obavezno ograniqena polinomom od veliqine ulaza,jer se na proveru poga�a�a 𝑆 mo�e utroxiti najvixe polinomijalnovreme.

Klasa NP, definisana neformalno, | to je klasa svih problema odlu-qiva�a koji pri razumnom kodira�u mogu biti rexeni nedeterministiqkim(N { nondeterministic) algoritmom za polinomijalno (P { polynomial) vreme.Na primer, problem trgovaqkog putnika pripada klasi NP.

U sliqnim neformalnim definicijama termin "rexava" treba opreznokoristiti. Treba da bude jasno da je osnovni smisao "polinomijalnognedeterministiqkog algoritma" u tome da objasni pojam "proverivostiza polinomijalno vreme", a ne u tome da bude realni metod rexava�aproblema odluqiva�a. Za svaki konkretan ulaz takav algoritam ima nejedno, nego nekoliko mogu�ih izvrxava�a | po jedno za svako mogu�epoga�a�e.

Nedeterministiqki algoritmi su vrlo mo�ni, ali �ihova snaga nijeneograniqena. Postoje problemi koji se ne mogu efikasno rexiti nede-terministiqkim algoritmom.

Na primer, posmatrajmo slede�i problem: da li je veliqina maksimalneklike u zadatom grafu jednaka taqno 𝑘? Nedeterministiqkim algoritmomlako se mo�e prona�i klika veliqine 𝑘, ako ona postoji, ali se ne mo�elako ustanoviti (qak ni nedeterministiqki) da ne postoji ve�a klika.

Izgleda razumno smatrati da su nedeterministiqki algoritmi mo�nijiod deterministiqkih, ali da li je to taqno? Jedan naqin da se to doka�ebio bi da se prona�e neki problem koji je u klasi NP a koji nije u P. Todo sada nikome nije poxlo za rukom. U protivnom, da bi se dokazalo dasu ove dve klase jednake (odnosno P=NP), trebalo bi pokazati da svakiproblem iz klase NP mo�e da bude rexen deterministiqkim algoritmompolinomijalne vremenske slo�enosti. Ni ovakvo tvr�e�e niko nije uspeoda doka�e (i malo je onih koji veruju u �egovu taqnost). Problem utvr�iva�aodnosa izme�u P i NP poznat je kao problem P=NP.

Sada �emo definisati dve klase, koje ne samo da sadr�e brojne va�neprobleme za koje se ne zna da li su u P, nego sadr�e najte�e probleme uNP.

Definicija 2. Problem 𝑋 je NP-te�ak problem ako je svaki problemiz klase NP polinomijalno svodiv na 𝑋.

Definicija 3. Problem 𝑋 je NP-kompletan problem ako (1) pripadaklasi NP, i (2) 𝑋 je NP-te�ak.

Posledice definicije klase NP-texkih problema je da, ako se za bilokoji NP-te�ak problem doka�e da pripada klasi P, onda je P=NP.

Page 138: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

10.3. Nedeterminizam i Kukova teorema 138

Kuk je 1971. godine dokazao da postoje NP-kompletni problemi. Speci-jalno, naveo je primer jednog takvog problema, koji �emo uskoro prikazati.Kada se zna jedan NP-kompletan problem, dokazi da su drugi problemiNP-kompletni postaju jednostavniji. Da se za novi problem 𝑋 doka�eda je NP-te�ak, dovono je dokazati da je neki NP-kompletan problempolinomijalno svodiv na 𝑋. To sledi iz slede�e leme.

Lema 10.1. Problem 𝑋 je NP-kompletan ako (1) 𝑋 pripada klasi NP, i(2') postoji NP-kompletan problem 𝑌 koji je polinomijalno svodiv na𝑋.

Dokaz. Problem 𝑌 je prema uslovu (2) NP-te�ak, pa je svaki problemu klasi NP polinomijalno svodiv na 𝑌 . Poxto je 𝑌 polinomijalnosvodiv na𝑋, a polinomijalna svodivost je tranzitivna relacija, svakiproblem u klasi NP je polinomijalno svodiv i na problem 𝑋.

Mnogo je lakxe dokazati da su dva problema polinomijalno svodiva,nego direktno dokazati da je ispu�en uslov (2). Zbog toga je Kukov rezultatkamen temeac cele teorije. Dae, sa pojavom novih problema za koje sezna da su NP-kompletni, raste broj mogu�nosti za dokaziva�e uslova (2').Ubrzo poxto je Kukov rezultat postao poznat, Karp (R. M. Karp) je za 24va�na problema pokazao da su NP-kompletni. Od tog vremena je za stotineproblema (mo�da hiade, zavisno od naqina broja�a varijacija istogproblema) dokazano da su NP-kompletni. U slede�em odeku prikaza�emopet primeraNP-kompletnih problema, sa dokazima �ihoveNP-kompletnosti.Navex�emo tako�e (bez dokaza) vixe NP-kompletnih problema. Najte�ideo dokaza je obiqno (ne uvek) dokaz ispu�enosti uslova (2').

Izlo�i�emo sada problem za koji je Kuk dokazao da je NP-kompletan.Problem je poznat kao problem zadovoivosti (SAT, skra�enica odsatisfiability). Neka je 𝑆 Bulov izraz u konjuktivnoj normalnoj formi(KNF). Drugim reqima, 𝑆 je konjunkcija vixe klauza (disjunkcija grupaliterala | simbola promenivih ili �ihovih negacija). Kao primermo�e da poslu�i izraz 𝑆 = (𝑥 + 𝑦 + 𝑧) · (�� + 𝑦 + 𝑧) · (�� + 𝑦 + 𝑧), gdesabira�e, odnosno mno�e�e odgovaraju disjunkciji, odnosno konjunkciji(ili, odnosno i), a svaka promeniva ima vrednost 0 (netaqno) ili 1(taqno). Poznato je da se svaka Bulova funkcija mo�e predstaviti izrazomu KNF. Za Bulov izraz se ka�e da je zadovoiv, ako postoji takvododeiva�e nula i jedinica promenivim, da izraz ima vrednost 1. ProblemSAT sastoji se u utvr�iva�u da li je zadati izraz zadovoiv (pri qemunije neophodno prona�i odgovaraju�e vrednosti promenivih). U navedenomprimeru izraz 𝑆 je zadovoiv, jer za 𝑥 = 1, 𝑦 = 1 i 𝑧 = 0 ima vrednost𝑆 = 1.

Problem SAT je u klasi NP jer se za (nedeterministiqki) izabranevrednosti promenivih za polinomijalno vreme (od veliqine ulaza |ukupne du�ine formule) mo�e proveriti da li je izraz taqan. ProblemSAT je i NP-te�ak. To nije lako dokazati.

Teorema 10.3 (Kukova teorema). Problem SAT je NP-kompletan.

Page 139: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

139 10. NP-kompletnost

10.4 Primeri dokaza NP-kompletnosti

U ovom odeku dokaza�emo da su NP-kompletni slede�ih pet problema:pokrivaq grana, dominiraju�i skup, 3 SAT, 3-obojivost i problem klika.Svaki od ovih problema bi�e detanije izlo�en. Dokaziva�e NP-kom-pletnosti zasniva se na tehnikama koje �e biti rezimirane na kraju odeka.Da bi se dokazalaNP-kompletnost nekog problema, mora se najpre dokazatida on pripada klasi NP, xto je obiqno (ali ne uvek!) lako, a zatim trebaprona�i redukciju polinomijalne vremenske slo�enosti na nax problemnekog problema za koji se zna da je NP-kompletan. Redosled redukcija udokazimaNP-kompletnosti pet navedenih problema prikazan je na slici 10.1.Da bi se ovi dokazi lakxe razumeli, navedeni su redosledom prema te�ini,a ne prema rastoja�u od korena stabla na slici 10.1; redosled dokazaprikazan je brojevima uz grane.

SAT

)

?

?

?

q

4 3

1

2

5

Klike 3SAT

Pokrivaq grana

Dominiraju�i skup

3-obojivost

Slika 10.1: Redosled dokaza NP-kompletnosti u tekstu.

10.4.1 Pokrivaq grana

Neka je 𝐺 = (𝑉,𝐸) neusmereni graf. Pokrivaq grana grafa 𝐺 jetakav skup qvorova, da je svaka grana 𝐺 susedna bar jednom od qvorova izskupa.

Problem. Zadat je neusmereni graf 𝐺 = (𝑉,𝐸) i prirodni broj 𝑘. Usta-noviti da li u 𝐺 postoji pokrivaq grana sa ≤ 𝑘 qvorova.

Teorema 10.4. Problem pokrivaq grana je NP-kompletan.

Dokaz. Problem pokrivaq grana je u klasi NP, jer se za pretpostavenipodskup od ≤ 𝑘 qvorova lako proverava za polinomijalno vreme da li jepokrivaq grana grafa. Da bismo dokazali da je problem pokrivaq granaNP-kompletan, treba da na �ega svedemo neki NP-kompletan problem. Utu svrhu iskoristi�emo problem klika (dokaz da je problem klika NP-kompletan bi�e dat u odeku 10.4.4). U neusmerenom grafu 𝐺 = (𝑉,𝐸)klika je takav podgraf 𝐶 grafa 𝐺 u kome su svi qvorovi me�usobnopovezani granama iz 𝐺. Drugim reqima, klika je kompletan podgraf.

Page 140: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

10.4. Primeri dokaza NP-kompletnosti 140

Problem klika glasi: za zadati graf 𝐺 i prirodni broj 𝑘, ustanoviti dali 𝐺 sadr�i kliku veliqine 𝑘. Potrebno je transformisati proizvoanulaz za problem klika u ulaz za problem pokrivaq grana, tako da je rexe�eproblema klika "da" akko je "da" rexe�e odgovaraju�eg problema pokrivaqgrana. Neka je 𝐺 = (𝑉,𝐸), 𝑘 proizvoan ulaz za problem klika. Neka je�� = (𝑉, ��) komplement grafa 𝐺, odnosno graf sa istim skupom qvorovakao i 𝐺, i komplementarnim skupom grana u odnosu na 𝐺 (odnosno izme�uproizvona dva qvora u �� grana postoji akko izme�u ta dva qvora u 𝐺 nepostoji grana). Neka je 𝑛 = |𝑉 |. Tvrdimo da je problem klika (𝐺, 𝑘) svedenna problem pokrivaq grana grafa, sa ulazom ��, 𝑛 − 𝑘 (videti primer naslici 10.2, gde su isprekidanim linijama prikazane grane iz 𝐺).

∙ Pretpostavimo da je 𝐶 = (𝑈,𝐹 ) klika u 𝐺. Skup qvorova 𝑉 ∖ 𝑈pokriva sve grane u ��, jer u �� nema grana koje povezuju qvorove iz𝑈 (sve te grane su u 𝐺). Prema tome, 𝑉 ∖ 𝑈 je pokrivaq grana za ��.Drugim reqima, ako 𝐺 ima kliku veliqine 𝑘, onda �� ima pokrivaqgrana veliqine 𝑛− 𝑘.

∙ Obrnuto, neka je 𝐷 pokrivaq grana u ��. Tada 𝐷 pokriva sve grane u��, pa u �� ne mo�e da postoji grana koja povezuje neka dva qvora iz𝑉 ∖𝐷. Prema tome, 𝑉 ∖𝐷 je klika u 𝐺. Zakuqujemo da ako u �� postojipokrivaq grana veliqine 𝑛− 𝑘, onda u 𝐺 postoji klika veliqine 𝑘.

Ova redukcija se oqigledno mo�e izvrxiti za polinomijalno vreme: potrebnoje samo konstruisati graf �� polaze�i od grafa 𝐺 i izraqunati razliku𝑛− 𝑘.

t

t t

tt tt

𝐺: klika 𝑈 ��: pokrivaq grana 𝑉 ∖ 𝑈od 𝑘 qvorova od 𝑛− 𝑘 qvorova

Slika 10.2: Redukcija problema klika na problem pokrivaq grana.

10.4.2 Dominiraju�i skup

Neka je 𝐺 = (𝑉,𝐸) neusmereni graf. Dominiraju�i skup je skup𝐷 ⊂ 𝑉 , takav da je svaki qvor 𝐺 u 𝐷, ili je susedan bar jednom qvoru iz𝐷.

Problem. Dat je neusmereni graf𝐺 = (𝑉,𝐸) i prirodni broj 𝑘. Ustanovitida li u 𝐺 postoji dominiraju�i skup sa najvixe 𝑘 qvorova.

Page 141: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

141 10. NP-kompletnost

Teorema 10.5. Problem dominiraju�i skup je NP-kompletan.

Dokaz. Problem dominiraju�i skup je u klasi NP, jer se za pretpostave-ni podskup od najvixe 𝑘 qvorova lako za polinomijalno vreme proveravada li je dominiraju�i skup. Izvex�emo redukciju problema pokrivaqgrana na problem dominiraju�i skup. Ako je zadat proizvoan ulaz (𝐺, 𝑘)za problem pokrivaq grana, ci je konstruisati novi graf 𝐺′ koji imadominiraju�i skup odre�ene veliqine akko𝐺 ima pokrivaq grana veliqinenajvixe 𝑘. Pri tome se, bez sma�e�a opxtosti, mo�e pretpostaviti da 𝐺nema izolovanih qvorova (oni ne utiqu na pokrivaq grana, ali moraju bitiukuqeni u dominiraju�i skup). Polaze�i od grafa 𝐺, dodajemo mu |𝐸|novih qvorova i 2|𝐸| novih grana na slede�i naqin. Za svaku granu (𝑣, 𝑤) iz𝐺 dodajemo novi qvor 𝑣𝑤 i dve nove grane (𝑣, 𝑣𝑤) i (𝑤, 𝑣𝑤) (videti primerna slici 10.3). Drugim reqima, svaku granu transformixemo u trougao.Oznaqimo novi graf sa𝐺′. Graf𝐺′ je lako konstruisati za polinomijalnovreme.

t t

ttt

t

t

tt𝑣

𝑧

𝑣𝑧

𝑤

𝑢

𝑢𝑣

𝑣𝑤

𝑣𝑢

𝑧𝑤

Slika 10.3: Redukcija problema pokrivaq grana na problem dominiraju�iskup.

Tvrdimo da𝐺 ima pokrivaq grana veliqine𝑚 akko𝐺′ ima dominiraju�iskup veliqine 𝑚.

∙ Neka je 𝐷 dominiraju�i skup grafa 𝐺′. Ako 𝐷 sadr�i bilo koji odnovih qvorova 𝑣𝑤, onda se takav qvor mo�e zameniti bilo qvorom 𝑣,bilo qvorom 𝑤, posle qega �e i novi skup biti dominiraju�i skup (𝑣 i𝑤 pokrivaju sve qvorove koje pokriva 𝑣𝑤). Prema tome, bez sma�e�aopxtosti mo�e se pretpostaviti da 𝐷 sadr�i samo qvorove iz 𝐺.Me�utim, poxto 𝐷 "dominira" nad svim novim qvorovima, on moraza svaku granu iz 𝐺 da sadr�i bar jedan �en kraj, pa je zbog toga 𝐷istovremeno i pokrivaq grana grafa 𝐺.

∙ Obrnuto, ako je 𝐶 pokrivaq grana u 𝐺, onda je svaka grana 𝐺 susednanekom qvoru iz 𝐶, pa je i svaki novi qvor iz 𝐺′ susedan nekom qvoruiz 𝐶. Stari qvorovi su tako�e pokriveni qvorovima iz 𝐶, jer popretpostavci qvorovi iz 𝐶 pokrivaju sve grane.

Page 142: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

10.4. Primeri dokaza NP-kompletnosti 142

10.4.3 3 SAT

Problem 3 SAT je uprox�ena verzija obiqnog problema SAT. Ulaz zaproblem 3 SAT je KNF u kojoj svaka klauza ima taqno tri literala.

Problem. Zadat je Bulov izraz u KNF, u kome svaka klauza sadr�i taqnotri literala. Ustanoviti da li je izraz zadovoiv.

Teorema 10.6. Problem 3 SAT je NP-kompletan.

Dokaz. Ovaj problem je na prvi pogled lakxi od obiqnog problema SAT,zbog dopunskog ograniqe�a da svaka klauza ima po tri promenive. Poka-za�emo da algoritam koji rexava 3 SAT mo�e da se iskoristi da rexiobiqan problem SAT (odnosno da se SAT mo�e svesti na 3 SAT). Pretoga, jasno je da 3 SAT pripada klasi NP. Mogu se izabrati ("pogoditi")vrednosti promenivih i za polinomijalno vreme proveriti da li jeizraz taqan. Neka je 𝐸 proizvoan ulaz za SAT. Svaku klauzu u 𝐸 za-meni�emo sa nekoliko klauza od po taqno tri literala. Neka je 𝐶 =(𝑥1 + 𝑥2 + · · · + 𝑥𝑘) proizvona klauza iz 𝐸, takva da je 𝑘 ≥ 4. Ovdeje zbog udobnosti sa 𝑥𝑖 oznaqen literal, odnosno bilo promeniva, bilonegacija promenive. Pokaza�emo kako se 𝐶 mo�e ekvivalentno zamenitisa nekoliko klauza od po taqno tri literala. Ideja je uvesti nove pro-menive 𝑦1, 𝑦2, . . . , 𝑦𝑘−3, koje klauzu transformixu u deo ulaza za 3 SAT,ne me�aju�i zadovoivost izraza. Za svaku klauzu iz 𝐸 uvode se nove,razliqite promenive; 𝐶 se zame�uje konjunkcijom klauza 𝐶 ′, tako da je

𝐶 ′ = (𝑥1+𝑥2+𝑦1)(𝑥3+𝑦1+𝑦2)(𝑥4+𝑦2+𝑦3) · · · (𝑥𝑘−2+𝑦𝑘−4+𝑦𝑘−3)(𝑥𝑘−1+𝑥𝑘+𝑦𝑘−3).

Tvrdimo da je izraz, dobijen od 𝐸 zamenom 𝐶 sa 𝐶 ′, zadovoiv akko jezadovoiv izraz 𝐸.

∙ Ako je izraz 𝐸 zadovoiv, onda bar jedan od literala 𝑥𝑖 mora imativrednost 1. U tom sluqaju se mogu izabrati vrednosti promenivih𝑦𝑖 u 𝐶 ′ tako da sve klauze u 𝐶 ′ budu taqne. Na primer, ako je 𝑥3 = 1,onda se mo�e staviti 𝑦1 = 1 (xto qini taqnom prvu klauzu), 𝑦2 = 0(druga klauza je taqna zbog 𝑥3 = 1), i 𝑦𝑖 = 0 za sve 𝑖 > 2. Uopxte, akoje 𝑥𝑖 = 1, onda stavamo 𝑦1 = 𝑦2 = · · · = 𝑦𝑖−2 = 1 i 𝑦𝑖−1 = 𝑦𝑖 = · · · =𝑦𝑘−3 = 0, xto obezbe�uje da bude 𝐶 ′ = 1.

∙ Obrnuto, ako izraz 𝐶 ′ ima vrednost 1, tvrdimo da bar jedan odliterala 𝑥𝑖 mora imati vrednost 1. Zaista, ako bi svi literali 𝑥𝑖

imali vrednost 0, onda bi izraz 𝐶 ′ imao istu taqnost kao i izraz𝐶 ′′ = (𝑦1) · (𝑦1 + 𝑦2) · (𝑦2 + 𝑦3) · · · (𝑦𝑘−4 + 𝑦𝑘−3) · (𝑦𝑘−3), koji oqiglednonije zadovoiv (da bi bilo 𝐶 ′′ = 1, moralo bi da bude redom 𝑦1 = 1,pa 𝑦2 = 1, itd, 𝑦𝑘−4 = 1, 𝑦𝑘−3 = 0, i 𝑦𝑘−3 = 1, xto je kontradikcija).

Pomo�u ove redukcije sve klauze sa vixe od tri literala mogu sezameniti sa nekoliko klauza od po taqno tri literala. Ostaje da se trans-formixu klauze sa jednim ili dva literala. Klauza oblika 𝐶 = (𝑥1+𝑥2)zame�uje se ekvivalentnom izrazom

𝐶 ′ = (𝑥1 + 𝑥2 + 𝑧)(𝑥1 + 𝑥2 + 𝑧),

Page 143: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

143 10. NP-kompletnost

gde je 𝑧 nova promeniva. Lako se pokazuje da je poqetni izraz zadovoivakko je zadovoiv izraz dobijen zamenom 𝐶 sa 𝐶 ′.

Konaqno, klauza oblika 𝐶 = 𝑥1 mo�e se zameniti izrazom

𝐶 ′ = (𝑥1 + 𝑦 + 𝑧)(𝑥1 + 𝑦 + 𝑧)(𝑥1 + 𝑦 + 𝑧)(𝑥1 + 𝑦 + 𝑧),

u kome su 𝑦 i 𝑧 nove promenive. Lako se pokazuje da je poqetni izrazzadovoiv akko je zadovoiv izraz dobijen zamenom 𝐶 sa 𝐶 ′.

Prema tome, proizvoni ulaz za problem SAT mo�e se svesti na ulaz zaproblem 3 SAT, tako da je prvi izraz zadovoiv akko je zadovoiv drugi.Jasno je da se ova redukcija izvodi za polinomijalno vreme.

10.4.4 Klike

Problem klika definisan je u odeku 10.4.1, u kome je razmatranproblem pokrivaq grana.

Problem. Dat je neusmereni graf 𝐺 = (𝑉,𝐸) i prirodni broj 𝑘. Ustano-viti da li 𝐺 sadr�i kliku veliqine bar 𝑘.

Teorema 10.7. Problem klika je NP-kompletan.

Dokaz. Problem klika je u klasi NP, jer se za svaki pretpostavenipodskup od 𝑘 qvorova za polinomijalno vreme mo�e proveriti da li jeklika. Pokaza�emo sada da se problem SAT mo�e svesti na problem klika.Neka je 𝐸 proizvoni Bulov izraz u KNF, 𝐸 = 𝐸1·𝐸2 · · ·𝐸𝑚. Posmatrajmo,na primer, klauzu 𝐸𝑖 = (𝑥 + 𝑦 + 𝑧 + 𝑤). �oj pridru�ujemo "kolonu"od qetiri qvora, oznaqena literalima iz 𝐸𝑖 (bez obzira xto se neki od�ih mo�da pojavuju i u drugim klauzama). Drugim reqima, graf 𝐺 kojikonstruixemo ima�e po jedan qvor za svaku pojavu bilo koje promenive.Ostaje pita�e kako povezati ove qvorove, tako da𝐺 sadr�i kliku veliqinebar 𝑘 akko je izraz 𝐸 zadovoiv. Primetimo da se vrednost 𝑘 mo�e izabratiproizvono, jer je potrebno svesti problem SAT na problem klika, odnosnorexiti problem SAT koriste�i algoritam za rexava�e problema klika.Naravno, algoritam za rexava�e problema klika mora da radi za svakuvrednost 𝑘. Ovo je va�na fleksibilnost, koja se qesto koristi u dokazimaNP-kompletnosti. U ovom sluqaju za 𝑘 �emo izabrati vrednost jednakubroju klauza 𝑚.

Grane u grafu 𝐺 mogu se zadati na slede�i naqin. Qvorovi iz istekolone (odnosno qvorovi pridru�eni literalima iz iste klauze) ne povezujuse granama. Qvorovi iz razliqitih kolona su skoro uvek povezani: izuzetakje sluqaj dva qvora od kojih jedan odgovara promenivoj, a drugi komplementute iste promenive. Primer grafa koji odgovara izrazu

𝐸 = (𝑥+ 𝑦 + 𝑧) · (��+ 𝑦 + 𝑧) · (𝑦 + 𝑧)

prikazan je na slici 10.4. Jasno je da se 𝐺 mo�e konstruisati za polino-mijalno vreme.

Tvrdimo da 𝐺 ima kliku veliqine bar 𝑚, akko je izraz 𝐸 zadovoiv.Najpre zapa�amo da zbog konstrukcije maksimalna klika ne mo�e imativixe od 𝑚 qvorova, nezavisno od 𝐸.

Page 144: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

10.4. Primeri dokaza NP-kompletnosti 144

u

u

u

u

u

uu

u𝑥

𝑦

𝑧

��

𝑦

𝑧

𝑦

𝑧

Slika 10.4: Redukcija problema SAT sa ulazom (𝑥+𝑦+𝑧)·(��+𝑦+𝑧)·(𝑦+𝑧)na problem klika.

∙ Pretpostavimo da je izraz 𝐸 zadovoiv. Tada postoji takvo dodei-va�e vrednosti promenivim, da u svakoj klauzi postoji bar jedanliteral sa vrednox�u 1. Qvor koji odgovara tom literalu prikuqujese kliki (ako ima vixe takvih literala, bira se proizvoan od�ih). Dobijeni podgraf jeste klika, jer jedini naqin da dva qvora izrazliqitih kolona ne budu povezana je da jedan od �ih bude komplementdrugog |xto je nemogu�e, jer je svim izabranim literalima dodeenavrednost 1.

∙ Obrnuto, pretpostavimo da 𝐺 sadr�i kliku veliqine bar 𝑚. Klikamora da sadr�i taqno jedan qvor iz svake kolone (jer po konstrukcijiqvorovi iz iste kolone nisu povezani). Odgovaraju�im literalimadodeujemo vrednost 1. Ako na ovaj naqin nekoj promenivoj nijedodeena vrednost, to se mo�e uqiniti na proizvoan naqin. Izvedenododeiva�e vrednosti promenivima je neprotivreqno: ako bi nekojpromenivoj 𝑥 i �enom komplementu ��, ukuqenim u kliku, isto-vremeno bila dodeena vrednost 1, to bi znaqilo da odgovaraju�iqvorovi (po konstrukciji) nisu povezani | suprotno pretpostavcida su oba qvora u kliki.

10.4.5 3-obojivost

Neka je 𝐺 = (𝑉,𝐸) neusmereni graf. Ispravno boje�e (ili samoboje�e) grafa 𝐺 je takvo pridru�iva�e boja qvorovima, da je svakomqvoru pridru�ena neka boja, a da su susednim qvorovima uvek pridru�enerazliqite boje.

Problem (3-obojivost ). Dat je neusmereni graf 𝐺 = (𝑉,𝐸). Ustanovitida li se 𝐺 mo�e obojiti sa tri boje.

Teorema 10.8. Problem 3-obojivost je NP-kompletan.

Dokaz. Problem 3-obojivost pripada klasi NP, jer se mo�e pretpostavitiproizvono boje�e grafa sa 3 boje, a zatim za polinomijalno vreme pro-veriti da li je pretpostaveno boje�e ispravno. Izvex�emo redukciju

Page 145: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

145 10. NP-kompletnost

problema 3 SAT na problem 3-obojivost. Dokaz je nexto komplikovanijiiz dva razloga. Najpre, problemi se odnose na razliqite objekte | Buloveizraze u KNF, odnosno grafove. Drugo, ne mo�e se prosto zameniti jedanobjekat (na primer qvor ili grana) drugim (na primer klauzom); mora sevoditi raquna o kompletnoj strukturi. Ideja je da se iskoriste sastavnielementi, koji se povezuju u celinu. Neka je 𝐸 proizvoan ulaz za problem3 SAT. Treba konstruisati graf 𝐺, tako da je izraz 𝐸 zadovoiv akko je 𝐺3-obojiv. Najpre konstruixemo osnovni trougao 𝑀 . Poxto je 𝑀 trougao(kompletni graf sa tri qvora), za �egovo boje�e potrebne su taqno triboje. Oznaqimo te boje sa 𝑇 (taqno), 𝐹 (netaqno) i 𝐴, videti do�i trougaona slici 10.5. Pored toga, za svaku promenivu 𝑥 dodajemo novi trougao𝑀𝑥, qije qvorove oznaqavamo sa 𝑥, �� i 𝐴, pri qemu se qvor oznaqen sa 𝐴poklapa sa qvorom iz 𝑀 sa istom oznakom. Prema tome, ako se u izrazupojavuje 𝑘 promenivih, imamo 𝑘 + 1 trouglova sa zajedniqkim qvorom𝐴 (slika 10.5). Ovo za sada obezbe�uje da, ako je, na primer, qvor 𝑥 obojenbojom 𝑇 , onda qvor �� mora biti obojen bojom 𝐹 (jer su oba qvora susednaqvoru obojenom bojom 𝐴), i obrnuto. Ovo je u skladu sa znaqe�em ��.

t tttt

ttt tt

𝑇 𝐹

𝐴

𝑥 ��

𝑦

𝑦

𝑧

𝑧

Slika 10.5: Prvi deo konstrukcije za redukciju 3 SAT na 3-obojivostgrafa.

Potrebno je dodati uslov, koji bi obezbe�ivao da u svakoj klauzi barjedan literal ima vrednost 1. To se mo�e obezbediti na slede�i naqin.Pretpostavimo, na primer, da se radi o klauzi (𝑥 + 𝑦 + 𝑧). Ovde se 𝑥,𝑦, 𝑧 mogu smatrati literalima, tj. nedostatak negacija nad simbolima 𝑥,𝑦, 𝑧 ne sma�uje opxtost razmatra�a. Za ovu klauzu uvodimo xest novihqvorova i povezujemo ih sa postoje�im qvorovima na naqin prikazan naslici 10.6. Nazovimo tri nova qvora povezana sa 𝑇 i 𝑥, 𝑦 ili 𝑧 spoax�imqvorovima (oznaqeni su sa 𝑂 na slici), a tri nova qvora u trouglu |unutrax�im qvorovima (oznaqeni su sa 𝐼 na slici). Tvrdimo da ovakonstrukcija obezbe�uje (ako je mogu�e boje�e sa tri boje) da bar jedanod qvorova 𝑥, 𝑦 ili 𝑧 mora biti obojen bojom 𝑇 . Ni jedan od qvorova 𝑥, 𝑦, 𝑧ne mo�e biti obojen bojom 𝐴, jer su svi oni povezani sa qvorom 𝐴 (videtisliku 10.5). Ako bi sva tri qvora 𝑥, 𝑦, 𝑧 bili obojeni bojom 𝐹 , onda bi trinova spoax�a qvora povezana sa �ima morali biti obojeni bojom 𝐴, pase unutrax�i trougao ne bi mogao obojiti sa tri boje! Kompletan grafkoji odgovara izrazu (��+ 𝑦 + 𝑧) · (��+ 𝑦 + 𝑧) prikazan je na slici 10.7.

Sada mo�emo da kompletiramo dokaz, i to u dva smera: (1) ako je izraz𝐸 zadovoiv, 𝐺 se mo�e obojiti sa tri boje, i (2) ako se 𝐺 mo�e obojiti

Page 146: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

10.4. Primeri dokaza NP-kompletnosti 146

tttt

ttttttt

t tt

𝑥

𝐼

𝑂𝑦

𝑇

𝑇

𝐼

𝑂 𝑧

𝑇

𝑂

𝐼

Slika 10.6: Podgrafovi koji odgovaraju klauzama u redukciji 3 SAT na3-obojivost.

t

ttt tt

tttttt

t

tttt t tttt t

𝑦 𝑦

𝑥 𝑧

𝑧��

𝐴

𝐹

𝑇

Slika 10.7: Graf koji odgovara izrazu (��+ 𝑦+ 𝑧) · (��+ 𝑦+ 𝑧) u redukciji3 SAT na 3-obojivost.

sa tri boje, onda je izraz 𝐸 zadovoiv.

∙ Ako je izraz 𝐸 zadovoiv, onda postoji takvo dodeiva�e vrednostipromenivim, da u svakoj klauzi bar jedan literal ima vrednost 1.Obojimo qvorove grafa u skladu sa �ihovim vrednostima (sa 𝑇 ako jevrednost 1, odnosno sa 𝐹 u protivnom). Trougao𝑀 obojen je bojama 𝑇 ,𝐹 i 𝐴 na opisani naqin. U podgrafu koji odgovara klauzi bar jedanliteral ima vrednost 1; odgovaraju�i spoax�i qvor bojimo sa 𝐹 ,a ostale spoax�e qvorove sa 𝐴, posle qega je boje�e unutrax�ihqvorova lako izvesti. Prema tome, 𝐺 se mo�e obojiti sa tri boje.

∙ Obrnuto, ako se 𝐺 mo�e obojiti sa tri boje, nazovimo boje u skladusa boje�em trougla 𝑀 (koji mora biti obojen sa tri boje). Zbogtrouglova na slici 10.5, boje promenivih omogu�uju neprotivreqnododeiva�e vrednosti promenivim. Konstrukcija bloka sa slike 10.6obezbe�uje da je bar jedan literal u svakoj klauzi obojen sa 𝑇 .

Page 147: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

147 10. NP-kompletnost

Konaqno, jasno je da se graf𝐺 mo�e konstruisati za polinomijalno vreme,qime je dokaz zavrxen.

10.4.6 Opxta zapa�a�a

Razmotri�emo ukratko nekoliko opxtih metoda za dokaziva�e NP-kompletnosti nekog problema 𝑄. Prvi uslov | da 𝑄 pripada klasi NP |obiqno se lako dokazuje (ne uvek). Posle toga treba izabrati neki problemza koji se zna da je NP-kompletan, a za koji izgleda da je povezan, ilisliqan sa 𝑄. Texko je definisati ovu "sliqnost", jer ponekad izabraniproblem i 𝑄 izgledaju jako razliqito (na primer, problem klika i SAT).Izbor pravog problema koji �e biti sveden na𝑄 je ponekad izuzetno te�ak,i zahteva veliko iskustvo. Mora se pokuxati sa nekoliko redukcija, dokse ne do�e do pogodnog problema.

Va�no je da se izvede redukcija na 𝑄, polaze�i od proizvonog ulazapoznatog NP-kompletnog problema. Najqex�a grexka u ovakvim dokazimaje izvo�e�e redukcije u obrnutom smeru. Pravi smer obezbe�uje npr. slede�epravilo: treba obezbediti da se poznati NP-kompletan problem mo�erexiti crnom kutijom, koja izvrxava algoritam za rexava�e𝑄. To mo�damalo protivreqi intuiciji. Prirodno bi bilo pokuxati sa rexava�emproblema 𝑄, poxto je to zadati problem. Ovde pak pokuxavamo da reximodrugi problem (poznati NP-kompletan problem), koriste�i rexe�e pro-blema 𝑄. Mi i ne pokuxavamo da reximo 𝑄!

Postoji vixe "stepeni slobode" koji se mogu koristiti pri redukciji.Na primer, ako 𝑄 sadr�i neki parametar, onda se �egova vrednost mo�efiksirati na proizvoan naqin (suprotno od parametara u problemukoji se svodi na 𝑄, koji se ne smeju fiksirati!). Poxto je 𝑄 samo alatza rexava�e poznatog NP-kompletnog problema, mo�e se iskoristiti naproizvoan naqin. Pored fiksira�a parametara, mogu se koristiti re-strikcije𝑄 na specijalne sluqajeve dobijene i na druge naqine. Na primer,mogu se koristiti samo neki tipovi ulaza za𝑄 (ako se radi o grafovima |bipartitni grafovi, stabla i sliqno). Drugi va�an izvor fleksibilnostije qi�enica da je efikasnost redukcije nebitna| dovono je da se redukcijamo�e izvesti za polinomijalno vreme. Mogu se ignorisati ne samo konstante,tako xto bi se, na primer, duplirala veliqina problema: isto tako mo�ese i kvadrirati veliqina problema! Mo�e se uvesti polinomijalno mnogonovih promenivih, mo�e se zameniti svaki qvor u grafu novim velikimgrafom i sliqno. Ne postoji potreba za efikasnox�u (sve dok se ostaje ugranicama polinomijalnog), jer svrha redukcije nije da se transformixeu algoritam.

Postoje neke uobiqajene tehnike za dobija�e redukcija. Najjednostavnijaje dokazati da je poznatiNP-kompletan problem specijalan sluqaj problema𝑄. Ako je tako, dokaz je direktan, jer je rexava�e𝑄 istovremeno i rexava�epoznatog NP-kompletnog problema. Posmatrajmo, na primer, problem po-kriva�e skupova. Ulaz je kolekcija podskupova 𝑆1, 𝑆2, . . . , 𝑆𝑛 zadatogskupa 𝑈 i prirodni broj 𝑘. Problem je ustanoviti da li postoji podskup𝑊 ⊆ 𝑈 sa najvixe 𝑘 elemenata, koji sadr�i bar po jedan elemenat svakogod podskupova 𝑆𝑖. Zapa�amo da je problem pokrivaq grana specijalnisluqaj problema pokriva�a skupova u kome 𝑈 odgovara skupu qvorova 𝑉 , a

Page 148: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

10.4. Primeri dokaza NP-kompletnosti 148

svaki skup 𝑆𝑖 odgovara jednoj grani i sadr�i dva qvora kojima je ta granasusedna. Prema tome, ako znamo da reximo problem pokriva�a skupova zaproizvone skupove, onda mo�emo da reximo i problem pokrivaq grana.

Moramo, me�utim, biti pa�ivi kad koristimo ovaj pristup. U opxtemsluqaju nije taqno da dodava�e novih zahteva qini problem te�im. Posma-trajmo problem pokrivaq grana. Pretpostavimo da smo dodali ograniqe�eda pokrivaq grana ne sme da sadr�i dva susedna qvora. Drugim reqima,tra�imo mali skup qvorova koji je istovremeno i pokrivaq grana i ne-zavisan skup (nezavisan skup je podskup qvorova grafa, takav da izme�u�egova dva proizvona elementa ne postoji grana). Ovaj problem je naprvi pogled te�i i od problema pokrivaq grana i od problema nezavisanskup, jer treba brinuti o vixe zahteva. Ispostava se, me�utim, da jeovo lakxi problem, i da se mo�e rexiti za polinomijalno vreme. Razlogovoj pojavi je u tome xto dopunski zahtevi toliko su�avaju familijupodskupova kandidata, da se minimum lako nalazi.

Druga relativno jednostavna tehnika koristi lokalne redukcije.Objekat, ulaz za jedan problem, preslikava se u objekat koji je ulaz zadrugi problem. Preslikava�e se izvodi na lokalni naqin, nezavisno odostalih objekata. Dokaz NP-kompletnosti problema dominiraju�eg skupaizveden je na ovaj naqin. Svaka grana u jednom grafu zame�ena je trouglomu drugom grafu. Potexko�a sa ovom tehnikom je kako na najboi naqindefinisati odgovaraju�e objekte.

Najkomplikovanija tehnika je upotreba sastavnih elemenata { blokova,kao xto je to uqi�eno pri dokazu NP-kompletnosti problema 3-obojivost.Blokovi obiqno zavise jedan od drugog, pa je �ihovo nezavisno projektova�eneizvodivo. Moraju se imati na umu svi cievi problema, da bi se moglokoordinirati projektova�e razliqitih blokova.

10.4.7 Jox neki NP-kompletni problemi

Slede�i spisak sadr�i jox nekoliko NP-kompletnih problema, kojimogu biti korisni kao polazna osnova za nove redukcije. Pronala�e�epravog problema za redukciju obiqno je vixe od polovine dokaza NP-kompletnosti.

Hamiltonov ciklus: Hamiltonov ciklus u grafu je prost cikluskoji sadr�i svaki qvor grafa taqno jednom. Problem je ustanoviti da lizadati graf sadr�i Hamiltonov ciklus. Problem je NP-kompletan i zaneusmerene i za usmerene grafove. (Redukcija problema pokrivaq grana.)

Hamiltonov put: Hamiltonov put u grafu je prosti put koji sadr�isvaki qvor grafa taqno jednom. Problem je ustanoviti da li zadati grafsadr�i Hamiltonov put. Problem je NP-kompletan i za neusmerene iusmerene grafove. (Redukcija problema pokrivaq grana.)

Problem trgovaqkog putnika: Neka je zadat te�inski kompletangraf 𝐺 i broj 𝑊 . Ustanoviti da li u 𝐺 postoji Hamiltonov ciklus sazbirom te�ina grana ≤ 𝑊 . (Direktna redukcija problema Hamiltonovciklus.)

Nezavisan skup: Nezavisan skup u grafu je podskup qvorova grafa,takav da izme�u �egova dva proizvona elementa ne postoji grana. Ako jezadat graf 𝐺 i prirodni broj 𝑘, ustanoviti da li 𝐺 sadr�i nezavisni

Page 149: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

149 10. NP-kompletnost

skup sa bar 𝑘 qvorova. (Direktna redukcija problema klika.)

3-dimenzionalno upariva�e: Neka su 𝑋, 𝑌 i 𝑍 disjunktni skupoviod po 𝑘 elemenata, i neka je 𝑀 zadati skup trojki (𝑥, 𝑦, 𝑧) takvih daje 𝑥 ∈ 𝑋, 𝑦 ∈ 𝑌 i 𝑧 ∈ 𝑍. Problem je ustanoviti da li postoji takavpodskup skupa 𝑀 koji svaki elemenat sadr�i taqno jednom. Odgovaraju�idvodimenzionalni problem upariva�a je obiqan problem bipartitnog u-pariva�a. (Redukcija problema 3 SAT.)

Particija: Ulaz je skup 𝑋 qijem je svakom elementu 𝑥 pridru�ena�egova veliqina 𝑠(𝑥). Problem je ustanoviti da li je mogu�e podelitiskup na dva disjunktna podskupa sa jednakim sumama veliqina. (Redukcijaproblema 3-dimenzionalno upariva�e.)

Primetimo da se ovaj i slede�i problem mogu efikasno rexiti al-goritmom 𝑅𝑎𝑛𝑎𝑐, ako su veliqine mali celi brojevi. Me�utim, poxtoje veliqina ulaza srazmerna broju bita potrebnih da se predstavi ulaz,ovakvi algoritmi (koji se zovu pseudopolinomijalni algoritmi) suustvari eksponencijalni u odnosu na veliqinu ulaza.

Problem ranca: Ulaz su dva broja 𝑆, 𝑉 i skup 𝑋 qijem je svakomelementu 𝑥 pridru�ena veliqina 𝑠(𝑥) i vrednost 𝑣(𝑥). Problem je ustanovitida li postoji podskup 𝐵 ⊆ 𝑋 sa ukupnom veliqinom ≤ 𝑆 i ukupnomvrednox�u ≥ 𝑉 . (Redukcija problema particije.)

Problem pakova�a: Ulaz je niz brojeva 𝑎1, 𝑎2, . . . , 𝑎𝑛 i dva broja 𝑏, 𝑘.Problem je ustanoviti da li se ovaj skup mo�e razlo�iti u 𝑘 podskupova,tako da je suma brojeva u svakom podskupu≤ 𝑏. (Redukcija problema particije.)

10.5 Tehnike za rad sa NP-kompletnim problemima

Pojam NP-kompletnosti je osnova za elegantnu teoriju koja omogu�uje pre-poznava�e problema za koje najverovatnije ne postoji polinomijalni algo-ritam. Me�utim, dokaziva�em da je problem NP-kompletan, sam problemnije eliminisan! I dae je potrebno rexiti ga. Tehnike za rexava�eNP-kompletnih problema su ponekad drugaqije od tehnika koje smo dosada razmatrali. Ni jedan NP-kompletan problem se (najverovatnije) nemo�e rexiti taqno i kompletno algoritmom polinomijalne vremenskeslo�enosti. Zbog toga smo prinu�eni na kompromise. Najqex�i kompromisiodnose se na optimalnost, garantovanu efikasnost, ili kompletnost re-xe�a. Postoje i druge alternative, od kojih svaka ponexto �rtvuje. Istialgoritam se mo�e koristiti u razliqitim situacijama, prime�uju�irazliqite kompromise.

Algoritam koji ne daje uvek optimalan (ili taqan) rezultat zove sepribli�an algoritam. Posebno su zanimivi pribli�ni algoritmikoji mogu da garantuju granicu za stepen odstupa�a od taqnog rexe�a.Nexto kasnije vide�emo tri primera takvih algoritama.

U odeku 5.4 razmatrali smo probabilistiqke algoritme koji mogu dapogrexe. Najpoznatiji u toj klasi je algoritam za prepoznava�e prostihbrojeva. Za problem prepoznava�a prostih brojeva se do pre deset godinanije znalo da li je u P, pa se smatralo da nije NP-kompletan. Ispostavilose da je ovaj problem u klasi P, xto su 2002. godine dokazali Agrawal,Kayal i Saxena. Ovde se ne�emo baviti algoritmima za prepoznava�eprostih brojeva, jer zahtevaju predzna�e iz teorije brojeva. Raxireno

Page 150: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

10.5. Tehnike za rad sa NP-kompletnim problemima 150

je verova�e da se NP-kompletni problemi ne mogu rexiti algoritmompolinomijalne vremenske slo�enosti, kod kojih je verovatno�a grexkemala za sve ulaze. Takvi algoritmi su po svemu sude�i efikasni za probleme,za koje se ne zna da li su u klasi P, ali se ne veruje da su NP-kompletni.Takvi problemi nisu qesti. Probabilistiqki algoritmi se mogu koristitikao deo drugih strategija | na primer, kao deo pribli�nih algoritama.

Drugi kompromis mogu� je u vezi sa zahtevom da polinomijalno budevreme izvrxava�a u najgorem sluqaju. Mo�e se pokuxati sa rexava�emNP-kompletnih problema za polinomijalno sred�e vreme. Potexko�a saovim pristupom je kako definisati proseqno vreme. Na primer, texkoje iskuqiti ulaze za koje je konkretan problem trivijalan (kao xto jegraf koji ima samo izolovane qvorove) iz izraqunava�a proseka. Takvitrivijalni ulazi mogu znatno da utiqu na prosek. Algoritmi predvi�eniza pojedine tipove sluqajnih ulaza mogu da budu korisni ako je stvarnaraspodela verovatno�a ulaza u skladu sa pretpostavenom. Me�utim, obiqnoje nala�e�e taqne raspodele vrlo texko. Najte�i deo posla pri konstruk-ciji algoritama, koji u proseku dobro rade, je najqex�e �ihova analiza.

Konaqno, mogu se praviti kompromisi u vezi sa kompletnox�u al-goritama; naime, mo�e se dozvoliti da algoritam radi efikasno samoza neke specijalne ulaze. Na primer, problem pokrivaq grana mo�e serexiti za polinomijalno vreme za bipartitne grafove. Prema tome, kad seformulixe apstraktni problem polaze�i od situacije iz realnog �ivota,treba obezbediti da svi dopunski uslovi koje ulaz zadovoava budu ukuqeniu apstraktnu definiciju. Drugi primer su algoritmi sa eksponencijalnomvremenskom slo�enox�u, koji se ipak mogu izvrxavati za male ulaze, xtoje qesto potpuno zadovoavaju�e.

10.5.1 Pribli�ni algoritmi sa garantovanim kvalitetom

rexe�a

U ovom odeku razmotri�emo pribli�ne algoritme za tri NP-kom-pletna algoritma: pokrivaq grana, pakova�e i euklidski problem trgo-vaqkog putnika. Sva tri algoritma imaju garantovani kvalitet rexe�a;drugim reqima, mo�e se dokazati da rexe�a koja oni daju nisu predalekood optimalnih rexe�a.

Pokrivaq grana

Najpre �emo razmotriti jednostavan pribli�ni algoritam za nala�e�epokrivaqa grana datog grafa. Algoritam garantuje nala�e�e pokrivaqasa najvixe dva puta vixe qvorova nego u minimalnom pokrivaqu. Za zadatineusmereni graf 𝐺 = (𝑉,𝐸) upariva�e je skup disjunktnih grana (granabez zajedniqkih qvorova).Maksimalno upariva�e je upariva�e koje sene mo�e proxiriti dodava�em nove grane. Maksimalno upariva�e mo�ese na�i prostim dodava�em grana sve dotle dok je to mogu�e (odnosno dokpostoje neka dva neuparena, a susedna qvora).

Neka je 𝐺 graf, i neka je 𝑀 maksimalno upariva�e u 𝐺. Poxto je𝑀 upariva�e, �egove grane nemaju zajedniqkih taqaka, a poxto je 𝑀maksimalno upariva�e, sve ostale grane imaju bar jedan zajedniqki qvorsa nekom granom iz 𝑀 .

Page 151: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

151 10. NP-kompletnost

Teorema 10.9. Skup qvorova susednih granama maksimalnog upariva�a𝑀 je pokrivaq grana, sa najvixe dva puta vixe qvorova nego xto ih imaminimalni pokrivaq.

Dokaz. Skup krajeva grana iz 𝑀 je pokrivaq grana, jer je 𝑀 maksimalnoupariva�e (ako bi postojala nepokrivena grana, ta grana mogla bi dase ukuqi u upariva�e, xto je nemogu�e, jer je pretpostaveno da jeupariva�e maksimalno). Svaki pokrivaq grana, pa i optimalni, mora dapokrije sve grane | specijalno, sve grane upariva�a 𝑀 . Poxto je 𝑀upariva�e, bilo koji qvor iz 𝑀 mo�e da pokrije najvixe jednu granuupariva�a 𝑀 . Prema tome, bar jedan kraj svake grane iz 𝑀 mora dapripada optimalnom pokrivaqu grana.

Jednodimenzionalno pakova�e

Jednodimenzionalni problem pakova�a odnosi se na pakova�e objekatarazliqite veliqine u kutije tako da se iskoristi najma�i mogu�i brojkutija. Na primer, prilikom selidbe je ci preneti sve stvari, koriste�ikamion najma�i mogu�i broj puta, pakuju�i stvari xto je mogu�e boe. Toje naravno trodimenzionalni problem; ovde �emo se pozabaviti �egovomjednodimenzionalnom verzijom. Zbog jednostavnosti se pretpostava dasvi sanduci imaju veliqinu 1.

Problem. Neka je 𝑥1, 𝑥2, . . . , 𝑥𝑛 skup realnih brojeva izme�u 0 i 1. Pode-liti ih u najma�i mogu�i broj podskupova, tako da suma brojeva u svakompodskupu bude najvixe 1.

Na jednodimenzionalni problem pakova�a nailazi se, na primer, uproblemima uprava�a memorijom, kad postoje zahtevi za dodelom memorijskihblokova razliqite veliqine, a dodeiva�e se vrxi iz nekoliko jednakihvelikih blokova memorije. Jednodimenzionalni problem pakova�a je NP-kompletan.

Jedan od mogu�ih heuristiqkih algoritama za rexava�e ovog problemaje staviti 𝑥1 u prvu kutiju, a zatim, za svako 𝑖, staviti 𝑥𝑖 u prvu kutiju ukojoj ima dovono mesta, ili zapoqeti sa novom kutijom, ako nema dovonomesta ni u jednoj od korix�enih kutija. Ovaj algoritam zove se prviodgovaraju�i i, kao xto pokazuje slede�a teorema, dovono je dobar unajgorem sluqaju.

Teorema 10.10. Algoritam prvi odgovaraju�i zahteva najvixe 2𝑚 kutija,gde je 𝑚 najma�i mogu�i broj kutija.

Dokaz. Po zavrxetku algoritma prvi odgovaraju�i ne postoje dve kutijesa iskorix�e�em ma�im od 1/2. Prema tome, ako sa 𝑘 oznaqimo broj upo-trebenih kutija, bi�e 𝑚 ≥

∑𝑛𝑖=1 𝑥𝑖 > (𝑘 − 1)/2, odakle je 𝑘 < 2𝑚 + 1,

odnosno 𝑘 ≤ 2𝑚.

Ispostava se da je granica definisana ovom teoremom priliqno gruba.Konstanta 2 iz teoreme mo�e se sma�iti na 1.7 posle nexto komplikovanijeanalize. Konstanta 1.7 ne mo�e se dae sma�iti, jer postoje primeri

Page 152: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

10.5. Tehnike za rad sa NP-kompletnim problemima 152

u kojima algoritam prvi odgovaraju�i zahteva 1.7 puta vixe kutija odoptimalnog algoritma.

Opisani algoritam mo�e se jednostavno poboxati. Do najgoreg sluqajadolazi kad se mnogo malih brojeva pojavuje na poqetku. Umesto da sebrojevi pakuju u redu kojim nailaze, oni se najpre sortiraju u nerastu�iniz. Prome�eni algoritam zove se opadaju�i prvi odgovaraju�i, i unajgorem sluqaju troxi najvixe oko 1.22 puta vixe kutija od optimalnogalgoritma (teoremu dajemo bez dokaza).

Teorema 10.11. Algoritam opadaju�i prvi odgovaraju�i zahteva najvixe119 𝑚+ 4 kutija, gde je 𝑚 najma�i mogu�i broj kutija.

Konstanta 11/9 je tako�e najboa mogu�a. Prvi odgovaraju�i i opadaju�iprvi odgovaraju�i su jednostavne heuristike. Postoje drugi metodi kojigarantuju jox ma�e konstante. �ihova analiza je u ve�ini sluqajeva kom-plikovana.

Strategije koje smo opisali tipiqne su za heuristiqke algoritme.One odra�avaju prirodne pristupe, odnosno odgovaraju naqinu na koji bineko ruqno rexavao ove probleme. Me�utim, videli smo mnogo sluqajevau kojima se direktni pristupi ponaxaju loxe za velike ulaze. Zbog togaje veoma va�no analizirati ponaxa�e takvih algoritama.

Euklidski problem trgovaqkog putnika

Problem trgovaqkog putnika (TSP, skra�enica od traveling salesmanproblem) je va�an problem sa mnogo primena. Razmotri�emo ovde varijantuTSP sa dopunskim ograniqe�em da te�ine grana odgovaraju euklidskimrastoja�ima.

Problem. Neka je 𝐶1, 𝐶2, . . . , 𝐶𝑛 skup taqaka u ravni koje odgovaraju polo-�ajima 𝑛 gradova. Prona�i Hamiltonov ciklus minimalne du�ine (marx-rutu trgovaqkog putnika) me�u �ima.

Problem je i dae NP-kompletan (ovo tvr�e�e navodimo bez dokaza),ali vide�emo da pretpostavka da su rastoja�a euklidska omogu�uje kon-strukciju pribli�nog algoritma za �egovo rexava�e. Preciznije, ovapretpostavka mo�e se uopxtiti, zame�uju�i je pretpostavkom da rastoja�azadovoavaju nejednakost trougla, odnosno da je rastoja�e izme�u dvaqvora uvek ma�e ili jednako od du�ine proizvonog puta izme�u �ihpreko ostalih qvorova.

Najpre se konstruixe minimalno povezuju�e stablo (MCST; ovde sucene grana �ihove du�ine), xto je mnogo lakxi problem (videti ode-ak 7.8). Tvrdimo da cena stabla nije ve�a od du�ine najboeg ciklusaTSP. Zaista, ciklus TSP sadr�i sve qvorove, pa ga ukla�a�e jedne graneqini povezuju�im stablom, qija cena je ve�a ili jednaka od cene MCST.

Od povezuju�eg stabla se, me�utim, ne dobija direktno ciklus TSP.Posmatrajmo najpre ciklus koji se dobija pretragom u dubinu ovog stabla(polaze�i od proizvonog qvora), i sadr�i granu u obrnutom smeru uvekkad se grana prilikom vra�a�a prolazi u suprotnom smeru (ovaj ciklusodgovara, na primer, obilasku galerije u obliku stabla, sa slikama naoba zida svakog hodnika, idu�i uvek udesno). Svaka grana se tako prolazi

Page 153: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

153 10. NP-kompletnost

taqno dva puta, pa je cena ovog ciklusa najvixe dva puta ve�a od ceneMCST. Na kraju se ovaj ciklus preprava u ciklus TSP, idu�i preqicomuvek kad treba pro�i kroz granu ve� ukuqenu u ciklus (videti sliku 10.8).Drugim reqima, umesto povratka starom granom, idemo direktno do prvognepregledanog qvora. Pretpostavka da su rastoja�a euklidska je va�na,jer obezbe�uje da je uvek direktni put izme�u dva grada bar toliko dobar,koliko bilo koji zaobilazni put.

Teorema 10.12. Du�ina dobijenog ciklusa TSP je ma�a od dvostrukedu�ine minimalnog ciklusa TSP.

ttttt

tt

t t ttt

tt

(a)

ttttt

tt

t t ttt

tt

(b)

-}

Slika 10.8: (a) Minimalno povezuju�e stablo (MCST) (b) ciklus TSPdobijen od MCST polaze�i od sred�eg qvora i idu�i uvek udesno.

Slo�enost. Vremenska slo�enost ovog algoritma odre�ena je brojemkoraka u algoritmu za konstrukciju MCST.

Poboxa�e

Algoritam koji smo upravo opisali mo�e se poboxati na slede�i naqin.�egov "najgrubi" deo je pretvara�e obilaska stabla u ciklus TSP. Takonverzija mo�e se posmatrati i na drugi naqin: ona formira Ojlerovciklus od stabla u kome je svaka grana udvostruqena. Posle toga se kon-struixe ciklus TSP korix�e�em preqica u Ojlerovom ciklusu. Kon-verzija stabla u Ojlerov ciklus mo�e se izvesti mnogo racionalnije.Ojlerov graf mo�e da sadr�i samo qvorove parnog stepena. Posmatrajmosve qvorove neparnog stepena u stablu. Broj takvih qvorova mora bitiparan (u protivnom bi suma stepena qvorova bila neparna, xto je nemogu�e,jer je ta suma jednaka dvostrukom broju grana). Ojlerov graf se od stablamo�e dobiti dodava�em dovonog broja grana, qime se posti�e da stepenisvih qvorova postanu parni. Poxto se ciklus TSP sastoji od Ojlerovogciklusa (sa nekim preqicama), voleli bismo da minimiziramo zbir du�inadodatih grana. Razmotrimo sada taj problem.

Dato je stablo u ravni, a ci je dodati mu neke grane, sa minimalnomsumom du�ina, tako da dobijeni graf bude Ojlerov. Svakom qvoru neparnogstepena mora se dodati bar jedna grana. Pokuxajmo da postignemo cidodava�em taqno jedne grane svakom takvom qvoru. Pretpostavimo da ima

Page 154: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

10.5. Tehnike za rad sa NP-kompletnim problemima 154

2𝑘 qvorova neparnog stepena. Ako dodamo 𝑘 grana, tako da svaka od �ihspaja dva qvora neparnog stepena, onda �e stepeni svih qvorova postatiparni. Problem tako postaje problem upariva�a. Potrebno je prona�iupariva�e minimalne du�ine koje pokriva sve qvorove neparnog stepena.Nala�e�e optimalnog upariva�a mo�e se izvesti za 𝑂(𝑛3) koraka zaproizvoni graf (ovo tvr�e�e navodimo bez dokaza). Konaqni ciklus TSPse zatim dobija od Ojlerovog grafa (koji obuhvata minimalno povezuju�establo i upariva�e minimalne du�ine) korix�e�em preqica. CiklusTSP dobijen ovim algoritmom od stabla sa slike 10.8 prikazan je naslici 10.9.

ttttt

tt

t t ttt

tt

(a)

ttttt

tt

t t ttt

tt

(b)

Slika 10.9: Minimalni Ojlerov ciklus i odgovaraju�i ciklus TSP (a)minimalno povezuju�e stablo sa upariva�em, (b) ciklus TSP dobijen odOjlerovog ciklusa.

Teorema 10.13. Poboxani algoritam daje ciklus TSP qija je du�inanajvixe 1.5 puta ve�a od du�ine minimalnog ciklusa TSP.

Dokaz. Potrebno je oceniti du�inu Ojlerovog ciklusa, jer se du�inaciklusa posle uvo�e�a eventualnih preqica mo�e samo sma�iti. Ojlerovciklus se sastoji od stabla i upariva�a. Oznaqimo sa𝑄 minimalni ciklusTSP, a sa |𝑄| �egovu du�inu. Videli smo ve� da je du�ina stabla ma�aili jednaka od |𝑄|; prema tome, dovono je dokazati da du�ina upariva�ane prelazi |𝑄|/2. Ciklus 𝑄 sadr�i sve qvorove. Neka je 𝐷 skup qvorovaneparnog stepena u polaznom stablu. Za skup 𝐷 mogu se formirati dvadisjunktna upariva�a sa zbirom du�ina ≤ |𝑄| na slede�i naqin (videtisliku 10.10, na kojoj su zaokru�eni qvorovi iz 𝐷). Zapoqi�emo sa pro-izvonim qvorom 𝑣 ∈ 𝐷 i uparujemo ga sa sa najbli�im qvorom (u smerukazake na satu) du� ciklusa 𝑄. Posle toga nastava se sa upariva�emu istom smeru. Ako upareni qvorovi nisu susedi u 𝑄, onda je rastoja�eizme�u �ih ma�e ili jednako od du�ine puta koji ih povezuje u 𝑄 (zbognejednakosti trougla). Ovaj proces daje jedno upariva�e. Drugo upariva�edobija se ponava�em istog procesa u smeru suprotnom od kazake na satu.Suma du�ina oba upariva�a je najvixe |𝑄|, videti sliku 10.10. Me�utim,poxto je 𝑀 upariva�e minimalne te�ine u 𝐷, �egova du�ina je ma�a

Page 155: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

155 . NP-kompletnost

ili jednaka od du�ine boeg od dva spomenuta upariva�a (sa zbirom |𝑄|),pa je dakle ma�a ili jednaka od |𝑄|/2.

tt

ttt

ttt t th

hh

hhh

Slika 10.10: Dva upariva�a qija suma du�ina ne prelazi du�inuminimalnog ciklusa TSP.

Nala�e�e upariva�a minimalne te�ine znatno je slo�enije od nala�e�aminimalnog povezuju�eg stabla, ali se time dobija boa granica. Navedeniprimer ilustruje osnovnu karakteristiku ovog tipa algoritama: uopxtavase lakxi problem| ili se oslabuju (relaksiraju) neki elementi polaznogproblema | i tako se formira heuristika.

10.6 Rezime

Prethodna poglava su mo�da izazvala optimizam u vezi sa mogu�nox�ukonstrukcije dobrih algoritama. Ovo poglave treba da nas pribli�irealnosti. Ima mnogo va�nih problema koji se, na�alost, ne mogu rexitielegantnim, efikasnim algoritmima. Potrebno je da prepoznajemo takveprobleme i da im pronalazimo neoptimalna, pribli�na rexe�a. Prinapadu na neki problem na raspolaga�u su dva pristupa. Mo�e se pokuxatisa tehnikama redukcije da bi se problem rexio, ili mogu iskoristititehnike uvedene u ovom poglavu, i pokazati da je problem NP-kompletan.Da bi se izbegli mnogobrojni bezuspexni pokuxaji pre izbora ispravnogpristupa, potrebno je razviti intuiciju za ocenu te�ine problema.

Page 156: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo
Page 157: Konstrukcija i analiza algoritamapoincare.matf.bg.ac.rs/~vesnap/kaa/kaa.pdftama, programa, sigurnosti operativnog sistema, konzistentnosti sistema specifikacija. Osnovno pravilo izvo

Literatura

[1] K. Rosen, Discrete Mathematics and Its Applications, McGraw Hill, 2006.

[2] T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduction toAlgorithms, Second Edition, MIT Press, 2002.

[3] M. �ivkovi�, Algoritmi, Matematiqki fakultet, 2000.

157