Huvudsats om återfallsrelationer

Mastersatsen används vid analys av  algoritmer för att erhålla en asymptotisk uppskattning av rekursiva relationer ( rekursiva ekvationer ), som ofta uppstår vid analys av algoritmer av typen " dela och erövra " ( dela och erövra ), till exempel vid skattning deras avrättningstid. Teoremet introducerades och bevisades av John Bentley, Doroten Haken och James Haken 1980. Teoremet populariserades i boken Algorithms : Construction and Analysis ( Thomas Cormen , Charles Letherston , Ronald Rivest , Clifford Stein ) där den gavs.

Alla rekursiva relationer kan inte lösas med hjälp av huvudsatsen. Det finns flera generaliseringar av det, inklusive Akra-Bazzi-metoden .

Beskrivning

Tänk på ett problem som kan lösas med en rekursiv algoritm :

funktion T(ingång n : uppgiftsstorlek): om n < någon konstant k : lös problemet för n icke-rekursivt annars :definiera en uppsättning av deluppgifter, var och en av storlek n/b anropa funktion T rekursivt för varje deluppgift kombinera lösningar slutet

I exemplet ovan delar algoritmen rekursivt upp den ursprungliga uppgiften av storlek n i flera nya deluppgifter, var och en av storleken n/b . En sådan partition kan representeras som ett anropsträd, i vilket varje nod motsvarar ett rekursivt anrop, och grenar som utgår från noden motsvarar efterföljande anrop för deluppgifter. Varje nod kommer att ha en gren. Varje nod producerar också mängden arbete som motsvarar storleken på den aktuella deluppgiften n (som skickas till detta funktionsanrop) enligt relationen . Algoritmens totala mängd arbete definieras som summan av allt arbete i noderna i det givna trädet.

Beräkningskomplexiteten hos sådana algoritmer kan representeras som en rekursiv relation . Det kan lösas genom flera substitutioner av uttrycket . [ett]

Med hjälp av huvudsatsen är det möjligt att snabbt beräkna sådana samband, vilket gör det möjligt att få en asymptotisk uppskattning av körtiden för rekursiva algoritmer i O(n) -notationen (Θ-notationen) utan substitutioner.

Allmän form

Huvudsatsen tar hänsyn till följande återkommande relationer:

Såsom tillämpat på analys av algoritmer, anger konstanter och funktioner:

Huvudsatsen tillåter oss att få en asymptotisk uppskattning för följande tre fall:

Alternativ 1

Allmän form

Om och förhållandet

sedan:

Exempel

Enligt formeln är värdena för konstanterna och komplexiteten hos den icke-rekursiva delen av problemet:

, var

Sedan kontrollerar vi om förhållandet för det första alternativet är uppfyllt:

.

Följaktligen,

(För det här exemplet ger den exakta återkommande lösningen , förutsatt ).

Alternativ 2

Allmän form

Om för någon konstant k  ≥ 0 gäller följande:

var

sedan:

Exempel

Enligt formeln är värdena för konstanterna och komplexiteten hos den icke-rekursiva delen av problemet:

var

Kontrollera förhållandet mellan alternativ 2:

, och följaktligen

I enlighet med den andra versionen av huvudsatsen:

Således är återfallsrelationen T ( n ) Θ( n logn ) .

(Detta resultat kan verifieras genom den exakta lösningen av relationen där , med förbehåll för .)

Alternativ 3

Allmän form

Om det körs:

var

och det är också sant att:

för vissa konstant och tillräckligt stor (det så kallade regularitetstillståndet )

sedan:

Exempel

Konstanta värden och funktioner:

, var

Vi kontrollerar att relationen från alternativ 3 är uppfylld:

, och följaktligen

Regelbundenhetsvillkoret gäller också :

, när du väljer

Därför, enligt den 3:e versionen av huvudsatsen:

Denna rekursiva relation T ( n ) är lika med Θ( n 2 ), vilket är samma som f ( n ) i den ursprungliga formeln.

(Detta resultat bekräftas av den exakta återkommande lösningen där , med förbehåll för .)

Uttryck som inte löses av huvudsatsen

Följande samband kan inte lösas med hjälp av huvudsatsen: [2]

  • a är inte en konstant, huvudsatsen kräver ett konstant antal delproblem;
  • mellan f(n) och det finns ett icke-polynomiskt beroende;
  • a < 1, men huvudsatsen kräver minst en deluppgift;
  • f(n) är negativ;
  • nära alternativ 3, men regelbundenhetsvillkoret är inte uppfyllt .

I det andra exemplet kan skillnaden mellan och uttryckas som . Det visar att för varje konstant . Därför är skillnaden inte ett polynom och huvudsatsen gäller inte.

Tillämpning på vissa algoritmer

Algoritm Återkommande relation Arbetstimmar Notera
Binär sökning Huvudsats, 2:a alternativet: , där [3]
Binär trädpassering Huvudsats, version 1: där [3]
Strassen algoritm Huvudsats, version 1: , där [4]
Optimal sorterad matrissökning Akra-Bazzi teorem för och för att få
Slå samman sortering Huvudsats, 2:a alternativet: , där

Se även

  • Akra-Bazzi-metoden

Anteckningar

  1. Duke University, "Big-Oh for Recurrive Functions: Recurrence Relations", http://www.cs.duke.edu/~ola/ap/recurrence.html Arkiverad 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öd länk)
  3. 1 2 Dartmouth College, http://www.math.dartmouth.edu/archive/m19w03/public_html/Section5-2.pdf Arkiverad 21 april 2017 på Wayback Machine
  4. En Master Theorem for Discrete Divide and Conquer recurrences . Hämtad 19 augusti 2016. Arkiverad från originalet 18 april 2016.

Litteratur

  • Kormen, T., Leizerson, C., Rivest, R., Stein, C. Algoritmer: konstruktion och analys = Introduktion till algoritmer. - 2:a. - M. : Williams, 2005. - 1296 sid. — ISBN 5-8459-0857-4 . Kapitel 4.3 (huvudsats) och 4.4 (bevis)
    • Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford. Introduktion till algoritmer. — 2:a. - MIT Press och McGraw-Hill, 2001. - ISBN 0-262-53196-8 . Avsnitt 4.3 (Mästarmetoden) och 4.4 (Bevis för mastersatsen), s. 73-90. (Engelsk)
  • Michael T. Goodrich och Roberto Tamassia . Algoritmdesign: grund, analys och internetexempel . Wiley, 2002. ISBN 0-471-38365-1 . Mastersatsen (inklusive versionen av fall 2 som ingår här, som är starkare än den från CLRS) finns på sid. 268-270. (Engelsk)
  • KAPITEL 5. REKURSION OCH RECURSIONER 5.2 Mastersatsen arkiverad 21 april 2017 vid Wayback Machine , CS 21/Math 19 - Kursanteckningar arkiverad 21 juli 2010 vid Wayback Machine , Ken Bogart och Cliff Stein: Discrete Math in Computer Science.