Master teorema
U analizi algoritama master teorema predstavlja osnovu za rešavanje rekurentnih jednačina koje se javljaju pri analizi mnogih podeli-pa-vladaj algoritama. Predstavljena je i dokazana u knjizi Introduction to Algorithms koju su napisali Kormen (engl. Cormen) , Liserson (engl. Leiserson) , Riverst (engl. Rivest) i Stein (engl. Stein). Ne mogu se sve rekurentne jednačine rešiti master teoremom. Generalizacija master teoreme obuhvata Akra-Bazi metod.
Uvod
urediRazmatramo problem koji se može rešiti sledećim rekurzivnim algoritmom:
procedure T(n : size of problem ) defined as: if n < 1 then exit
Do work of amount f(n)
T(n/b) T(n/b) ...repeat for a total of a times... T(n/b) end procedure
U gornjem algoritmu problem rekurzivno delimo na niz podproblema veličine n/b. Ovo se može zamisliti kao formiranje stabla u kome svaki čvor predstavlja jedan rekurzivni poziv, a njegova deca dalje rekurzivne pozive u okviru tekućeg poziva. Svaki od čvorova obavlja deo posla u zavisnosti od veličine podproblema n koji mu je prosleđen od roditelja i predstavljen sa . Ukupan posao koji obavi celo drvo je suma poslova koje obavi svaki čvor.
Ovakvi algoritmi mogu da se predstave rekurentnom jednačinom . Ova rekurzivna jednačina se može sukcesivno zameniti sama u sebe i proširiti u izraz koji predstavlja ukupan odrađeni posao.[1]
Na ovaj način se, koristeći master teoremu, lako može izračunati vreme izvršavanja ovakvih rekurzivnih algoritama i predstaviti u O-notaciji bez razvijanja rekurentne jednačine.
Generički oblik
urediMaster teorema rešava rekurentne jednačine sledećeg oblika:
Konstante i funkcije imaju sledeći značaj:
- n -veličina problema.
- a -broj podproblema u rekurziji.
- n/b -veličina svakog podproblema (Ovde se pretpostavlja da su svi podproblemi u suštini iste veličine).
- f (n) -cena operacija obavljenih van rekurzivnih poziva(obuhvata operacije deljenja problema na podprobleme i spajanja rešenja dobijenih kao rešenja podproblema).
Može se odrediti asimptotska granica u sledeća tri slučaja:
Prvi slučaj
urediGenerički oblik
urediAko gde je (koristeći O-notaciju)
sledi da je:
Primer
urediIz gornje jednačine se može zaključiti da promenljive uzimaju sledeće vrednosti:
- , gde je
Dalje proveravamo da li je zadovoljen uslov prvog slučaja master teoreme:
- , dakle:
Zadovoljen je uslov, pa iz prvog slučaja master teoreme sledi:
Prema tome, data rekurentna jednačina T(n) pripada Θ(n3).
Ovaj rezultat se može potvrditi direktnim rešavanjem rekurentne jednačine: , pod pretpostavkom da je .
Drugi slučaj
urediGenerički oblik
urediAko za neku konstantu k ≥ 0, važi da je:
- gde je
sledi:
Primer
uredi
Iz prethodne jednačine promenljive uzimaju sledeće vrednosti:
- gde je
Dalje proveravamo da li je zadovoljen uslov druog slučaja master teoreme:
- , dakle:
Zadovoljen je uslov, pa iz drugog slučaja master teoreme sledi:
Prema tome, data rekurentna jednačina T(n) pripada Θ(n log n).
Ovaj rezultat se može potvrditi direktnim rešavanjem rekurentne jednačine: , pod pretpostavkom da je .
Treći slučaj
urediGenerički oblik
urediAko je tačno:
- gde je
sledi:
Primer
urediIz prethodne jednačine promenljive uzimaju sledeće vrednosti:
- , gde je
Dalje proveravamo da li je zadovoljen uslov trećeg slučaja master teoreme:
- , dakle:
Zadovoljen je uslov, pa iz trćeg slučaja master teoreme sledi:
Prema tome, data rekurentna jednačina T(n) pripada Θ(n2), što je u skladu sa f (n) iz početne jednačine.
Ovaj rezultat se može potvrditi direktnim rešavanjem rekurentne jednačine: , pod pretpostavkom da je .
Primeri nerešivih jednačina
urediSledeće jednačine se ne mogu rešiti master teoremom[2]:
-
- a nije konstanta
-
- nepolinomijalna razlika između f(n) i (pogledaj ispod)
-
- a<1 ne može imati manje od jednog podproblema
-
- f(n) nije pozitivna
-
- treći slučaj, ali nije ispravno
U drugom primeru iznad razlika između i može se izraziti odnosom . Jasno je da za bilo koju konstantu . Stoga, razlika nije polinomijalna i master teorema ne važi.
Primena na poznate algoritme
urediAlgoritam | Rekurentna jednačina | Vreme izvršenja | Komentar |
---|---|---|---|
Binarna pretraga | Primenjena master teorema slučaj: , gde je [3] | ||
Binarno stablo pretrage | Primenjena master teorema slučaj: gde je [3] | ||
Optimalna pretraga sortirane matrice | Primenjena Akra-Bazzi theorem za i da se dobije | ||
Sortiranje spajanjem | Primenjena master teorema slučaj: , gde je |
Reference
uredi- ^ Duke University, "Big-Oh for Recursive Functions: Recurrence Relations", http://www.cs.duke.edu/~ola/ap/recurrence.html
- ^ Massachusetts Institute of Technology (MIT), "Master Theorem: Practice Problems and Solutions", http://www.csail.mit.edu/~thies/6.046-web/master.pdf[mrtva veza]
- ^ a b Dartmouth College, http://www.math.dartmouth.edu/archive/m19w03/public_html/Section5-2.pdf