Päälause toistuvuussuhteista

Master-lausetta käytetään algoritmien analysoinnissa  asymptoottisen arvion saamiseksi rekursiivisille suhteille ( rekursiiviset yhtälöt ), joita usein syntyy " hajoa ja hallitse " -tyyppisten algoritmien analysoinnissa ( hajoa ja hallitse ) esimerkiksi estimoinnissa niiden toteutusaika. Lauseen esitteli ja todisti John Bentley, Doroten Haken ja James Haken vuonna 1980. Lause levitettiin suosituksi kirjassa Algorithms: Construction and Analysis ( Thomas Cormen , Charles Letherston , Ronald Rivest , Clifford Stein ), jossa se esitettiin.

Kaikkia rekursiivisia suhteita ei voida ratkaista päälauseen avulla. Siitä on useita yleistyksiä, mukaan lukien Akra-Bazzi-menetelmä .

Kuvaus

Harkitse ongelmaa, joka voidaan ratkaista rekursiivisella algoritmilla :

funktio T(syöte n : tehtävän koko): jos n < jokin vakio k : ratkaise n: n tehtävä ei-rekursiivisesti muuten : määritä joukko alitehtäviä, joista jokainen on kooltaan n/b kutsua funktiota T rekursiivisesti jokaiselle osatehtävälle yhdistää ratkaisuja loppu

Yllä olevassa esimerkissä algoritmi jakaa rekursiivisesti alkuperäisen koon n tehtävän useiksi uusiksi alitehtäviksi, joista jokainen on kooltaan n/b . Tällainen osio voidaan esittää puhelupuuna, jossa jokainen solmu vastaa rekursiivista puhelua ja solmusta lähtevät haarat vastaavat myöhempiä alitehtävien kutsuja. Jokaisella solmulla on haarat . Lisäksi jokainen solmu tuottaa nykyisen alitehtävän n kokoa vastaavan määrän työtä (välitetty tälle funktiokutsulle) suhteen mukaan . Algoritmin työn kokonaismäärä määritellään kaiken työn summana annetun puun solmuissa.

Tällaisten algoritmien laskennallinen monimutkaisuus voidaan esittää rekursiivisena relaationa . Se voidaan ratkaista useilla lausekkeen korvauksilla . [yksi]

Päälauseen avulla on mahdollista laskea nopeasti sellaiset suhteet, jolloin voidaan saada asymptoottinen arvio rekursiivisten algoritmien ajoajasta O(n) -merkinnässä (Θ-merkintä) ilman substituutioita.

Yleinen lomake

Päälause käsittelee seuraavia toistuvuussuhteita:

Algoritmien analysoinnissa vakiot ja funktiot tarkoittavat:

Päälause antaa meille mahdollisuuden saada asymptoottinen arvio seuraaville kolmelle tapaukselle:

Vaihtoehto 1

Yleinen lomake

Jos , ja suhde

sitten:

Esimerkki

Kaavan mukaan vakioiden arvot ja ongelman ei-rekursiivisen osan monimutkaisuus ovat:

, missä

Sitten tarkistamme, täyttyykö 1. vaihtoehdon suhde:

.

Näin ollen

(Tässä esimerkissä tarkka toistumisratkaisu antaa , jos ).

Vaihtoehto 2

Yleinen lomake

Jos jollekin vakiolle k  ≥ 0 pätee seuraava:

missä

sitten:

Esimerkki

Kaavan mukaan vakioiden arvot ja ongelman ei-rekursiivisen osan monimutkaisuus ovat:

missä

Vaihtoehdon 2 suhteen tarkistaminen:

, ja siten

Päälauseen toisen version mukaisesti:

Siten toistuvuusrelaatio T ( n ) on Θ( n log n ).

(Tämä tulos voidaan varmistaa sen suhteen tarkalla ratkaisulla, jossa , jollei .)

Vaihtoehto 3

Yleinen lomake

Jos suoritetaan:

missä

ja se on myös totta, että:

joillekin vakioille ja riittävän suurille (ns. säännöllisyysehto )

sitten:

Esimerkki

Vakioarvot ja funktiot:

, missä

Tarkistamme, että vaihtoehdon 3 suhde täyttyy:

, ja siten

Säännöllisyysehto pätee myös :

, valittaessa

Siksi päälauseen kolmannen version mukaan:

Tämä rekursiivinen relaatio T ( n ) on yhtä suuri kuin Θ ( n 2 ), joka on sama kuin f ( n ) alkuperäisessä kaavassa.

(Tämän tuloksen vahvistaa tarkka toistumisratkaisu, jossa , jollei .)

Lausekkeet, joita ei ratkaista päälauseella

Seuraavia suhteita ei voida ratkaista päälauseella: [2]

  • a ei ole vakio, päälause vaatii vakiomäärän osatehtäviä;
  • f(n):n ja välillä on ei-polynomiriippuvuus;
  • a < 1, mutta päälause vaatii vähintään yhden osatehtävän;
  • f(n) on negatiivinen;
  • lähellä vaihtoehtoa 3, mutta säännöllisyysehto ei täyty .

Toisessa esimerkissä ja ero voidaan ilmaista muodossa . Se osoittaa, että millä tahansa vakiolla . Siksi ero ei ole polynomi ja päälause ei päde.

Sovellus joihinkin algoritmeihin

Algoritmi Toistuva suhde Työtunnit Merkintä
Binäärihaku Päälause, 2. vaihtoehto: , jossa [3]
Binaaripuun läpikulku Päälause, versio 1: missä [3]
Strassenin algoritmi Päälause, versio 1: , jossa [4]
Optimaalinen lajiteltu matriisihaku Akra-Bazzi - lause saamista varten
Yhdistä lajittelu Päälause, 2. vaihtoehto: , missä

Katso myös

  • Akra-Bazzi menetelmä

Muistiinpanot

  1. Duke University, "Big-Oh for Recursive Functions: Recurrence Relations", http://www.cs.duke.edu/~ola/ap/recurrence.html Arkistoitu 22. kesäkuuta 2012 Wayback Machinessa
  2. Massachusetts Institute of Technology (MIT), "Master Theorem: Practice Problems and Solutions", http://www.csail.mit.edu/~thies/6.046-web/master.pdf  (kuollut linkki)
  3. 1 2 Dartmouth College, http://www.math.dartmouth.edu/archive/m19w03/public_html/Section5-2.pdf Arkistoitu 21. huhtikuuta 2017 Wayback Machinessa
  4. Päälause diskreeteille jakaa ja hallitse -toistoille . Haettu 19. elokuuta 2016. Arkistoitu alkuperäisestä 18. huhtikuuta 2016.

Kirjallisuus

  • Kormen, T., Leizerson, C., Rivest, R., Stein, C. Algoritmit: rakentaminen ja analyysi = Introduction to Algorithms. - 2. - M .: Williams, 2005. - 1296 s. — ISBN 5-8459-0857-4 . Luvut 4.3 (päälause) ja 4.4 (todistus)
    • Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford. Johdatus algoritmeihin. – 2. - MIT Press ja McGraw-Hill, 2001. - ISBN 0-262-53196-8 . Kohdat 4.3 (Mestarimenetelmä) ja 4.4 (Mastarilauseen todistus), ss. 73-90. (Englanti)
  • Michael T. Goodrich ja Roberto Tamassia . Algoritmien suunnittelu: perusta, analyysi ja Internet-esimerkit . Wiley, 2002. ISBN 0-471-38365-1 . Päälause (mukaan lukien tähän sisältyvä versio tapauksesta 2, joka on vahvempi kuin CLRS:n versio) on sivulla pp. 268-270. (Englanti)
  • LUKU 5. REKURSIO JA TOISTUMISET 5.2 Päälause arkistoitu 21. huhtikuuta 2017 Wayback Machinessa , CS 21/Math 19 - Kurssimuistiinpanot arkistoitu 21. heinäkuuta 2010 Wayback Machinessa , Ken Bogart ja Cliff Math, Computer Sciencete, Discrete.