Master theorem
De master theorem biedt een methode (master method) die het bepalen van de looptijd van recurrente betrekkingen in de algoritmiek gemakkelijk maakt. De master theorem kan echter niet de complexiteit van alle recurrente betrekkingen bepalen.
Inhoud |
Theorie [bewerken]
Men kan recurrente betrekkingen als volgt weergeven:
(waar a>1 en constant en b>1 en constant). Deze formule beschrijft de looptijd van een algoritme, waarin een probleem van grootte
in
deelproblemen wordt gedeeld en de deelproblemen een grootte van
hebben. Elke aanroep van de formule heeft een looptijd van
.
Men onderscheidt drie gevallen in de master theorem. Welk geval van toepassing is, is afhankelijk van de verhouding tussen
en
. Als
, dan is geval 1 van toepassing; als
dan is geval 2 van toepassing en als
dan is geval 3 van toepassing.
Geval 1:
[bewerken]
Bij geval 1 dient
kleiner te zijn dan
. Of formeel gezegd,
voor een
.
Als daaraan wordt voldaan, dan volgt daaruit dat 
Voorbeeld [bewerken]
Zij
. Dan is
,
,
en
. Zoals duidelijk te zien is, is
kleiner dan
. In de formele voorwaarde valt dit goed te zien door
te nemen.
Er geldt dus
. De bovenstaande functie is dus in
.
Geval 2:
[bewerken]
Bij geval 2 dient
gelijk te zijn aan
. Of formeel gezegd,
.
Als daaraan wordt voldaan, dan volgt daaruit dat
.
Voorbeeld [bewerken]
Zij
. Dan is
,
,
en
. Zoals te zien is, is
gelijk aan
, of formeel:
.
Er geldt dus
. De bovenstaande functie is dus in
.
Geval 3:
[bewerken]
Bij geval 3 dient
groter te zijn dan
. Of formeel gezegd,
voor een
.
Voor geval 3 geldt daarnaast een tweede voorwaarde, de regulariteitsvoorwaarde. Er dient te gelden dat
voor een c<1. Als deze niet geldt, dan kan de looptijd niet met de master theorem bepaald worden.
Als er aan deze voorwaarden wordt voldaan, dan volgt daaruit dat
.
Voorbeeld [bewerken]
Zij
. Dan is
,
,
en
. Hier is dus
groter dan
.
Nu moet er nog gecontroleerd worden of de regulariteitsvoorwaarde geldt:
(voor c<1), het substitueren van de bekende variabelen levert op:
(voor c<1). Als er voor
bijvoorbeeld het getal
wordt genomen, dan is er dus aan de regulariteitsvoorwaarde voldaan.
Omdat er aan beide voorwaarden is voldaan, geldt er dus
. De bovenstaande functie is dus in
.
Bronnen, noten en/of referenties
|