Recurrencias Homogeneas y No

download Recurrencias Homogeneas y No

of 41

  • date post

    14-Nov-2015
  • Category

    Documents

  • view

    58
  • download

    2

Embed Size (px)

description

Una ecuación recurrente es un tipo específico de relación de recurrencia. Una relación de recurrencia para la sucesión a_0, a_1, a_2, \ldots es una ecuación que relaciona a_n \, con alguno de sus predecesores a_0, a_1, \ldots, a_{n-1} . Las condiciones iniciales para la sucesión a_0, a_1, \ldots son valores dados en forma explícita para un número finito de términos de la sucesión.1Resolver una relación de recurrencia consiste en determinar una fórmula explícita (cerrada) para el término general a_n\, , es decir una función no recursiva de n.Hay dos métodos para resolver relaciones recurrentes: iteración y un método especial que se aplica a las relaciones de recurrencia lineales homogéneas con coeficientes constantes.Un ejemplo de una relación de recurrencia es el siguiente: x_{n+1} = rx_n(1-x_n) \,Algunas definiciones de recurrencia pueden tener relaciones muy complejas (caóticas), y sus comportamientos a veces son estudiados por los físicos y matemáticos en un campo conocido como análisis no lineal.

Transcript of Recurrencias Homogeneas y No

  • RepasoRecurrencias homogneas

    Recurrencias no homogneas

    Algoritmos y Estructuras de Datos II

    Recurrencias homogneas y no homogneass

    1 de abril de 2015

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneas

    Contenidos

    1 RepasoAlgoritmos de ordenacinNotacin OAlgoritmos divide y vencersRecurrencias divide y vencersEjemplo: bsqueda binaria

    2 Recurrencias homogneasMtodo de resolucin

    3 Recurrencias no homogneasMtodo de resolucin

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneas

    Algoritmos de ordenacinNotacinOAlgoritmos divide y vencersRecurrencias divide y vencersEjemplo: bsqueda binaria

    Algoritmos de ordenacin

    Algoritmos elementales:Ordenacin por seleccinBubble sortCocktail sortOrdenacin por insercinShell sort

    Algoritmos eficientes:Ordenacin por intercalacinversin iterativaOrdenacin rpidavariantes sobre el procedimiento pivot

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneas

    Algoritmos de ordenacinNotacinOAlgoritmos divide y vencersRecurrencias divide y vencersEjemplo: bsqueda binaria

    Notacin OSea g : N R0,

    O(g(n)) = {f : N R0 | c > 0. n N.f (n) cg(n)}(g(n)) = {f : N R0 | c > 0. n N.f (n) cg(n)}(g(n)) = O(g(n)) (g(n))

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneas

    Algoritmos de ordenacinNotacinOAlgoritmos divide y vencersRecurrencias divide y vencersEjemplo: bsqueda binaria

    Propiedades

    Constantes multiplicativas no afectan.Trminos de crecimiento despreciable no afectan.Sean a,b > 1, O(loga n) = O(logb n).Regla del lmite. Jerarqua.Sea n N.f (n) > 0. Entoncesg(n) O(h(n)) f (n)g(n) O(f (n)h(n)).Sea limn h(n) =. Entoncesf (n) O(g(n)) = f (h(n)) O(g(h(n))).

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneas

    Algoritmos de ordenacinNotacinOAlgoritmos divide y vencersRecurrencias divide y vencersEjemplo: bsqueda binaria

    Jerarqua

    O(1) O(log(log(logn))) O(log(logn)) O(logn) O(n0.001)

    O(n) O(n logn) O(n1.001) O(n100) O(1.01n) O(n100 1.01n) O(1.02n) O(100n) O(10000n)

    O((n 1)!) O(n!) O((n + 1)!) O(nn)

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneas

    Algoritmos de ordenacinNotacinOAlgoritmos divide y vencersRecurrencias divide y vencersEjemplo: bsqueda binaria

    Algoritmo divide y vencersForma general

    fun DV(x) ret yif x suficientemente pequeo o simple then y := ad_hoc(x)else descomponer x en x1, x2, . . . , xa

    for i:= 1 to a do yi := DV(xi ) odcombinar y1, y2, . . . , ya para obtener la solucin y de x

    fiend

    Normalmente los xi son fracciones de x :

    |xi | = |x |bpara algn b fijo.

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneas

    Algoritmos de ordenacinNotacinOAlgoritmos divide y vencersRecurrencias divide y vencersEjemplo: bsqueda binaria

    Algoritmo divide y vencersConteo

    Si queremos contar el costo computacional (nmero deoperaciones) t(n) de la funcin DV obtenemos:

    t(n) ={

    c si la entrada es pequea o simplea t(n/b) + g(n) en caso contrario

    si c es una constante que representa el costo computacionalde la funcin ad_hoc y g(n) es el costo computacional de losprocesos de descomposicin y de combinacin.Esta definicin de t(n) es recursiva (como el algoritmo DV ), sellama recurrencia. Existen distintos tipos de recurrencia. stase llama recurrencia divide y vencers.

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneas

    Algoritmos de ordenacinNotacinOAlgoritmos divide y vencersRecurrencias divide y vencersEjemplo: bsqueda binaria

    Potencias de b

    Para

    t(n) ={

    c si la entrada es pequea o simplea t(n/b) + g(n) en caso contrario

    con g(n) O(nk ),demostramos

    t(n) O(nlogb a|n potencia de b) si a > bkO(nk logn|n potencia de b) si a = bkO(nk |n potencia de b) si a < bk

    Similar resultado vale reemplazando O por en las 4ocurrencias.Similar resultado vale reemplazando O por en las 4ocurrencias.

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneas

    Algoritmos de ordenacinNotacinOAlgoritmos divide y vencersRecurrencias divide y vencersEjemplo: bsqueda binaria

    Recurrencias divide y vencers

    Para

    t(n) ={

    c si la entrada es pequea o simplea t(n/b) + g(n) en caso contrario

    si t(n) es eventualmente no decreciente, y g(n) O(nk ),entonces

    t(n) O(nlogb a) si a > bkO(nk logn) si a = bkO(nk ) si a < bk

    Similar resultado vale reemplazando O por en las 4ocurrencias.Similar resultado vale reemplazando O por en las 4ocurrencias.

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneas

    Algoritmos de ordenacinNotacinOAlgoritmos divide y vencersRecurrencias divide y vencersEjemplo: bsqueda binaria

    Ejemplo: bsqueda binaria

    {Pre: 1 izq n+1 0 der n a ordenado}fun binary_search_rec (a: array[1..n] of T, x:T, izq, der : nat) ret i:nat

    var med: natif izq > der i = 0

    izq der med:= (izq+der) 2if x < a[med] i:= binary_search_rec(a, x, izq, med-1)

    x = a[med] i:= medx > a[med] i:= binary_search_rec(a, x, med+1,der)

    fifi

    end fun{Post: (i = 0 x no est en a[izq,der]) (i 6= 0 x = a[i])}

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneas

    Algoritmos de ordenacinNotacinOAlgoritmos divide y vencersRecurrencias divide y vencersEjemplo: bsqueda binaria

    Bsqueda binariaFuncin principal

    fun binary_search (a: array[1..n] of T, x:T) ret i:nati:= binary_search_rec(a, x, 1, n)

    end fun{Post: (i = 0 x no est en a) (i 6= 0 x = a[i])}

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneas

    Algoritmos de ordenacinNotacinOAlgoritmos divide y vencersRecurrencias divide y vencersEjemplo: bsqueda binaria

    Bsqueda binariaAnlisis

    Sea t(n) = nmero de comparaciones que hace en el peorcaso cuando el arreglo tiene n celdas.

    t(n) ={

    0 si n = 0t(n/2) + 1 si n > 0

    a = 1, b = 2 y k = 0.a = bk .conclusin t(n) O(nk logn) = O(logn).

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneasMtodo de resolucin

    Ejemplo

    Calculemos el nmero de veces que el siguiente programaejecuta la accin A:

    proc p (in n: nat) {pre : n 0}if n = 0 skip

    n = 1 An > 1 p(n-1)

    p(n-2)fi

    end proc

    Sea t(n) = nmero de veces que p(n) ejecuta la accin A.

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneasMtodo de resolucin

    Contando las ejecuciones de la accin A

    proc p (in n: nat) {pre : n 0}if n = 0 skip

    n = 1 An > 1 p(n-1)

    p(n-2)fi

    end proc

    Sea t(n) = nmero de veces que p(n) ejecuta la accin A.

    t(n) =

    0 si n = 01 si n = 1t(n 1) + t(n 2) si n > 1

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneasMtodo de resolucin

    Es una recurrencia

    Es una recurrencia.Es recurrencia divide y vencers?

    t(n) =

    0 si n = 01 si n = 1t(n 1) + t(n 2) si n > 1

    Les resulta familiar esta recurrencia?

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneasMtodo de resolucin

    Recurrencia homognea

    No es divide y vencers porque las llamadas recursivas noson de la forma t(n/b) sino de la forma t(n i).Si pasamos todos los trminos de la forma t(n i) de laecuacin t(n) = t(n 1) + t(n 2) a la izquierda, quedat(n) t(n 1) t(n 2) = 0,Por eso se la llama recurrencia homognea.

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneasMtodo de resolucin

    Mtodo de resolucinPaso 1: ecuacin caracterstica

    Llevar la recurrencia a una ecuacin caracterstica de laforma

    ak tn + . . . + a0tnk = 0

    En el ejemplo, t(n) = t(n 1) + t(n 2) puede llevarse atn tn1 tn2 = 0.Por eso se la llama homognea.Entonces, k = 2, ak = a2 = 1, a1 = 1 y a0 = 1.

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneasMtodo de resolucin

    Mtodo de resolucinPaso 2: polinomio caracterstico

    Considerar el polinomio caracterstico asociadoakxk + . . . + a0,En el ejemplo el polinomio es x2 x 1.

    Recurrencias homogneas y no homogneass Algoritmos y Estructuras de Datos II

  • RepasoRecurrencias homogneas

    Recurrencias no homogneasMtodo de resolucin

    Mtodo de resoluc