Mastersætningen bruges i analysen af algoritmer til at opnå et asymptotisk estimat for rekursive relationer ( rekursive ligninger ), som ofte opstår i analysen af algoritmer af typen " divide and conquer " ( divide and conquer ), for eksempel ved estimering deres udførelsestid. Sætningen blev introduceret og bevist af John Bentley, Doroten Haken og James Haken i 1980. Sætningen blev populariseret i bogen Algorithms: Construction and Analysis ( Thomas Cormen , Charles Letherston , Ronald Rivest , Clifford Stein ), hvori den blev givet.
Ikke alle rekursive relationer kan løses ved hjælp af hovedsætningen. Der er flere generaliseringer af det, herunder Akra-Bazzi-metoden .
Overvej et problem, der kan løses med en rekursiv algoritme :
funktion T(input n : opgavestørrelse): hvis n < en eller anden konstant k : løs problemet for n ikke-rekursivt ellers :definere et sæt af underopgaver, hver af størrelse n/b kalde funktion T rekursivt for hver delopgave kombinere løsninger endeI ovenstående eksempel opdeler algoritmen rekursivt den oprindelige opgave af størrelse n i flere nye underopgaver, hver af størrelse n/b . En sådan partition kan repræsenteres som et opkaldstræ, hvor hver node svarer til et rekursivt opkald, og grene, der udgår fra noden, svarer til efterfølgende opkald til underopgaver. Hver knude vil have en gren. Hver node producerer også den mængde arbejde, der svarer til størrelsen af den aktuelle underopgave n (overført til dette funktionskald) i henhold til relationen . Algoritmens samlede mængde arbejde er defineret som summen af alt arbejdet i knuderne i det givne træ.
Den beregningsmæssige kompleksitet af sådanne algoritmer kan repræsenteres som en rekursiv relation . Det kan løses ved flere substitutioner af udtrykket . [en]
Ved hjælp af hovedsætningen er det muligt hurtigt at beregne sådanne relationer, hvilket gør det muligt at opnå et asymptotisk estimat af køretiden for rekursive algoritmer i O(n) -notationen (Θ-notationen) uden substitutioner.
Hovedsætningen overvejer følgende gentagelsesrelationer:
Som anvendt til analyse af algoritmer, betyder konstanter og funktioner:
Hovedsætningen giver os mulighed for at opnå et asymptotisk estimat for følgende tre tilfælde:
Hvis , og forholdet
derefter:
EksempelIfølge formlen er værdierne af konstanterne og kompleksiteten af den ikke-rekursive del af problemet:
, hvorDerefter kontrollerer vi, om forholdet til 1. mulighed er opfyldt:
.Følgelig,
(For dette eksempel giver den nøjagtige gentagelsesløsning , forudsat ).
Hvis for en eller anden konstant k ≥ 0 gælder følgende:
hvorderefter:
Eksempel
Ifølge formlen er værdierne af konstanterne og kompleksiteten af den ikke-rekursive del af problemet:
hvorKontrol af forholdet mellem mulighed 2:
, og dermedI overensstemmelse med 2. version af hovedsætningen:
Således er gentagelsesrelationen T ( n ) Θ( n log n ).
(Dette resultat kan verificeres ved den nøjagtige løsning af forholdet, hvori , med forbehold for .)
Hvis udført:
hvorog det er også rigtigt, at:
for nogle konstante og store nok (den såkaldte regularitetstilstand )derefter:
EksempelKonstante værdier og funktioner:
, hvorVi kontrollerer, at forholdet fra mulighed 3 er opfyldt:
, og dermedRegelmæssighedsbetingelsen gælder også :
, når du vælgerDerfor, ifølge den 3. version af hovedsætningen:
Denne rekursive relation T ( n ) er lig med Θ( n 2 ), hvilket er det samme som f ( n ) i den oprindelige formel.
(Dette resultat bekræftes af den nøjagtige gentagelsesløsning, hvor , med forbehold for .)
Følgende relationer kan ikke løses ved hjælp af hovedsætningen: [2]
I det andet eksempel kan forskellen mellem og udtrykkes som . Det viser, at for enhver konstant . Derfor er forskellen ikke et polynomium, og hovedsætningen gælder ikke.
Algoritme | Tilbagevendende forhold | Arbejdstimer | Bemærk |
---|---|---|---|
Binær søgning | Hovedsætning, 2. mulighed: , hvor [3] | ||
Binær trægennemgang | Hovedsætning, version 1: hvor [3] | ||
Strassen algoritme | Hovedsætning, version 1: , hvor [4] | ||
Optimal Sorteret Matrix-søgning | Akra-Bazzi teorem for og for at få | ||
Flet sortering | Hovedsætning, 2. mulighed: , hvor |