fbpx
Wikipedia

Teorema maestro

En el análisis de algoritmos, el teorema maestro proporciona una solución sencilla en términos asintóticos (usando una Cota superior asintótica) para ecuaciones de recurrencia que ocurren en muchos algoritmos recursivos tales como en el Algoritmo divide y vencerás. Fue popularizado por el libro Introducción a los algoritmos por Cormen, Leiserson, Rivest, y Stein, en el cual fue tanto introducido como probado formalmente. No todas las ecuaciones de recurrencia pueden ser resueltas con el uso del teorema maestro.

Introducción

Considere un problema que puede ser resuelto a través de un algoritmo recursivo como el siguiente:

 procedimiento T( n : tamaño del problema ) definición: if n < 1 then exit

Hacer trabajo f(n)

T(n/b) T(n/b) ...repetir una cantidad de a veces... T(n/b) fin procedimiento

En el algoritmo mostrado arriba se divide el problema original en una cantidad menor de subproblemas de manera recursiva, cada uno de estos subproblemas siendo del tamaño de n/b. Esto podría ser visualizado como la construcción de un árbol de llamadas al problema, siendo cada nodo del árbol una instancia recursiva del mismo y sus hijos siendo instancias de las llamadas subsiguientes. En el ejemplo de arriba, cada nodo tendría un número a de hijos. Cada nodo hará la cantidad de trabajo correspondiente al tamaño del subproblema n, pasado a esa instancia en particular, estando la cantidad de trabajo realizado determinado por  . El trabajo total realizado por todas las llamadas del árbol es la suma de los trabajos hechos por cada uno de los nodos del árbol.

Algoritmos como el descrito arriba pueden ser representados por una relación de recurrencia como la siguiente:  . Esta relación de recurrencia puede ser sucesivamente sustituida en sí misma y expandida hasta obtener una expresión que represente la cantidad total de trabajo.[1]

El teorema maestro nos permite fácilmente calcular el tiempo de ejecución de este tipo de algoritmos recursivos en notación de Cota superior asintótica, sin la necesidad de hacer la expansión de las distintas llamadas recursivas.

Forma genérica

El teorema maestro sirve para resolver relaciones recursivas de la siguiente forma:

 

En la aplicación de análisis de algoritmos recursivos, las constantes y funciones toman los siguientes significados:

  • n es el tamaño del problema a resolver.
  • a es el número de subproblemas en la recursión.
  • n/b el tamaño de cada subproblema. (Aquí se asume que todos los subproblemas tienen el mismo tamaño)
  • f (n) es el costo del trabajo hecho fuera de las llamadas recursivas, que incluye el costo de la división del problema y el costo de unir las soluciones de los subproblemas.

Luego, es posible realizar una cota en notación Big O en los siguientes tres casos:

Caso 1

Forma Genérica

Si   donde   (usando Cota superior asintótica)

entonces:

 

Ejemplo

 

Como puede verse en la fórmula de arriba:

 , entonces
 , donde  

Luego, vemos que se cumple la condición del caso 1:

 .

Luego por el teorema maestro tenemos que

 

Caso 2

Forma Genérica

Si es verdad que para alguna constante k ≥ 0, que:

  donde  

Entonces:

 

Ejemplo

 

Como podemos ver en la fórmula de arriba, las variables tienen los siguientes valores:

 
 
 
 
  donde  

Luego, nos fijamos que cumpla la condición del caso 2:

 ,luego, se cumple que  

Entonces por el segundo caso del teorema maestro:

 

Dando de esa manera que la relación de recurrencia de T(n) es Θ(n log n).

Caso 3

Forma Genérica

Si es verdad que:

  donde  

Y si es verdad además que:

  para alguna constante   y suficientemente grande  

Entonces:

 

Ejemplo

 

Como puede verse en la fórmula de arriba, las variables obtienen los siguientes valores:

 
 , donde  

Luego se comprueba que satisface la condición del caso 3:

 ,y por lo tanto se cumple que,  

La condición también se cumple:

 , eligiendo  

Entonces por el tercer caso del teorema maestro:

 

Por consiguiente la relación de recurrencia T(n) es in Θ(n2).

Casos Irresolubles

Los siguientes casos no pueden ser resueltos a través de la utilización del teorema maestro:[2]

  •  
    a no es una constante; el número de subproblemas debe ser fijo.
  •  
    f(n) debe ser polinomial.
  •  
    a<1 no puede darse el caso de que haya menos de un subproblema.
  •  
    f(n) que es el tiempo de trabajo, no puede ser negativo.
  •  
    Caso 3 pero hay una violación de regularidad.

Bibliografía

Véase también

Referencias

  1. Duke University, "Big-Oh for Recursive Functions: Recurrence Relations", http://www.cs.duke.edu/~ola/ap/recurrence.html
  2. Massachusetts Institute of Technology (MIT), "Master Theorem: Practice Problems and Solutions", http://www.csail.mit.edu/~thies/6.046-web/master.pdf (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
  •   Datos: Q922367

teorema, maestro, análisis, algoritmos, teorema, maestro, proporciona, solución, sencilla, términos, asintóticos, usando, cota, superior, asintótica, para, ecuaciones, recurrencia, ocurren, muchos, algoritmos, recursivos, tales, como, algoritmo, divide, vencer. En el analisis de algoritmos el teorema maestro proporciona una solucion sencilla en terminos asintoticos usando una Cota superior asintotica para ecuaciones de recurrencia que ocurren en muchos algoritmos recursivos tales como en el Algoritmo divide y venceras Fue popularizado por el libro Introduccion a los algoritmos por Cormen Leiserson Rivest y Stein en el cual fue tanto introducido como probado formalmente No todas las ecuaciones de recurrencia pueden ser resueltas con el uso del teorema maestro Indice 1 Introduccion 2 Forma generica 2 1 Caso 1 2 1 1 Forma Generica 2 1 2 Ejemplo 2 2 Caso 2 2 2 1 Forma Generica 2 2 2 Ejemplo 2 3 Caso 3 2 3 1 Forma Generica 2 3 2 Ejemplo 3 Casos Irresolubles 4 Bibliografia 5 Vease tambien 6 ReferenciasIntroduccion EditarConsidere un problema que puede ser resuelto a traves de un algoritmo recursivo como el siguiente pre style overflow x auto b procedimiento b T n tamano del problema b definicion b b if b n lt 1 b then exit b br br Hacer trabajo f n br br T n b T n b repetir una cantidad de i a i veces T n b b fin procedimiento b pre En el algoritmo mostrado arriba se divide el problema original en una cantidad menor de subproblemas de manera recursiva cada uno de estos subproblemas siendo del tamano de n b Esto podria ser visualizado como la construccion de un arbol de llamadas al problema siendo cada nodo del arbol una instancia recursiva del mismo y sus hijos siendo instancias de las llamadas subsiguientes En el ejemplo de arriba cada nodo tendria un numero a de hijos Cada nodo hara la cantidad de trabajo correspondiente al tamano del subproblema n pasado a esa instancia en particular estando la cantidad de trabajo realizado determinado por f n displaystyle f n El trabajo total realizado por todas las llamadas del arbol es la suma de los trabajos hechos por cada uno de los nodos del arbol Algoritmos como el descrito arriba pueden ser representados por una relacion de recurrencia como la siguiente T n a T n b f n displaystyle T n a T left frac n b right f n Esta relacion de recurrencia puede ser sucesivamente sustituida en si misma y expandida hasta obtener una expresion que represente la cantidad total de trabajo 1 El teorema maestro nos permite facilmente calcular el tiempo de ejecucion de este tipo de algoritmos recursivos en notacion de Cota superior asintotica sin la necesidad de hacer la expansion de las distintas llamadas recursivas Forma generica EditarEl teorema maestro sirve para resolver relaciones recursivas de la siguiente forma T n a T n b f n donde a 1 b gt 1 displaystyle T n a T left frac n b right f n mbox donde a geq 1 mbox b gt 1 En la aplicacion de analisis de algoritmos recursivos las constantes y funciones toman los siguientes significados n es el tamano del problema a resolver a es el numero de subproblemas en la recursion n b el tamano de cada subproblema Aqui se asume que todos los subproblemas tienen el mismo tamano f n es el costo del trabajo hecho fuera de las llamadas recursivas que incluye el costo de la division del problema y el costo de unir las soluciones de los subproblemas Luego es posible realizar una cota en notacion Big O en los siguientes tres casos Caso 1 Editar Forma Generica Editar Si f n O n c displaystyle f n O left n c right donde c lt log b a displaystyle c lt log b a usando Cota superior asintotica entonces T n 8 n log b a displaystyle T n Theta left n log b a right Ejemplo Editar T n 8 T n 2 1000 n 2 displaystyle T n 8T left frac n 2 right 1000n 2 Como puede verse en la formula de arriba a 8 b 2 f n 1000 n 2 displaystyle a 8 b 2 f n 1000n 2 entonces f n O n c displaystyle f n O left n c right donde c 2 displaystyle c 2 Luego vemos que se cumple la condicion del caso 1 log b a log 2 8 3 gt c displaystyle log b a log 2 8 3 gt c Luego por el teorema maestro tenemos que T n 8 n log b a 8 n 3 displaystyle T n Theta left n log b a right Theta left n 3 right Caso 2 Editar Forma Generica Editar Si es verdad que para alguna constante k 0 que f n 8 n c log k n displaystyle f n Theta left n c log k n right donde c log b a displaystyle c log b a Entonces T n 8 n c log k 1 n displaystyle T n Theta left n c log k 1 n right Ejemplo Editar T n 2 T n 2 10 n displaystyle T n 2T left frac n 2 right 10n Como podemos ver en la formula de arriba las variables tienen los siguientes valores a 2 displaystyle a 2 b 2 displaystyle b 2 c 1 displaystyle c 1 f n 10 n displaystyle f n 10n f n 8 n c log k n displaystyle f n Theta left n c log k n right donde c 1 k 0 displaystyle c 1 k 0 Luego nos fijamos que cumpla la condicion del caso 2 log b a log 2 2 1 displaystyle log b a log 2 2 1 luego se cumple que c log b a displaystyle c log b a Entonces por el segundo caso del teorema maestro T n 8 n log b a log k 1 n 8 n 1 log 1 n 8 n log n displaystyle T n Theta left n log b a log k 1 n right Theta left n 1 log 1 n right Theta left n log n right Dando de esa manera que la relacion de recurrencia de T n es 8 n log n Caso 3 Editar Forma Generica Editar Si es verdad que f n W n c displaystyle f n Omega left n c right donde c gt log b a displaystyle c gt log b a Y si es verdad ademas que a f n b k f n displaystyle af left frac n b right leq kf n para alguna constante k lt 1 displaystyle k lt 1 y suficientemente grande n displaystyle n Entonces T n 8 f n displaystyle T left n right Theta left f n right Ejemplo Editar T n 2 T n 2 n 2 displaystyle T n 2T left frac n 2 right n 2 Como puede verse en la formula de arriba las variables obtienen los siguientes valores a 2 b 2 f n n 2 displaystyle a 2 b 2 f n n 2 f n W n c displaystyle f n Omega left n c right donde c 2 displaystyle c 2 Luego se comprueba que satisface la condicion del caso 3 log b a log 2 2 1 displaystyle log b a log 2 2 1 y por lo tanto se cumple que c gt log b a displaystyle c gt log b a La condicion tambien se cumple 2 n 2 4 k n 2 displaystyle 2 frac n 2 4 leq kn 2 eligiendo k 1 2 displaystyle k 1 2 Entonces por el tercer caso del teorema maestro T n 8 f n 8 n 2 displaystyle T left n right Theta left f n right Theta left n 2 right Por consiguiente la relacion de recurrencia T n es in 8 n2 Casos Irresolubles EditarLos siguientes casos no pueden ser resueltos a traves de la utilizacion del teorema maestro 2 T n 2 n T n 2 n n displaystyle T n 2 n T left frac n 2 right n n a no es una constante el numero de subproblemas debe ser fijo T n 2 T n 2 n log n displaystyle T n 2T left frac n 2 right frac n log n f n debe ser polinomial T n 0 5 T n 2 n displaystyle T n 0 5T left frac n 2 right n a lt 1 no puede darse el caso de que haya menos de un subproblema T n 64 T n 8 n 2 log n displaystyle T n 64T left frac n 8 right n 2 log n f n que es el tiempo de trabajo no puede ser negativo T n T n 2 n 2 cos n displaystyle T n T left frac n 2 right n 2 cos n Caso 3 pero hay una violacion de regularidad Bibliografia EditarThomas H Cormen Charles E Leiserson Ronald L Rivest and Clifford Stein Introduction to Algorithms Second Edition MIT Press and McGraw Hill 2001 ISBN 0 262 03293 7 Sections 4 3 The master method and 4 4 Proof of the master theorem pp 73 90 Michael T Goodrich and Roberto Tamassia Algorithm Design Foundation Analysis and Internet Examples Wiley 2002 ISBN 0 471 38365 1 The master theorem including the version of Case 2 included here which is stronger than the one from CLRS is on pp 268 270 Vease tambien EditarEcuacion recurrenteReferencias Editar Duke University Big Oh for Recursive Functions Recurrence Relations http www cs duke edu ola ap recurrence html Massachusetts Institute of Technology MIT Master Theorem Practice Problems and Solutions http www csail mit edu thies 6 046 web master pdf enlace roto disponible en Internet Archive vease el historial la primera version y la ultima Datos Q922367Obtenido de https es wikipedia org w index php title Teorema maestro amp oldid 119557344, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos