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.


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).

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.