Hovedsætning om gentagelsesrelationer

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 .

Beskrivelse

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 ende

I 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.

Generel form

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:

Mulighed 1

Generel form

Hvis , og forholdet

derefter:

Eksempel

Ifølge formlen er værdierne af konstanterne og kompleksiteten af ​​den ikke-rekursive del af problemet:

, hvor

Derefter kontrollerer vi, om forholdet til 1. mulighed er opfyldt:

.

Følgelig,

(For dette eksempel giver den nøjagtige gentagelsesløsning , forudsat ).

Mulighed 2

Generel form

Hvis for en eller anden konstant k  ≥ 0 gælder følgende:

hvor

derefter:

Eksempel

Ifølge formlen er værdierne af konstanterne og kompleksiteten af ​​den ikke-rekursive del af problemet:

hvor

Kontrol af forholdet mellem mulighed 2:

, og dermed

I 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 .)

Mulighed 3

Generel form

Hvis udført:

hvor

og det er også rigtigt, at:

for nogle konstante og store nok (den såkaldte regularitetstilstand )

derefter:

Eksempel

Konstante værdier og funktioner:

, hvor

Vi kontrollerer, at forholdet fra mulighed 3 er opfyldt:

, og dermed

Regelmæssighedsbetingelsen gælder også :

, når du vælger

Derfor, 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 .)

Udtryk, der ikke er løst af hovedsætningen

Følgende relationer kan ikke løses ved hjælp af hovedsætningen: [2]

  • a er ikke en konstant, hovedsætningen kræver et konstant antal delopgaver;
  • mellem f(n) og der er en ikke-polynomiel afhængighed;
  • a < 1, men hovedsætningen kræver mindst én delopgave;
  • f(n) er negativ;
  • tæt på mulighed 3, men regelmæssighedsbetingelsen er ikke opfyldt .

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.

Anvendelse til nogle algoritmer

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

Se også

  • Akra-Bazzi metode

Noter

  1. Duke University, "Big-Oh for Recurrence Functions: Recurrence Relations", http://www.cs.duke.edu/~ola/ap/recurrence.html Arkiveret 22. juni 2012 på Wayback Machine
  2. Massachusetts Institute of Technology (MIT), "Master Theorem: Practice Problems and Solutions", http://www.csail.mit.edu/~thies/6.046-web/master.pdf  (dødt link)
  3. 1 2 Dartmouth College, http://www.math.dartmouth.edu/archive/m19w03/public_html/Section5-2.pdf Arkiveret 21. april 2017 på Wayback Machine
  4. En Master Theorem for Discrete Divide and Conquer-gentagelser . Hentet 19. august 2016. Arkiveret fra originalen 18. april 2016.

Litteratur

  • Kormen, T., Leizerson, C., Rivest, R., Stein, C. Algoritmer: konstruktion og analyse = Introduktion til algoritmer. - 2. - M. : Williams, 2005. - 1296 s. — ISBN 5-8459-0857-4 . Kapitel 4.3 (hovedsætning) og 4.4 (bevis)
    • Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford. Introduktion til algoritmer. — 2. - MIT Press og McGraw-Hill, 2001. - ISBN 0-262-53196-8 . Afsnit 4.3 (Mastermetoden) og 4.4 (Bevis for mastersætningen), s. 73-90. (Engelsk)
  • Michael T. Goodrich og Roberto Tamassia . Algoritmedesign: Fundament-, analyse- og interneteksempler . Wiley, 2002. ISBN 0-471-38365-1 . Hovedsætningen (inklusive versionen af ​​Case 2 inkluderet her, som er stærkere end den fra CLRS) er på s. 268-270. (Engelsk)
  • KAPITEL 5. REKURSION OG GENTAGELSER 5.2 Mastersætningen arkiveret 21. april 2017 på Wayback Machine , CS 21/Math 19 - Kursusnotater arkiveret 21. juli 2010 på Wayback Machine , Ken Bogart og Cliff Stein: Discrete Math in Computer Science.