Variables cambiantes en las relaciones de recurrencia

20

Actualmente, estoy estudiando Introducción a los algoritmos (CLRS) y hay un método particular que describen en el libro para resolver las relaciones de recurrencia.

El siguiente método puede ilustrarse con este ejemplo. Supongamos que tenemos la recurrencia

T(n)=2T(n)+logn

Inicialmente hacen la sustitución m = lg (n), y luego la conectan nuevamente a la recurrencia y obtienen:

T(2m)=2T(2m2)+m

Hasta este punto lo entiendo perfectamente. El siguiente paso es el que me confunde.

Ahora "renombran" la recurrencia y dejan , lo que aparentemente produceS ( m ) = T ( 2 m )S(m)S(m)=T(2m)

S(m)=2S(m/2)+m

Por alguna razón, no me queda claro por qué funciona este cambio de nombre, y solo parece una trampa. ¿Alguien puede explicar esto mejor?

goooser
fuente

Respuestas:

15

Ciertamente no es trampa. Piensa en el cálculo cómo se puede usar la sustitución para resolver una integral difícil. La sustitución hace que la ecuación sea más manejable para la manipulación. Además, la sustitución puede transformar recurrencias algo complejas en familiares.

S(m)=T(2m)T(2m)=2T(2m2)+mS(m/2)=T(2m2)S ( k ) = T ( 2 k ) S ( m ) S ( m ) = 2 S ( m / 2 ) + m . S O ( m log m ) S T ( n ) mk=m/2S(k)=T(2k)S(m)

S(m)=2S(m/2)+m.
SO(mlogm)ST(n)mTO(lognloglogn)
Nicholas Mancuso
fuente
Correcto, entiendo totalmente cómo la sustitución ayuda a facilitar los problemas y cómo volver a conectar los valores para obtener la complejidad en términos de n. Supongo que mi pregunta es, después de dejar S (m) = T (2 ^ m), ¿cómo derivas S (m / 2)? No es obvio para mí por alguna razón. Para ser más específico, ¿cómo concluye que T (2 ^ (m / 2)) = S (m / 2). Parece que en la recurrencia T, el tamaño del subproblema se está enraizando, mientras que en la recurrencia S, el tamaño del subproblema se está
La única parte que no entiendo es cuando dices "Observa que, S (m / 2) = T (2 ^ (m / 2))" Esa es la única parte que no es obvia para mí. Estoy acostumbrado a la idea de hacer sustituciones variables, pero realmente no estoy acostumbrado a la idea de sustituir una recurrencia completa.
Ah ok, esa última edición lo hizo por mí. Ahora está claro, gracias!
1
Tengo una pequeña duda Si escribo función S () en términos de kque estoy recibiendo por debajo de la ecuación S (k) = 2S (k / 2) + m ¿Cómo puedo obtener sustituto mparak
Atinesh
4

¿Qué medios es que y son dos funciones diferentes que producen el mismo resultado, teniendo entradas como y respectivamente.S T m 2 mS(m)=T(2m)STm2m

La función se puede considerar como un operador con dos pasos internos (de lo contrario, composición de funciones):S

  1. SOperador : Entrada: , Salida:2 mm2m

  2. TOperador (función original): Entrada: salida de la primera parte, Salida: como se definió originalmente.

Por lo tanto, las transiciones son:

m2mT(2m)=S(m)
m22m/2T(2m/2)=S(m2).
Vivek Anand Sampath
fuente