Вы находитесь на странице: 1из 29

Anlisis y Diseo de Algoritmos

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,

Cuya solucin se dijo que es:


T (n) = (n lg n)

Introduccin
3

Mtodos para resolver recurrencias Substitucin


Adivinar

una cota, prueba con induccin matemtica

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

T (n) = aT (n / b) + f (n), donde a 1, b 1, f (n) es una funcin dada

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 poderoso Solo se aplica a casos en que es fcil adivinar la

forma de la respuesta Para establecer fronteras superiores o inferiores en una recurrencia

Mtodo de Substitucin
5

Ejemplo: Adivinamos: Probamos que: Entonces: Substituimos en la recurrencia:


Asumimos que la cota es cierta para n/2

para una constante c >0

El ltimo paso es cierto si c 1

Mtodo de Substitucin
6

El mtodo de induccin requiere probar que la solucin es cierta para

las condiciones frontera

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

; La recurrencia no funciona para T(1) al probar en la notacin asinttica

; 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

Ejemplo, dada la recurrencia:

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:

Mtodo de rbol de Recursin


11

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

Mtodo de rbol de Recursin


12

Para resolver la recurrencia

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

Mtodo de rbol de Recursin


13

Mtodo de rbol de Recursin


14

Mtodo de rbol de Recursin


15

El tamao del problema decrece con la profundidad

del rbol

Eventualmente alcanzamos condicin frontera

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)

Mtodo de rbol de Recursin


16

Despus determinamos el costo en cada nivel del

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 )

Mtodo de rbol de Recursin


17

Sumamos los costos de todos los niveles para obtener

el costo de todo el rbol

Mtodo de rbol de Recursin


18

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

La recurrencia describe el tiempo de ejecucin de un

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

Algunos aspectos tcnicos En el caso 1:


f(n)

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

Ejercicios: 4.2-1 4.2-3 Problemas 4-1: a, b 4-4: a, b, c

Вам также может понравиться

  • Comandos Configuraciones Basicas Router Examen
    Comandos Configuraciones Basicas Router Examen
    Документ6 страниц
    Comandos Configuraciones Basicas Router Examen
    Saúl Hernández Hernández
    Оценок пока нет
  • Proyecto
    Proyecto
    Документ24 страницы
    Proyecto
    Rebecca Phillips
    Оценок пока нет
  • Historia de La Bicicleta
    Historia de La Bicicleta
    Документ1 страница
    Historia de La Bicicleta
    Saúl Hernández Hernández
    Оценок пока нет
  • Grafos Parte 2
    Grafos Parte 2
    Документ20 страниц
    Grafos Parte 2
    Saúl Hernández Hernández
    Оценок пока нет
  • Simplex
    Simplex
    Документ19 страниц
    Simplex
    ejmc_sic
    Оценок пока нет
  • Historia Del Teléfono Celular
    Historia Del Teléfono Celular
    Документ7 страниц
    Historia Del Teléfono Celular
    Saúl Hernández Hernández
    Оценок пока нет
  • Historia Del Teléfono Celular
    Historia Del Teléfono Celular
    Документ7 страниц
    Historia Del Teléfono Celular
    Saúl Hernández Hernández
    Оценок пока нет
  • Codificación de Software - CENEVAL 9AGOSTO2013
    Codificación de Software - CENEVAL 9AGOSTO2013
    Документ91 страница
    Codificación de Software - CENEVAL 9AGOSTO2013
    Saúl Hernández Hernández
    Оценок пока нет
  • Capitulo4 PDF
    Capitulo4 PDF
    Документ0 страниц
    Capitulo4 PDF
    Deyy Amyy Terán
    Оценок пока нет
  • Pinch
    Pinch
    Документ49 страниц
    Pinch
    Saúl Hernández Hernández
    Оценок пока нет
  • PlaticaCeneval ROSSAINZ Otonio2013
    PlaticaCeneval ROSSAINZ Otonio2013
    Документ64 страницы
    PlaticaCeneval ROSSAINZ Otonio2013
    Saúl Hernández Hernández
    Оценок пока нет
  • Grafos Parte 1
    Grafos Parte 1
    Документ13 страниц
    Grafos Parte 1
    Saúl Hernández Hernández
    Оценок пока нет
  • Pico Blaze
    Pico Blaze
    Документ15 страниц
    Pico Blaze
    Saúl Hernández Hernández
    Оценок пока нет
  • Análisis y Diseño de Algoritmos
    Análisis y Diseño de Algoritmos
    Документ127 страниц
    Análisis y Diseño de Algoritmos
    Holman Alejandro Calderon Villamizar
    100% (1)
  • Micro Ntrol Adores
    Micro Ntrol Adores
    Документ11 страниц
    Micro Ntrol Adores
    Saúl Hernández Hernández
    Оценок пока нет
  • Dialnet AlgoritmoDeBusquedaDeEntornoVariableParaMinimizarL 3958876
    Dialnet AlgoritmoDeBusquedaDeEntornoVariableParaMinimizarL 3958876
    Документ14 страниц
    Dialnet AlgoritmoDeBusquedaDeEntornoVariableParaMinimizarL 3958876
    Saúl Hernández Hernández
    Оценок пока нет
  • Redes
    Redes
    Документ51 страница
    Redes
    Saúl Hernández Hernández
    Оценок пока нет
  • Casos de Prueba Caja Blanca
    Casos de Prueba Caja Blanca
    Документ20 страниц
    Casos de Prueba Caja Blanca
    Saúl Hernández Hernández
    Оценок пока нет
  • T2114
    T2114
    Документ199 страниц
    T2114
    Saúl Hernández Hernández
    Оценок пока нет
  • Pico Blaze
    Pico Blaze
    Документ15 страниц
    Pico Blaze
    Saúl Hernández Hernández
    Оценок пока нет
  • Pico Blaze
    Pico Blaze
    Документ15 страниц
    Pico Blaze
    Saúl Hernández Hernández
    Оценок пока нет
  • Prog Din
    Prog Din
    Документ39 страниц
    Prog Din
    Saúl Hernández Hernández
    Оценок пока нет
  • Convolución Discreta
    Convolución Discreta
    Документ5 страниц
    Convolución Discreta
    Humberto Ramírez Gasca
    Оценок пока нет
  • Pde Resolucion
    Pde Resolucion
    Документ14 страниц
    Pde Resolucion
    Nicolas Ojeada
    Оценок пока нет
  • 051 - Romero
    051 - Romero
    Документ1 страница
    051 - Romero
    Saúl Hernández Hernández
    Оценок пока нет
  • Ejemplos Programacion Socket
    Ejemplos Programacion Socket
    Документ8 страниц
    Ejemplos Programacion Socket
    wvm
    Оценок пока нет
  • 2001 g10 Bordes
    2001 g10 Bordes
    Документ36 страниц
    2001 g10 Bordes
    Saúl Hernández Hernández
    Оценок пока нет
  • Teoria de Automatas y Lenguajes Formales
    Teoria de Automatas y Lenguajes Formales
    Документ90 страниц
    Teoria de Automatas y Lenguajes Formales
    GUASCUNDIRISITO
    Оценок пока нет
  • Chess IA
    Chess IA
    Документ12 страниц
    Chess IA
    Saúl Hernández Hernández
    Оценок пока нет