¿Teorema maestro no aplicable?

11

Dada la siguiente ecuación recursiva

T(n)=2T(n2)+nlogn
queremos aplicar el teorema de Master y observar que

nlog2(2)=n.

Ahora verificamos los dos primeros casos para ε>0 , es decir si

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

Los dos casos no están satisfechos. Entonces tenemos que verificar el tercer caso, es decir si

  • nlognΩ(n1+ε) .

Creo que la tercera condición tampoco se cumple. ¿Pero por qué? ¿Y cuál sería una buena explicación de por qué el teorema del Maestro no se puede aplicar en este caso?

Joaquín
fuente
44
El caso tres no está satisfecho porque no es para cualquier . Use la regla de l'Hôpital en el límitelognΩ(nϵ)ϵ>0lognnϵ
sdcvvc
1
Una vez que demuestre que ninguno de los casos se aplica, eso es prueba de que no puede aplicar el teorema maestro como se indicó.
Raphael
¿Quién necesita el teorema maestro? Usa árboles de recursión.
JeffE

Respuestas:

7

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest y Clifford Stein (2ª edición, 2001) prueban los tres casos del Teorema maestro a los que se refiere en la Introducción a los algoritmos .

Se observa correctamente que la recurrencia en cuestión se encuentra entre el Caso 2 y el Caso 3. Es decir, crece más rápido que pero más lento que para cualquier .f(n)=nlognnn1+εε>0

Sin embargo, el teorema puede generalizarse para cubrir esta recurrencia. Considerar

Caso 2A: Considere para algunos .f(n)=Θ(nlogbalogbkn)k0

Este caso se reduce al caso 2 cuando . Es intuitivamente claro que a lo largo de cada rama del árbol de recurrencia se agrega veces. Un bosquejo de una prueba más formal se puede encontrar a continuación. El resultado final es quek=0f(x)Θ(logbn)

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

En la Introducción a los algoritmos, esta afirmación se deja como un ejercicio.

Aplicando esta declaración a la recurrencia en cuestión, finalmente obtenemos

T(n)=Θ(nlog2n).

Se pueden encontrar más detalles sobre el teorema maestro en la excelente (en mi humilde opinión) página de Wikipedia .

Como @sdcvvc señala en los comentarios para demostrar que el Caso 3 no se aplica aquí, se puede invocar la regla de L'Hospital que dice que para cualquier función y diferenciable en la vecindad de . Aplicando esto a y se puede demostrar que

limxcf(x)g(x)=limxcf(x)g(x)
f(x)g(x)cf(n)=nlogng(n)=n1+εlognΘ(n1+ε).

Boceto de la prueba del teorema maestro para el caso 2A.

Esta es una reproducción de partes de la prueba de Introducción a los algoritmos con las modificaciones necesarias .

Primero probamos el siguiente Lema.

Lema A:

Considere una función dondeEntonces

g(n)=j=0logbn1ajh(n/bj)
h(n)=nlogbalogbkn.g(n)=nlogbalogbk+1n.

Prueba: Sustituyendo en la expresión por se puede obtener h(n)g(n)

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

QED

Si es una potencia exacta de dada una recurrencia se puede reescribir como Sustituyendo con , moviendo afuera y aplicando Lemma A obtenemosnb

T(n)=aT(n/b)+f(n),T(1)=Θ(1)
T(n)=Θ(nlogba)+j=0logbn1ajT(n/bj).
f(n)Θ(nlogbalogbkn)Θ

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

Generalizar esto a un entero arbitrario que no es una potencia de está más allá del alcance de esta publicación.nb

Dmitri Chubarov
fuente
1

El teorema de Akra-Bazzi es una generalización estricta del teorema maestro. Como beneficio adicional, su prueba es una tormenta de integrales que harán girar la cabeza ;-)

En cualquier caso, Sedgewick en su "Introducción al análisis de algoritmos" argumenta de manera convincente que uno debe esforzarse por probar asintóticos de tipo .T(n)g(n)

vonbrand
fuente