Resolución de la relación de recurrencia

8

Quiero demostrar que la complejidad temporal de un algoritmo es poliglogarítmica en la escala de entrada.

La relación de recurrencia de este algoritmo es , donde .T(2n)T(n)+T(na)a(0,1)

Parece que para algunos depende de . Pero no puedo probar esta desigualdad. ¿Cómo resolver esta relación de recurrencia?T(n)logβnβa

Solo quiero obtener un pollogarítmico de límite superior en n.

Qiang Li
fuente
1
a<1 , supongo? Además, ¿revisó nuestra pregunta de referencia ? No creo que el caso específico que está preguntando esté explícitamente cubierto allí, pero se describen muchas técnicas.
David Richerby
1
No hay un teorema "maestro" para este tipo que yo sepa; cf esta pregunta mía y esta . (cc @DavidRicherby)
Raphael

Respuestas:

4

Tu suposición está mal. De hecho, no es difícil demostrar que asumirT(n)>0 para todos n>0, entonces T(n)=Ω(logkn)para todos k. De hecho, para que esto suceda, necesitamos eso lo suficientemente granden nosotros tendriamos

(1+ak)logkn=logkn+logknalogk(2n),
o 1+akklognlogn+log2, que se mantiene siempre [1+akk1]lognlog2, y en particular para lo suficientemente grande n.

¿Cuál es el orden correcto de crecimiento de T(n)? Para intentar averiguarlo, escribeS(n)=T(2n). La recurrencia ahora se convierte en

S(n+1)=S(n)+S(an).
Para grande n, esperaríamos S(n+1)S(n) estar muy cerca de S(n)y heurísticamente esperaríamos que S satisfacer S(n)=S(an). Esta ecuación parece un poco difícil de resolver, pero una solución aproximada esS(n)=nΘ(logn). Sustituyendo de nuevo, deducimos que el orden de crecimiento deT(n) debería ser algo como (logn)Θ(loglogn).
Yuval Filmus
fuente
Parece que logk(2n)=(log2+logn)k. El límite inferior no se sostiene.
Qiang Li
@ QiangLi Gracias por detectar el error. Sin embargo, el límite inferior se mantiene una vez que el argumento se modifica adecuadamente.
Yuval Filmus