¿Prueba Big-O para una relación de recurrencia?


8

Esta pregunta es bastante específica en la forma de los pasos tomados para resolver el problema.

Dado prueba que .T(n)=2T(2n/3)+O(n)T(n)=O(n2)

Entonces los pasos fueron los siguientes. Queremos demostrar que .T(n)≤cn2

T(n)=2T(2n/3)+O(n)≤2c(2n/3)2+an≤(8/9)(cn2)+an
y luego mi profesor continuó:

T(n)≤cn2+(an−(1/9)cn2),
que sale a:

T(n)≤cn2 for any c>=9a.

Mi pregunta es, ¿cómo pudieron cambiar de 8/9 a 1/9 al introducir un nuevo término? ¿Esto está permitido? Ella nunca explicó, esto solo estaba en sus soluciones.


2
No veo un nuevo término introducido? Tenemos que cn2+an−(1/9)cn2 simplifica a (8/9)cn2+an como en la línea anterior. Entonces las dos líneas son en realidad iguales. Tal vez te estás preguntando por qué uno podría querer hacer esto.
— user340082710

También estoy asumiendo que la línea final debería leer cn2 en lugar de ck2 .
— user340082710

@ZacharyFrenette Ah, tienes razón. en ese caso, no estaba seguro de cómo hizo la simplificación. ¿Por qué elegiría separar los términos de esa manera? Hay muchas formas de dividir (8/9). Creo que sé por qué uno querría hacer esto, para anular ese extra de ? De lo contrario, la desigualdad no se mantendrá. También gracias por señalar el error tipográfico, se solucionará. Si desea comentar como respuesta, puedo aceptarlo. an
— D. Johnson

Respuestas:


12

Como señaló, la razón para dividir el término en dos partes es poder cancelar término. Si pasamos directamente de , entonces nos quedamos atascados ya que no podemos hacer nada con término. Al dividirlo de la manera descrita, esto permite que sea ​​mayor que when , lo que le da el resultado deseado ya que para tales valores de .an(8/9)cn2+an≤cn2+anan(1/9)cn2anc≥9aan−(1/9)cn2≤0c

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.