Академический Документы
Профессиональный Документы
Культура Документы
Recurrencias
DR. JESS A. GONZLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE
Introduccin
2
Cuando un algoritmo se llama a s mismo Su tiempo de ejecucin se puede describir con una recurrencia Recurrencia Ecuacin o desigualdad que describe una funcin en trminos de su valor para entradas ms pequeas Ejemplo de MergeSort
(1) T (n) = 2T (n / 2) + (n)
if n = 1, if n > 1,
Introduccin
3
Mtodo de Iteracin
Expande,
itera sobre la recurrencia y la expresa como sumatoria en trminos dependientes de n y las condiciones iniciales la recurrencia en un rbol cuyos nodos representan los costos de los dif. niveles de la recursin fronteras (bounds) para recurrencias de la forma memorizar tres casos
rboles de recursin
Convierte
Mtodo maestro
Provee
Requiere
Mtodo de Substitucin
4
Consta de 2 pasos Adivinar la forma de la solucin Utilizar induccin matemtica para encontrar las constantes y mostrar que la solucin funciona
Mtodo de Substitucin
5
Mtodo de Substitucin
6
Elegir c suficientemente grande para que funcione para las condiciones de frontera Para notacin asinttica requerimos probar que nosotros elegimos n0 Evitamos condicin frontera difcil para T(1) = 1 para la prueba de induccin % n #( Aplicamos en la recurrencia T (n) = 2T '! *+ n ! " # $
& 2 )
T (1) = 1
; pero s para T(2) y T(3) T (2) = 2T (2) + 2 = 2 *1 + 2 = 4 T (3) = 2T (3) + 3 = 2 *1 + 3 = 5 Ahora, en la prueba de notacin Asinttica: T (2) c 2 lg 2 = 2 c, c 2 T (3) c3lg3 = 4.75c, c 2
Mtodo de Substitucin
7
Adivinando una buena primera aproximacin No hay una buena manera general de adivinar soluciones correctas a recurrencias Requiere experiencia y creatividad Algunas heursticas
Usar
rboles de recursin para generar buenos valores iniciales Si la recurrencia es similar a otra, usar una solucin similar
Mtodo de Iteracin
8
No requiere adivinar la respuesta Puede requerir ms lgebra que el de substitucin Expande (itera) la recurrencia y la expresa como
sumatoria de trminos dependientes de n y las condiciones iniciales Despus usa tcnicas para evaluar sumatorias para dar cotas a la solucin Puede ser difcil resolver recurrencias con este mtodo
A veces al iterar la recurrencia, adivinamos una solucin y seguimos con el mtodo de substitucin
Mtodo de Iteracin
9
Mtodo de Iteracin
10
Qu tanto iteramos para llegar a la condicin de frontera? El isimo trmino en la serie es 3i n/4i La iteracin llega a n = 1 cuando n/4i =1 equivalentemente, cuando i excede log4n, que corresponde a los niveles del rbol Llevando la iteracin a este punto y usando la frontera:
n/4i n/4i , descubrimos que la sumatoria contiene una serie geomtrica decreciente:
Visualizar la iteracin de una recurrencia Dibujar un rbol de recursin y obtener una buena solucin inicial Utilizamos mtodo de sustitucin para comprobar rbol de recursin Cada nodo representa el costo de un subproblema en el conjunto de llamadas a funciones recursivas Sumamos costos por nivel y determinamos el costo total de todos los niveles de recursin tiles cuando la recurrencia describe tiempo de ejecucin de un algoritmo divide-y-conquista
T (n) = 3T ( n / 4) + (n 2 )
Creamos rbol de recursin para T (n) = 3T (n / 4) + cn 2 Inclumos el coeficiente c > 0 Asumimos que n es una potencia exacta de 4
del rbol
Qu tan lejos de la raz llegamos? El tamao del subproblema para un nodo en profundidad i es n/4i El tamao llega a n = 1 cuando n/4i = 1, o i = log4n Entonces el rbol tiene log4n+1 niveles (0, 1, 2, , log4n)
rbol
Cada nivel tiene tres veces ms nodos que el nivel anterior El nmero de nodos a profundidad i es 3i Cada nodo a profundidad i para i = 0, 1, 2, , log4n-1 tiene costo de c(n/4i)2 Multiplicando, vemos que el costo de todos los nodos al nivel i para i = 0, 1, 2, , log4n-1 es 3ic(n/4i)2 = (3/16)icn2 El ltimo nivel a profundidad log4n tiene 3log4n = nlog4 3 nodos, cada uno con costo T(1), con costo total nlog4 3 T(1) con (nlog 3 )
Podemos usar una serie geomtrica infinita decreciente como cota superior, ecuacin A.6
Mtodo Maestro
19
Receta para recurrencias del tipo: a 1 y b > 1 son constantes y f(n) es una funcin asintticamente positiva
algoritmo que:
Divide un problema de tamao n en a subproblemas Cada subproblema de tamao n/b a y b son constantes positivas Los a subproblemas se resuelven recursivamente
En
tiempo T(n/b)
Costo de dividir el problema y combinar los resultados esta dado por f(n)
Mtodo Maestro
20
Teorema maestro
Sean a 1 y b > 1 constantes Sea f(n) una funcin Sea T(n) definida por los enteros no-negativos por la recurrencia n/b puede ser n/b n/b, entonces T(n) se puede acotar asintticamente como sigue:
Mtodo Maestro
21
En todos los casos compara f(n) con nlogba La solucin a la recurrencia la domina la mayor de las 2 funciones Caso 1: nlogba es la mayor, la solucin es T(n) = (nlogba) Caso 3: f(n) es mayor, la solucin es T(n) = (f(n)) Caso 2: las dos funciones son del mismo tamao, multiplicamos por un factor logartmico, T(n) = (nlog algn) = (f(n)lgn)
b
Mtodo Maestro
22
debe ser polinmicamente ms pequea que nlog a Asintticamente ms pequea que nlog a por un factor de n para una constante > 0.
b
En el caso 3:
f(n)
debe ser polinmicamente mayor a nlog a Tambin debe satisfacer la condicin de regularidad de af(n/b) cf(n) Esta condicin se satisface por la mayora de las funciones polinmicamente acotadas que podemos encontrar.
b
Esto quiere decir que los 3 casos no cubren todas las posibilidades de f(n).
Polinomios
23
Exponentes
24
Mtodo Maestro
25
Ejemplo 1:
Mtodo Maestro
26
Ejemplo 2:
Mtodo Maestro
27
Ejemplo 3:
Mtodo Maestro
28
Ejemplo 4:
Tarea
29