Teorema maestro (análisis de algoritmos)

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

En el análisis de algoritmos, el teorema maestro para las recurrencias de divide y vencerás proporciona un análisis asintótico (usando la notación O grande) para relaciones de recurrencia de tipos que ocurren en el análisis de muchas divisiones y conquistar algoritmos. El enfoque fue presentado por primera vez por Jon Bentley, Dorothea Blostein (de soltera Haken) y James B. Saxe en 1980, donde se describió como un "método unificador" para solucionar este tipo de recurrencias. 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 se pueden resolver con el uso de este teorema; sus generalizaciones incluyen el método Akra-Bazzi.

Introducción

Considere un problema que se puede resolver utilizando un algoritmo recursivo como el siguiente:

procedimiento p(input) x de tamaño n):
 si n Identificar una constante k:
Solve x directamente sin recursión
 más:
Crear a subproblemas de x, cada uno tiene tamaño n/bProcedimiento de llamada p recursivamente en cada subproblema
Combine los resultados de los subproblemas
Árbol de solución.

El algoritmo anterior divide el problema en una serie de subproblemas recursivamente, cada subproblema de tamaño n/b. Su árbol de solución tiene un nodo para cada llamada recursiva, siendo los niños de ese nodo las otras llamadas hechas de esa llamada. Las hojas del árbol son los casos de base de la recursión, los subproblemas (de tamaño inferior a kEso no se repite. El ejemplo anterior habría tenido a Nodos infantiles en cada nodo sin hojas. Cada nodo hace una cantidad de trabajo que corresponde al tamaño del subproblema n pasó a esa instancia de la llamada recursiva y dada 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 funcionamiento de un algoritmo como el p arriba en una entrada de tamaño n, generalmente denotado , se puede expresar por la relación de recurrencia

Donde es el momento de crear los subproblemas y combinar sus resultados en el procedimiento anterior. Esta ecuación puede sustituirse sucesivamente en sí misma y ampliarse para obtener una expresión de la cantidad total de trabajo realizado. El teorema maestro permite que muchas relaciones de recurrencia de esta forma se conviertan directamente a la anotación, sin hacer una expansión de la relación recursiva.

Forma genérica

El teorema maestro siempre produce ligaduras asintomáticamente ajustadas a recurrencias de algoritmos de división y conquista que dividen una entrada en subproblemas más pequeños de tamaños iguales, resuelven los subproblemas recursivamente, y luego combinan las soluciones de subproblema para dar una solución al problema original. El tiempo para tal algoritmo se puede expresar agregando el trabajo que realizan en el nivel superior de su recursión (para dividir los problemas en subproblemas y luego combinar las soluciones de subproblema) junto con el tiempo hecho en las llamadas recursivas del algoritmo. Si denota el tiempo total para el algoritmo en una entrada de tamaño , y denota la cantidad de tiempo tomado en el nivel superior de la recurrencia entonces el tiempo puede ser expresado por una relación recurrencia que toma el formulario:

Aquí. es 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 el tamaño del subproblema se reduce en cada llamada recursiva (b título1). Curiosamente, y no debe depender de . El teorema de abajo también supone que, como caso base para la recurrencia, cuando es menos que un límite , el tamaño de entrada más pequeño que conducirá a una llamada recursiva.

Las repeticiones de esta forma a menudo satisfacen uno de los tres siguientes regímenes, basados en cómo el trabajo para dividir/recombinar el problema relacionados con exponente crítico . (La tabla de abajo utiliza la notación O grande estándar).

Caso Descripción Estado en relación con , es decir. Maestro Teorema Ejemplos notables
1 Trabajar para dividir/recombinar un problema está encadenado por subproblemas.

i.e. the recursion tree is leaf-heavy

Cuando Donde

(Arribado por un polinomio menos exponente)

Entonces...

(El término de división no aparece; la estructura del árbol recurrente domina.)

Si y , entonces .
2 Trabajar para dividir/recombinar un problema es comparable a los subproblemas. Cuando para un

(recorrido por el polinomio de costos críticos, tiempos cero o más opcionales s)

Entonces...

(El límite es el término de división, donde el tronco es aumentado por una sola potencia.)

Si y , entonces .

Si y , entonces .

3 Trabajar para dividir/recombinar un problema domina subproblemas.

Es decir, el árbol de la recursión es arraigado.

Cuando Donde

(más bajo contenido por un polinomio de mayor crecimiento)

... esto no produce necesariamente nada. Además, si
para alguna constante y suficientemente grandes (a menudo llamado el condición de regularidad)

entonces el total está dominado por el término de división :

Si y y la condición de regularidad sostiene, entonces .

Una extensión útil de Case 2 maneja todos los valores de :

Caso Estado en relación con , es decir. Maestro Teorema Ejemplos notables
2a Cuando para cualquier Entonces...

(El límite es el término de división, donde el tronco es aumentado por una sola potencia.)

Si y , entonces .
2b Cuando para Entonces...

(El límite es el término de división, donde el log reciprocal es reemplazado por un tronco iterado.)

Si y , entonces .
2c Cuando para cualquier Entonces...

(El límite es el término de división, donde el tronco desaparece.)

Si y , entonces .

Ejemplos

Ejemplo del caso 1

Como se puede ver en la fórmula anterior:

Así que
, donde

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

.

Se deduce del primer caso del teorema maestro que

(Este resultado es confirmado por 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:

Donde

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

, y por lo tanto, c y son iguales

Así que sigue del segundo caso del teorema maestro:

Así la relación de recurrencia dada estaba dentro .

(Este resultado es confirmado por la solución exacta de la relación de recurrencia, que es , suponiendo ).

Ejemplo 3

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

, donde

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

, y por lo tanto, sí,

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

, elegir

Así se deduce del tercer caso del teorema maestro:

Así la relación de recurrencia dada estaba dentro , que cumple con el de la fórmula original.

(Este resultado es confirmado por 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:

  • a no es una constante; el número de subproblemas debe ser fijo
  • diferencia no polinómica entre y (véase infra; versión ampliada se aplica)
  • no puede tener menos de un sub problema
  • , que es el tiempo de combinación, no es positivo
  • caso 3 pero violación de la regularidad.

En el segundo ejemplo inadmisible anterior, la diferencia entre y se puede expresar con la relación . Está claro que para cualquier constante . Por lo tanto, la diferencia no es polinomio y la forma básica del Teorema Maestro no se aplica. La forma extendida (caso 2b) se aplica, dando la solución .

Aplicación a algoritmos comunes

Algoritm Relación de repetición Hora de correr Comentario
Búsqueda binaria Apply Master theorem case , donde
Traversal de árbol binario Apply Master theorem case Donde
Búsqueda óptima de matriz clasificada Aplica el teorema Akra–Bazzi para y para llegar
Merge tipo Apply Master theorem case , donde

Contenido relacionado

Conjunto vacío

En matemáticas, el conjunto vacío es el conjunto único que no tiene elementos; su tamaño o cardinalidad es cero. Algunas teorías axiomáticas de...

Precisión y exactitud

En un conjunto de medidas, la exactitud es la cercanía de las medidas a un valor específico, mientras que la precisión es la cercanía de las medidas entre...

Historia de la lógica

La historia de la lógica se ocupa del estudio del desarrollo de la ciencia de la inferencia válida tal como se encuentran en el Organon, encontraron una...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save