140 likes | 256 Views
Bloque 1: Introducción. Unidad 5: Matemáticas necesarias. Introducción. Necesitamos ciertos conceptos matemáticos para determinar, en general, la complejidad algoritmica. Funciones finalmente no decrecientes Funciones b-armónicas Ecuaciones de recurrencia. Funciones b-armónicas.
E N D
Bloque 1: Introducción Unidad 5: Matemáticas necesarias
Introducción • Necesitamos ciertos conceptos matemáticos para determinar, en general, la complejidad algoritmica. • Funciones finalmente no decrecientes • Funciones b-armónicas • Ecuaciones de recurrencia
Funciones b-armónicas • En determinadas ocasiones, las funciones de complejidad contienen términos (redondeos, por ejemplo) que no admiten un tratamiento algebraico • En dichos casos, restringiendo el análisis ciertos valores de n, se pueden eliminar las dificultades y realizar un análisis ordinario de la función • Considerar, por ejemplo, la ecuación de recurrencia de un algoritmo de búsqueda binaria: tn = 1 + t n/2 • El análisis es sencillo si n = 2k • ¿Qué ocurre con los restantes valores de n?
Funciones b-armónicas: Definiciones • Una función f:0 es finalmente no decreciente si n0 / n n0, f(n) f(n + 1) • Una función es b-armónica si • Es finalmente no decreciente • Sea b , b 2, sea c 0 una constante (la cual depende de b)entonces n0 / n n0, f(bn) cf(n) • Una función es armónica si es b-armónica para todo b 2 • Ello implica que el ratio está acotado superiormentepor una constante o, lo que es lo mismo, la función f crece “suavemente” (smoothness)
Funciones b-armónicas: Definiciones • Un resultado interesante es que toda función b-armónica, para un b 2, es efectivamente armónica • Ello permite derivar el resultado siguiente: • sea f:0 una función armónica • sea t:0 una función finalmente no decreciente • sea b 2 • entonces [ (n = bk) t(n) (f(n)) ] t(n) (f(n))
Ecuaciones de recurrencia • Hemos visto varios ejemplos de ecuaciones de recurrencia en las secciones anteriores • Una ecuación de recurrencia es cualquier ecuación en la que sus términos se definen recursivamente, esto es, el valor de la función en “n” depende de los valores anteriores (menores que “n”) de la función • Típicamente, las ecuaciones de recurrencia surgen en el análisis de bucles e invocaciones recursivas • Distinguiremos los siguientes tipos de ecuaciones de recurrencia: • Lineales • Homogéneas • No homogéneas • No lineales
Ecuaciones Lineales Homogéneas • Las ELH poseen la forma general: a0tn + a1tn-1 + ... + aktn-k = 0;ai constante • Se puede demostrar que las soluciones de las ELH poseen la forma tn=xn • Para solucionar una ELH, se utiliza la técnica de la ecuación característica, o lo que es similar, obtener las raíces del polinomio característico p(x) = a0 xk + a1 xk-1 + ... + ak x0 • La solución de la ELH será , siendo ri raíces del polinomio p(x)
Ecuaciones Lineales Homogéneas • La solución general no determina los valores de las constantes ci • Se pueden obtener resolviendo un sistema de ecuaciones obtenido a partir de los valores de la función tnen los casos base • Ejemplos: • tn = 3tn-1 + 4tn-2t0 = 0t1 = 5 • tn = tn-1 + tn-2t0 = 0t1 = 1
Ecuaciones Lineales Homogéneas • Cuando el polinomio característico posee raíces múltiples, la solución de la ecuación de recurrencia posee términos de la forma tn=xn,tn=nxn,tn=n2xn, etc. • En líneas generales, si r1, r2, ..., rl son raíces del polinomio característico, con multiplicidades m1, m2, ..., ml, la solución de la ecuación de recurrencia será: • Ejemplo: • tn = 5tn-1 - 8tn-2 + 4tn-3 t0 = 0t1 = 1t2 = 2
Ecuaciones Lineales no Homogéneas • Las ELNH poseen la forma general: a0tn + a1tn-1 + ... + aktn-k = f(n) • Obtener una solución a una ELNH es más difícil, en general, que en el caso de una ELH • Es posible resolver sistemáticamente ELNH de la forma a0tn + a1tn-1 + ... + aktn-k = bnp(n), siendo b una constante y p(n) un polinomio en n • En este caso, el polinomio característico es: a0 xk + a1 xk-1 + ... + ak x0 (x-b)d+1 siendo d = grado(p(n)) • Ejemplo: • tn - 2tn-1 = (n + 5) 3n, n 1
Ecuaciones Lineales no Homogéneas • En general, una ELNH de la forma: a0tn + a1tn-1 + ... + aktn-k = b1np1(n) + b2np2(n) + ...+ bjnpj(n) siendo bi constantes distintas y pi(n) polinomios en n tiene como solución: a0 xk + a1 xk-1 + ... + ak x0 (x-b1)d1+1 (x-b2)d2+1 ... (x-bj)dj+1 siendo di = grado(pi(n)) • Ejemplo: • tn = 2tn-1 + n + 3nt0 = 0
Ecuaciones no lineales • Son de una forma más general; por ejemplo: tn = a·tn/4 + b·tn/8 + .... • No existe un procedimiento estándar para su solución • En determinadas ocasiones, puede intentarse • Transformación de dominio • Transformación de rango • Ejemplo TD: • tn = 3tn/2 + n t1 = 1 • Ejemplo TR: • tn = nt2n/2t1 = 1/3 Nótese que las suposiciones realizadas en la TD hacen que tengamos que acudir a los teoremas de funciones b-armónicas para asegurar la corrección de la función obtenida
Notas finales • Si todo falla, siempre se puede intentar una expansión de recurrencias • Aplicar varias veces la fórmula recurrente hasta encontrar alguna “regularidad” • Ejemplo • tn = 2 tn-1 + 1t0 = 1
Notas finales • Si se desea no determinar la función tn, sino, por ejemplo, el orden correspondiente, puede obviarse (en ocasiones) resolver el sistema de ecuaciones • En su lugar, puede realizarse una sustitución de términos en las ecuaciones de recurrencia • Ejemplo: • tn - 2tn-1 = 3nt0 = 0 • Lamentablemente, ello no siempre funciona • Ejemplo: • tn = 4tn-1 - 2nt0 = 1