Teorema del maestro non applicabile?


11

Data la seguente equazione ricorsiva

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

nlog2(2)=n.

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

  • nlognO(n1ε) o
  • nlognΘ(n) .

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

  • nlognΩ(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 nlognΩ(nϵ)ϵ>0lognnϵ
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)=nlognnn1+εε>0

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

f(n)=Θ(nlogbalogbkn)k0

k=0f(x)Θ(logbn)

T(n)=Θ(nlogbalogbk+1n)

Nella Introduzione agli algoritmi questa affermazione è lasciata come esercizio.

T(n)=Θ(nlog2n).

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

limxcf(x)g(x)=limxcf(x)g(x)
f(x)g(x)cf(n)=nlogng(n)=n1+εlognΘ(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=0logbn1ajh(n/bj)
h(n)=nlogbalogbkn.g(n)=nlogbalogbk+1n.

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

g(n)=nlogbalogbknj=0logbn1(ablogba)j=nlogbalogbk+1n.

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)=Θ(nlogba)+j=0logbn1ajT(n/bj).
f(n)Θ(nlogbalogbkn)Θ

T(n)=Θ(nlogbalogbk+1n).

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.