INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE CÓMPUTO
SUBDIRECCIÓN ACADÉMICA
DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN ACADEMIA DE CIENCIAS DE LA COMPUTACIÓN
U.A. Análisis de Algoritmos Autor: Prof. Daniel Cruz García
P
RÁCTICAN
O3. A
LGORITMOSR
ECURRENTES1. Ecuaciones de recurrencia
Una ecuación de recurrencia es una expresión finita que define explícitamente una sucesión, en el cual un elemento de la sucesión se determina por medio de otros elementos más sencillos que incluyen casos principales o básicos.
Solucionar una ecuación de recurrencia consiste en encontrar una expresión cerrada para una sucesión que satisfaga la ecuación, es decir, una expresión en la que los valores de los elementos de la sucesión no dependan de otros valores de la sucesión.
La definición de una sucesión 〈 〉 debe ser finita y consistente. En consecuencia, una definición es una descripción finita de un método que permita determinar, después de un número finito de pasos, un único valor para cualquier elemento .
Una ecuación de recurrencia está asociada a un algoritmo recursivo. Para los algoritmos recursivos nos vamos a encontrar con una dificultad añadida para calcular su complejidad temporal dado que la función que establece su tiempo de ejecución viene dada por una ecuación en recurrencia, es decir, T(n) = E(n), en donde en la expresión E aparece la propia función T. Resolver tal tipo de ecuaciones consiste en encontrar una expresión no recursiva de T.
Existen diferentes tipos de ecuaciones recurrentes para lo cual se tiene un tipo de solución particular, por lo que se tiene siempre que tomar en cuenta la forma de la ecuación recurrente para poder determinar el tipo de solución que se le va a aplicar.
1.1 R ECURRENCIAS HOMOGÉNEAS
Son del tipo:
donde los coeficientes son números reales, y k es un número natural entre 1 y n. Para resolverlas vamos a buscar soluciones que sean combinaciones de funciones exponenciales de la forma:
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE CÓMPUTO
SUBDIRECCIÓN ACADÉMICA
DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN ACADEMIA DE CIENCIAS DE LA COMPUTACIÓN
U.A. Análisis de Algoritmos Autor: Prof. Daniel Cruz García
donde los valores son números reales, y son polinomios en n con coeficientes reales. Si bien es cierto que estas ecuaciones podrían tener soluciones más complejas que éstas, se conjetura que serían del mismo orden y por tanto no nos ocuparemos de ellas.
Para resolverlas haremos el cambio , con lo cual obtenemos la ecuación característica asociada:
Llamemos a sus raíces, ya sean reales o complejas. Dependiendo del orden de multiplicidad de tales raíces, pueden darse los dos siguientes casos.
Caso 1: Raíces distintas
Si todas las raíces de la ecuación característica son distintas, esto es, si i ≠ j, entonces la solución de la ecuación en recurrencia viene dada por la expresión:
donde los coeficientes se determinan a partir de las condiciones iniciales.
Caso 2: Raíces con multiplicidad m mayor que 1
Supongamos que alguna de las raíces (por ejemplo ) tiene multiplicidad m > 1. Entonces la ecuación característica puede ser escrita en la forma:
en cuyo caso la solución a la ecuación de recurrencia viene dada por:
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE CÓMPUTO
SUBDIRECCIÓN ACADÉMICA
DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN ACADEMIA DE CIENCIAS DE LA COMPUTACIÓN
U.A. Análisis de Algoritmos Autor: Prof. Daniel Cruz García
donde los coeficientes se determinan a partir de las condiciones iniciales.
1.2 R ECURRENCIAS NO HOMOGÉNEAS
Consideremos una ecuación de la forma:
donde los coeficientes son números reales, y p(n) es un polinomio en n de grado d. Una primera idea para resolver la ecuación es manipularla para convertirla en homogénea.
El problema de este tipo de recurrencias es que no hay una solución general, la solución dependerá de la forma de la recurrencia.
1.2 C AMBIO DE VARIABLE
A veces es posible resolver recurrencias más complicadas efectuando un cambio de variable.
Esta técnica se aplica cuando n es potencia de un número real a, esto es, . Por ejemplo:
{ ⁄
Para traducirla a una ecuación de recurrencia homogénea o no homogénea sustituimos . Esto se consigue introduciendo una nueva recurrencia definida como ( ).
Esta transformación resulta útil porque ⁄ pasa a ser . En otras palabras, la recurrencia original en la T(n) se define como una función de ⁄ da lugar a una en la cual está definida como una función de que es el tipo de recurrencia no homogénea.
Es decir, quedaría una ecuación del tipo: ( )
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE CÓMPUTO
SUBDIRECCIÓN ACADÉMICA
DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN ACADEMIA DE CIENCIAS DE LA COMPUTACIÓN
U.A. Análisis de Algoritmos Autor: Prof. Daniel Cruz García
Desarrollo de la práctica
1. Determine cuáles de las siguientes funciones dominan asintóticamente a las otras:
2. Realice el cálculo de las siguientes ecuaciones de recurrencia y dar su orden de complejidad.
a. si n > 0;
b. si n > 1 c. ⁄ si n > 4; y
n es potencia de dos
d. ⁄ si n > 1; n es potencia de dos e. (
⁄) si
n es potencia
de dos
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE CÓMPUTO
SUBDIRECCIÓN ACADÉMICA
DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN ACADEMIA DE CIENCIAS DE LA COMPUTACIÓN
U.A. Análisis de Algoritmos Autor: Prof. Daniel Cruz García
3. Realice el análisis a priori, posteriori y la implementación de los siguientes algoritmos:
a. Torres de Hanói
b. Máximo
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE CÓMPUTO
SUBDIRECCIÓN ACADÉMICA
DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN ACADEMIA DE CIENCIAS DE LA COMPUTACIÓN
U.A. Análisis de Algoritmos Autor: Prof. Daniel Cruz García
c. Quicksort
Consideraciones de entrega:
1. La práctica será en equipos de máximo de 3 personas.
2. Enviar un solo archivo comprimido que contenga el reporte de la práctica y los códigos fuente. NO ANEXAR CÓDIGOS EJECUTABLES o con extensión *.exe
Fecha de entrega de la implementación y el reporte:
1. La parte una, dos, el análisis a priori y la implementación (los programas) de los algoritmos se revisará el día viernes 23 de octubre en horario de laboratorio.
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE CÓMPUTO
SUBDIRECCIÓN ACADÉMICA
DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN ACADEMIA DE CIENCIAS DE LA COMPUTACIÓN
U.A. Análisis de Algoritmos Autor: Prof. Daniel Cruz García
2. El reporte de la práctica se subirá a la plataforma Moodle en la liga habilitada para tal efecto, el día lunes 26 de octubre hasta las 23:00 hrs.