Teorema del maestro non applicabile?


11

Data la seguente equazione ricorsiva

T(n)=2T(n2)+nlog⁡n
vogliamo applicare il teorema del Maestro e notare che

nlog2⁡(2)=n.

Ora controlliamo i primi due casi per ε>0 , cioè se

  • nlog⁡n∈O(n1−ε) o
  • nlog⁡n∈Θ(n) .

I due casi non sono soddisfatti. Quindi dobbiamo controllare il terzo caso, cioè se

  • nlog⁡n∈Ω(n1+ε) .

Penso che la terza condizione non sia soddisfatta. Ma perché? E quale sarebbe una buona spiegazione del perché il teorema del Maestro non può essere applicato in questo caso?



4
Il caso tre non è soddisfatto perché il non è Ω ( n ϵ ) per qualsiasi ϵ > 0 . Usa la regola di l'Hôpital sul registro limite nlog⁡nΩ(nϵ)ϵ>0log⁡nnϵ
— sdcvvc,

1
Una volta dimostrato che nessuno dei due casi si applica, questa è la prova che non è possibile applicare il teorema principale come indicato.
— Raffaello

Chi ha bisogno del teorema del maestro? Usa alberi di ricorsione.
— JeffE,

Risposte:


7

I tre casi del Teorema del Maestro a cui ti riferisci sono provati nell'Introduzione agli algoritmi di Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest e Clifford Stein (2a Edizione, 2001).

Si osserva correttamente che la ricorrenza in questione rientra tra il caso 2 e il caso 3. Questo è cresce più velocemente di n ma più lentamente di n 1 + ε per qualsiasi ε > 0 .f(n)=nlog⁡nnn1+εε>0

Tuttavia, il teorema può essere generalizzato per coprire questa ricorrenza. Prendere in considerazione

f(n)=Θ(nlogb⁡alogbk⁡n)k≥0

k=0f(x)Θ(logb⁡n)

T(n)=Θ(nlogb⁡alogbk+1⁡n)

Nella Introduzione agli algoritmi questa affermazione è lasciata come esercizio.

T(n)=Θ(n⋅log2⁡n).

Maggiori dettagli sul Teorema del Maestro possono essere trovati nell'eccellente (imho) pagina di Wikipedia .

limx→cf(x)g(x)=limx→cf′(x)g′(x)
f(x)g(x)cf(n)=nlog⁡ng(n)=n1+εlog⁡n∉Θ(n1+ε).

Schizzo della prova del teorema del maestro per il caso 2A.

Questa è una riproduzione di parti della dimostrazione da Introduzione agli algoritmi con le modifiche necessarie .

Innanzitutto dimostriamo il seguente Lemma.

Lemma A:

Considera una funzione doveQuindi

g(n)=∑j=0logb⁡n−1ajh(n/bj)
h(n)=nlogb⁡alogbk⁡n.g(n)=nlogb⁡alogbk+1⁡n.

Prova: sostituendo nell'espressione con si può ottenere h(n)g(n)

g(n)=nlogb⁡alogbk⁡n∑j=0logb⁡n−1(ablogb⁡a)j=nlogb⁡alogbk+1⁡n.

QED

Se è una potenza esatta di data una ricorrenza si può riscriverlo come Sostituendo con , spostando all'esterno e applicando Lemma A otteniamonb

T(n)=aT(n/b)+f(n),T(1)=Θ(1)
T(n)=Θ(nlogb⁡a)+∑j=0logb⁡n−1ajT(n/bj).
f(n)Θ(nlogb⁡alogbk⁡n)Θ

T(n)=Θ(nlogb⁡alogbk+1⁡n).

La generalizzazione di questo in un numero intero arbitrario che non è una potenza di va oltre lo scopo di questo post.bnb


1

Il teorema di Akra-Bazzi è una rigorosa generalizzazione del teorema principale. Come bonus la sua prova è una tormenta di integrali che ti farà girare la testa ;-)

In ogni caso, Sedgewick nella sua "Introduzione all'analisi degli algoritmi" sostiene in modo convincente che si dovrebbe sforzarsi di provare gli asintotici di tipo .T(n)∼g(n)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.