stringtranslate.com

Teorema maestro (análisis de algoritmos)

En el análisis de algoritmos , el teorema maestro para recurrencias de divide y vencerás proporciona un análisis asintótico para muchas relaciones de recurrencia que ocurren en el análisis de algoritmos de divide y vencerás . El enfoque fue presentado por primera vez por Jon Bentley , Dorothea Blostein (née Haken) y James B. Saxe en 1980, donde se describió como un "método unificador" para resolver tales recurrencias. [1] El nombre "teorema maestro" fue popularizado por el libro de texto de algoritmos ampliamente utilizado Introducción a los algoritmos de Cormen , Leiserson , Rivest y Stein .

No todas las relaciones de recurrencia pueden resolverse mediante este teorema; sus generalizaciones incluyen el método de Akra-Bazzi .

Introducción

Consideremos un problema que pueda resolverse utilizando un algoritmo recursivo como el siguiente:

procedimiento p(entrada x de tamaño n ): si  n < alguna constante k : Resuelva x directamente sin recursión , de lo contrario : Cree subproblemas de x , cada uno con un tamaño n / b. Llame al procedimiento p recursivamente en cada subproblema. Combine los resultados de los subproblemas
Árbol de soluciones.

El algoritmo anterior divide el problema en una serie de subproblemas de forma recursiva, siendo cada subproblema de tamaño n / b . Su árbol de soluciones tiene un nodo para cada llamada recursiva, siendo los hijos de ese nodo las otras llamadas realizadas a partir de esa llamada. Las hojas del árbol son los casos base de la recursión, los subproblemas (de tamaño menor que k ) que no recurren. El ejemplo anterior tendría un nodo hijo en cada nodo que no sea hoja. Cada nodo realiza una cantidad de trabajo que corresponde al tamaño del subproblema n pasado a esa instancia de la llamada recursiva y dado por . La cantidad total de trabajo realizado por todo el algoritmo es la suma del trabajo realizado por todos los nodos del árbol.

El tiempo de ejecución de un algoritmo como el p anterior en una entrada de tamaño n , generalmente denotado , se puede expresar mediante la relación de recurrencia

donde es el tiempo necesario para crear los subproblemas y combinar sus resultados en el procedimiento anterior. Esta ecuación puede sustituirse sucesivamente en sí misma y expandirse para obtener una expresión para la cantidad total de trabajo realizado. [2] El teorema maestro permite convertir muchas relaciones de recurrencia de esta forma a notación Θ directamente, sin hacer una expansión de la relación recursiva.

Forma genérica

El teorema maestro siempre produce límites asintóticamente ajustados para las recurrencias de algoritmos de dividir y vencer que dividen una entrada en subproblemas más pequeños de igual tamaño, resuelven los subproblemas recursivamente y luego combinan las soluciones de los subproblemas para dar una solución al problema original. El tiempo para un algoritmo de este tipo se puede expresar sumando el trabajo que realizan en el nivel superior de su recursión (para dividir los problemas en subproblemas y luego combinar las soluciones de los subproblemas) junto con el tiempo empleado en las llamadas recursivas del algoritmo. Si denota el tiempo total del algoritmo en una entrada de tamaño , y denota la cantidad de tiempo que se tarda en el nivel superior de la recurrencia, entonces el tiempo se puede expresar mediante una relación de recurrencia que toma la forma:

Aquí se muestra el tamaño de un problema de entrada, es el número de subproblemas en la recursión y es el factor por el cual se reduce el tamaño del subproblema en cada llamada recursiva ( ). Fundamentalmente, y no debe depender de . El teorema a continuación también supone que, como caso base para la recurrencia, cuando es menor que algún límite , el tamaño de entrada más pequeño que conducirá a una llamada recursiva.

Las recurrencias de esta forma suelen satisfacer uno de los tres regímenes siguientes, en función de cómo se relaciona el trabajo de dividir/recombinar el problema con el exponente crítico . (La tabla siguiente utiliza la notación estándar O grande ).

Una extensión útil del Caso 2 maneja todos los valores de : [3]

Ejemplos

Ejemplo de caso 1

Como se puede ver en la fórmula anterior:

, entonces
, dónde

A continuación, vemos si satisfacemos la condición del caso 1:

.

Del primer caso del teorema maestro se deduce que

(Este resultado se confirma mediante la solución exacta de la relación de recurrencia, que es , suponiendo ).

Ejemplo de caso 2

Como podemos ver en la fórmula anterior las variables obtienen los siguientes valores:

dónde

A continuación, vemos si satisfacemos la condición del caso 2:

, y por lo tanto, c y son iguales

Así se deduce del segundo caso del teorema maestro:

Por lo tanto la relación de recurrencia dada estaba en .

(Este resultado se confirma mediante la solución exacta de la relación de recurrencia, que es , suponiendo ).

Ejemplo de caso 3

Como podemos ver en la fórmula anterior las variables obtienen los siguientes valores:

, dónde

A continuación, vemos si satisfacemos la condición del caso 3:

, y por lo tanto, sí,

La condición de regularidad también se cumple:

, eligiendo

Así se desprende del tercer caso del teorema maestro:

Por lo tanto la relación de recurrencia dada estaba en , que cumple con la de la fórmula original.

(Este resultado se confirma mediante la solución exacta de la relación de recurrencia, que es , suponiendo .)

Ecuaciones inadmisibles

Las siguientes ecuaciones no se pueden resolver utilizando el teorema maestro: [4]

En el segundo ejemplo inadmisible anterior, la diferencia entre y se puede expresar con la razón . Es evidente que para cualquier constante . Por lo tanto, la diferencia no es polinómica y la forma básica del Teorema Maestro no se aplica. La forma extendida (caso 2b) sí se aplica, dando la solución .

Aplicación a algoritmos comunes

Véase también

Notas

  1. ^ Bentley, Jon Louis ; Haken, Dorothea ; Saxe, James B. (septiembre de 1980), "Un método general para resolver recurrencias de divide y vencerás", ACM SIGACT News , 12 (3): 36–44, doi :10.1145/1008861.1008865, S2CID  40642274, archivado desde el original el 22 de septiembre de 2017
  2. ^ Duke University, "Gran regalo para las funciones recursivas: relaciones de recurrencia", http://www.cs.duke.edu/~ola/ap/recurrence.html
  3. ^ Chee Yap, Un enfoque elemental real para dominar la recurrencia y las generalizaciones, Actas de la octava conferencia anual sobre teoría y aplicaciones de modelos de computación (TAMC'11), páginas 14-26, 2011. Copia en línea.
  4. ^ Instituto Tecnológico de Massachusetts (MIT), "Teorema maestro: problemas prácticos y soluciones", https://people.csail.mit.edu/thies/6.046-web/master.pdf
  5. ^ desde Dartmouth College, http://www.math.dartmouth.edu/archive/m19w03/public_html/Section5-2.pdf

Referencias