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 uredi

Razmatramo 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 uredi

Master 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 uredi

Generički oblik uredi

Ako   gde je   (koristeći O-notaciju)

sledi da je:

 

Primer uredi

 

Iz 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 uredi

Generički oblik uredi

Ako 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 uredi

Generički oblik uredi

Ako je tačno:

  gde je  

sledi:

 

Primer uredi

 

Iz 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 uredi

Sledeć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 uredi

Algoritam 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

  1. ^ Duke University, "Big-Oh for Recursive Functions: Recurrence Relations", http://www.cs.duke.edu/~ola/ap/recurrence.html
  2. ^ Massachusetts Institute of Technology (MIT), "Master Theorem: Practice Problems and Solutions", http://www.csail.mit.edu/~thies/6.046-web/master.pdf[mrtva veza]
  3. ^ a b Dartmouth College, http://www.math.dartmouth.edu/archive/m19w03/public_html/Section5-2.pdf