Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Teorı́a de Algoritmos
Guión de Prácticas
Curso 2002-03
Ingenierı́a Informática
Ingenierı́a Técnica en Informática de Gestión
Ingenierı́a Técnica en Informática de Sistemas
Práctica 2
Programación Dinámica
2.1. Objetivo
El objetivo de la práctica es que el alumno comprenda y asimile el fun-
cionamiento de las técnica de diseño de algoritmos basada en Programación
Dinámica. Para ello se propondrá un problema que habrá de resolverse apli-
cando esta técnica.
1
2.2 Encontrar la subsecuencia común más larga 2
Ejemplo
Las cadenas de ADN codifican toda la información genética de un ser vivo
empleando un alfabeto de tan sólo cuatro letras: a (adenina), c (citosina),
g (guanina), t (timina), correspondientes a las cuatro macromoléculas que
pueden aparecer en estas cadenas.
En un análisis para comparar si dos cadenas de ADN pertenecen a un
mismo individuo (o comprobar si dos individuos están emparentados) se de-
termina cuál es la subsecuencia común de longitud máxima y se determina
el porcentaje de longitud de subsecuencia respecto a la longitud de la cadena
del individuo.
Supongamos dos cadenas A = hgacggattagi y B = hgatcggaatagi con
longitudes m = 10 y n = 11, respectivamente. Entonces una subsecuencia
común de longitud máxima serı́a:
A= ga cggattag
B= gatcggaatag
-------------
ga cgga tag
0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1 1 1
0 1 2 2 2 2 2 2 2 2 2 2
0 1 2 2 3 3 3 3 3 3 3 3
0 1 2 2 3 4 4 4 4 4 4 4
0 1 2 2 3 4 5 5 5 5 5 5
0 1 2 2 3 4 5 6 6 6 6 6
0 1 2 3 3 4 5 6 6 7 7 7
0 1 2 3 3 4 5 6 6 7 7 7
0 1 2 3 3 4 5 6 7 7 8 8
0 1 2 3 3 4 5 6 7 7 8 9
A = g aca cgggattag
B = ggacatcggaa tag
----------------
g aca cgga tag
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 1 2 2 2 2 2 2 2 2 2 2 2 2
0 1 1 2 3 3 3 3 3 3 3 3 3 3 3
0 1 1 2 3 4 4 4 4 4 4 4 4 4 4
0 1 1 2 3 4 4 5 5 5 5 5 5 5 5
0 1 2 2 3 4 4 5 6 6 6 6 6 6 6
0 1 2 2 3 4 4 5 6 7 7 7 7 7 7
0 1 2 2 3 4 4 5 6 7 7 7 7 7 8
0 1 2 3 3 4 4 5 6 7 8 8 8 8 8
0 1 2 3 3 4 5 5 6 7 8 8 9 9 9
0 1 2 3 3 4 5 5 6 7 8 8 9 9 9
0 1 2 3 3 4 5 5 6 7 8 9 9 10 10
0 1 2 3 3 4 5 5 6 7 8 9 9 10 11
2.4.2. Disquete
Junto con la memoria se entregará un disquete con las implementaciones
de los algoritmos indicados. Además de todos los ficheros fuentes correspon-
dientes se incluirá un fichero Makefile que automatice la compilación.
El disquete irá etiquetado con el tı́tulo de la práctica, y el nombre y grupo
de prácticas del alumno.
Finalmente, el disquete se adjuntará dentro de un sobre pequeño pegado
a una de las páginas de la memoria.
2.4 Evaluación de la práctica 6