Prueba rigurosa de validez de la suposición

20

El teorema maestro es una herramienta hermosa para resolver ciertos tipos de recurrencias . Sin embargo, a menudo pasamos por alto una parte integral al aplicarlo. Por ejemplo, durante el análisis de Mergesort pasamos felizmente de

T(n)=T(n2)+T(n2)+f(n)

a

T(n)=2T(n2)+f(n)

considerando solo . Nos aseguramos de que este paso es válido, es decir, , porque comporta "bien". En general, suponemos que para el denominador común.n=2kTΘ(T)Tn=bkb

Es fácil construir recurrencias que no permiten esta simplificación usando vicioso . Por ejemplo, la recurrencia anterior para / confTT

f(n)={1,n=2kn,else

producirá mediante el uso del teorema maestro de la manera habitual, pero hay claramente una subsecuencia que crece como \ Theta (n \ log n) . Vea aquí para otro ejemplo más artificial.Θ(n)Θ(nlogn)

¿Cómo podemos hacer esto "bien" riguroso? Estoy bastante seguro de que la monotonicidad es suficiente, pero ni siquiera la simple recurrencia de Mergesort es monótona; Hay un componente periódico (que se domina asintóticamente). ¿Es suficiente investigar f , y cuáles son las condiciones necesarias y suficientes en f que aseguran el funcionamiento del teorema maestro?

Rafael
fuente
Otra versión de los mismos resultados es el teorema de Akra-Bazzi "Sobre la solución de ecuaciones de recurrencia lineal", Optimización computacional y aplicaciones, 10 (2), 195-210 (1998), o Drmota y Szpankowski "Un teorema maestro para la división discreta y conquistar recurrencias ", SODA'11 < dl.acm.org/citation.cfm?id=2133036.2133064 >.
vonbrand
2
Aquí hay un enlace al documento anterior, que no está detrás de un muro de pago.
Paresh
1
IIRC esto se discute en CLRS capítulo 4.
Kaveh
@Kaveh Gracias por el puntero. En su mayor parte, lo llaman "descuido tolerable"; esto está bien en su contexto, porque suponen que solo deriva una hipótesis, que luego se probará que es correcta por inducción. Mencionan los peligros (4.6). En 4.6.2 dan una prueba, pero es de alto nivel y no dicen explícitamente qué restricciones deben establecerse en Por lo tanto, parece ser algo así como " T tal que las matemáticas pasan", lo que creo que principalmente requiere que f tenga una "buena" clase Θ . TTfΘ
Raphael
En general, cuando no tiene tamaños similares, puede usar el método de Akra-Bazzi, que es la generalización del teorema maestro, seguro de cómo cambiar una función específica a algo que funciona en este teorema necesita un pequeño truco, y para algo como la fusión, esto es lo que normalmente usa la gente para comprobar la complejidad del tiempo.

Respuestas:

10

A lo largo de esta respuesta, suponemos y T no son negativos. Nuestra prueba funciona siempre que f = Θ ( g ) para algunos monótonos g . Esto incluye su ejemplo de Mergesort, en el que f = Θ ( n ) y cualquier función que tenga una tasa de crecimiento polinomial (o incluso Θ ( n a log b n ) ).fTf=Θ(g)gf=Θ(n)Θ(nalogbn)

Consideremos primero el caso de que es monótono no decreciente (relajaremos esta suposición más adelante). Nos concentramos en la recurrencia de su muestra T ( n ) = T ( n / 2 ) + T ( n / 2 ) + f ( n ) . Esta recurrencia necesita dos casos base, T ( 0 ) y T ( 1 ) . Suponemos que T ( 0 )f

T(n)=T(n/2)+T(n/2)+f(n).
T(0)T(1) , que también nos relajamos más adelante.T(0)T(1)

Afirmo que es monótono no decreciente. Probamos por inducción completa que T ( n + 1 ) T ( n ) . Esto se da para n = 0 , así que sea n 1 . Tenemos T ( n + 1 )T(n)T(n+1)T(n)n=0n1 Esto implica que T(2 log 2 n)T(n)T(2 log 2 n). Entonces siT(2

T(n+1)=T((n+1)/2)+T((n+1)/2)+f(n+1)T(n/2)+T(n/2)+f(n)=T(n).
T(2log2n)T(n)T(2log2n).
, hemos terminado. Este es siempre el caso si la solución para las potencias de dos es de la forma T ( n ) = Θ ( n a log b n ) .T(2m)=Θ(T(2m+1))T(n)=Θ(nalogbn)

Ahora relajemos la suposición de que . Considere una nueva recurrencia T ' definida exactamente de la misma manera, solo T ( 0 ) = T ( 1 ) = min ( T ( 0 ) , T ( 1 ) ) . Podemos demostrar por inducción que T ( n ) T ( n )T(0)T(1)TT(0)=T(1)=min(T(0),T(1))T(n)T(n). Del mismo modo, podemos definir una nueva recurrencia satisfactoria T ( 0 ) = T ( 1 ) = max ( T ( 0 ) , T ( 1 ) ) , y luego T ( n ) T ( n ) . Invocando el teorema del Maestro, vemos que T = Θ ( h ) y T = Θ (TT(0)=T(1)=max(T(0),T(1))T(n)T(n)T=Θ(h) para lamismafunción h , y entonces T = Θ ( h ) también.T=Θ(h)hT=Θ(h)

Ahora relajemos la suposición de que es monótono. Suponga que f = Θ ( g ) para alguna función monótona g . Por lo tanto c g ( n ) f ( n ) C g ( n ) para algunos c , C > 0 y n suficientemente grande. Suponemos por simplicidad que n = 0 ; El caso general se puede manejar como en el párrafo anterior. Nuevamente definimos dos recurrencias T 'ff=Θ(g)gcg(n)f(n)Cg(n)c,C>0nn=0 reemplazando f con c g , C g (respectivamente). Una vez más, el teorema del Maestro dará el mismo resultado (hasta múltiplos constantes), que también es idéntico (hasta múltiplos constantes) a lo que obtendríamos resolviendo la recurrencia original solo en potencias de dos.T,Tfcg,Cg

Yuval Filmus
fuente
1
Finalmente pude leer esto más de cerca. ¡Genial gracias! Pensé que lo notaría para futuros lectores (porque me tropecé con eso): no es una restricción, ya que solo es falso para el T superpolinomial y el El teorema maestro no se aplica a tal. T(2m)Θ(T(2m+1))T
Raphael
Intenté escribir su prueba con más detalle y me quedé atascado probando su última oración, "que también es idéntica (...) a lo que obtendríamos resolviendo la recurrencia original solo en potencias de dos". En particular, tenemos que demostrar que terminamos en el mismo caso del teorema de Master para , f y C g . Esto no es un problema para los casos 1 y 2, pero no puedo mostrar la existencia de c < 1 para el caso 3 (véase la versión en CLRS, p94 en la 3ª edición). ¿Pensaste en eso o trabajaste con una versión similar a la de Wikipedia ? cgfCgc<1
Raphael
Este es un tecnicismo. Si entonces el problema desaparece, ver por ejemplo users.encs.concordia.ca/~chvatal/notes/master.pdf . La función g satisfará automáticamente las condiciones. Me imagino que lo mismo funciona para f = Θ ( n α log β n ) y así sucesivamente. Alternativamente, simplemente establezca esta condición directamente en g en lugar de en f : debe existir alguna g "regular" que satisfaga f = Θ ( g ) .f=Θ(nα)gf=Θ(nαlogβn)gfgf=Θ(g)
Yuval Filmus
gf:n2ngcgCg
Sigo pensando que es un tecnicismo. La condición que le preocupa es una condición técnica. Para la mayoría de las funciones que aparecen en la práctica, la condición se mantendrá. Estás preguntando por la condición más general bajo la cual pasa el bosquejo de prueba anterior. Esa es una pregunta interesante que soy demasiado vago para responder.
Yuval Filmus