compromisos espaciales-temporales - cinvestav
TRANSCRIPT
Compromisos espaciales-temporales
Dr. Eduardo A. RODRÍGUEZ TELLO
CINVESTAV-Tamaulipas
14 de marzo de 2018
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 1 / 51
1 Compromisos espaciales-temporales
2 Mejoramiento de la entraOrdenamiento por conteo-comparaciónBúsqueda de subcadenas (string matching)Búsqueda de subcadenas con preprocesamientoAlgoritmo de Horspool
3 Pre-estructuraciónHashing
4 Programación dinámica (PD)PD, alineamiento de secuencias biológicas
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 2 / 51
Compromisos espaciales-temporales
Compromisos espaciales-temporales
Existen dos variantes de algoritmos con compromisosespaciales-temporales:
1 Mejoramiento de la entra: preprocesa la entrada para almacenarinformación que será usada más tarde para resolver el problema
Ordenamiento por conteo-comparaciónAlgoritmos para búsqueda de subcadenas
2 Pre-estructuración: preprocesa la entrada para facilitar el accesoa sus elementos
HashingEsquemas de indexación (e.g., B-trees)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 3 / 51
Mejoramiento de la entra Ordenamiento por conteo-comparación
1 Compromisos espaciales-temporales
2 Mejoramiento de la entraOrdenamiento por conteo-comparaciónBúsqueda de subcadenas (string matching)Búsqueda de subcadenas con preprocesamientoAlgoritmo de Horspool
3 Pre-estructuraciónHashing
4 Programación dinámica (PD)PD, alineamiento de secuencias biológicas
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 4 / 51
Mejoramiento de la entra Ordenamiento por conteo-comparación
Ordenamiento por conteo-comparación
El ordenamiento por conteo-comparación contabiliza, para cadamiembro de la lista a ordenar, el número de elementos menoresque él y lo almacena en una tabla.
Estos números indicarán las posiciones de los elementos de lalista ordenada
Por ejemplo, si la cuenta es 10 para un elemento determinado,este estará en la posición 11 (cero basada) en el arreglo ordenado
Así es posible ordenar la lista simplemente copiando suselementos en las posiciones adecuadas en un arreglo nuevo(ordenado)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 5 / 51
Mejoramiento de la entra Ordenamiento por conteo-comparación
Ordenamiento por conteo-comparación
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 6 / 51
Mejoramiento de la entra Ordenamiento por conteo-comparación
Ordenamiento por conteo-comparación
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 7 / 51
Mejoramiento de la entra Ordenamiento por conteo-comparación
Ordenamiento por conteo-comparación
La complejidad del algoritmo de ordenamiento porconteo-comparación es Θ(n2)
Por lo tanto hace el mismo número de comparaciones que elordenamiento por selección
La ventaja es que el algoritmo hace el mínimo número posible demovimientos de los elementos al ponerlos en su lugar correcto
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 8 / 51
Mejoramiento de la entra Búsqueda de subcadenas (string matching)
1 Compromisos espaciales-temporales
2 Mejoramiento de la entraOrdenamiento por conteo-comparaciónBúsqueda de subcadenas (string matching)Búsqueda de subcadenas con preprocesamientoAlgoritmo de Horspool
3 Pre-estructuraciónHashing
4 Programación dinámica (PD)PD, alineamiento de secuencias biológicas
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 9 / 51
Mejoramiento de la entra Búsqueda de subcadenas (string matching)
Búsqueda de subcadenas (string matching)
Problema de búsqueda de subcadenas (string matching)Dada una cadena de n caracteres, llamada texto, y una cadena de mcaracteres (m < n), llamada patrón, encontrar una subcadena deltexto que coincida con el patrón. De manera más formal, se requiereencontrar el índice i del carácter más a la izquierda de la primerasubcadena que coincida en el texto, tal que:
ti = p0, . . . , ti+j = pj , . . . , ti+m−1 = pm−1
Si se requieren todas las subcadenas coincidentes entonces se pudeseguir analizando todo el texto.
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 10 / 51
Mejoramiento de la entra Búsqueda de subcadenas (string matching)
Búsqueda de subcadenas (string matching)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 11 / 51
Mejoramiento de la entra Búsqueda de subcadenas (string matching)
Búsqueda de subcadenas (string matching)
Peor caso: el algoritmo puede tener que hacer m comparacionesantes de avanzar el patrón, y esto para cada uno de los n−m+ 1intentosm(n−m+ 1) ∈ Θ(nm)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 12 / 51
Mejoramiento de la entra Búsqueda de subcadenas con preprocesamiento
1 Compromisos espaciales-temporales
2 Mejoramiento de la entraOrdenamiento por conteo-comparaciónBúsqueda de subcadenas (string matching)Búsqueda de subcadenas con preprocesamientoAlgoritmo de Horspool
3 Pre-estructuraciónHashing
4 Programación dinámica (PD)PD, alineamiento de secuencias biológicas
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 13 / 51
Mejoramiento de la entra Búsqueda de subcadenas con preprocesamiento
Búsqueda de subcadenas con preprocesamiento
Existen varios algoritmos para búsqueda de subcadena que se basanen la idea del mejoramiento de la entrada al preprocesar el patrón
Knuth-Morris-Pratt (KMP) preprocesa el patrón de izquierda aderecha para obtener información útil para la búsqueda posterior
Boyer-Moore preprocesa el patrón de derecha a izquierda yalmacena información útil en dos tablas
Horspool es una simplificación del algoritmo Boyer-Moore queemplea sólo una tabla de informa útil
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 14 / 51
Mejoramiento de la entra Algoritmo de Horspool
1 Compromisos espaciales-temporales
2 Mejoramiento de la entraOrdenamiento por conteo-comparaciónBúsqueda de subcadenas (string matching)Búsqueda de subcadenas con preprocesamientoAlgoritmo de Horspool
3 Pre-estructuraciónHashing
4 Programación dinámica (PD)PD, alineamiento de secuencias biológicas
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 15 / 51
Mejoramiento de la entra Algoritmo de Horspool
Algoritmo de Horspool
Es una versión simplificada del algoritmo Boyer-MoorePreprocesa el patrón para generar una tabla de desplazamiento(shift) que determina cuánto se debe desplazar el patrón cuandoocurre una no-coincidencia
Siempre efectúa un desplazamiento basado en el carácter c deltexto alineado con el último carácter en el patrón de acuerdo a latabla de desplazamiento para la entrada c
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 16 / 51
Mejoramiento de la entra Algoritmo de Horspool
Algoritmo de Horspool
Consideremos como ejemplo la búsqueda del patrón BARBER en untexto dado:
Iniciando en la última R del patrón y moviéndose de derecha aizquierda se comparan todos los pares de caracteres
Si todos los pares coinciden entonces se encontró unasubcadena coincidente en el texto
Sino, se requiere desplazar el patrón a la izquierda
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 17 / 51
Mejoramiento de la entra Algoritmo de Horspool
Algoritmo de Horspool
El algoritmo Horspool determina el tamaño del desplazamiento albuscar el carácter c del texto que está alineado con el últimocarácter del patrón
En general existen las siguientes 4 posibilidades
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 18 / 51
Mejoramiento de la entra Algoritmo de Horspool
Algoritmo de Horspool
Caso 1 Si no hay un carácter c en el patrón (c es la letra S en elejemplo), entonces podemos desplazar el patrón tantas posicionescomo su longitud
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 19 / 51
Mejoramiento de la entra Algoritmo de Horspool
Algoritmo de Horspool
Caso 2 Si hay ocurrencias del carácter c en el patrón pero no es elúltimo (c es la letra B en el ejemplo), entonces el desplazamientodebe alinear la ocurrencia más a la derecha de c en el patrón con elcarácter c en el texto
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 20 / 51
Mejoramiento de la entra Algoritmo de Horspool
Algoritmo de Horspool
Caso 3 Si c es el último carácter en el patrón pero no hay máscaracteres c entre los m− 1 restantes (c es la letra R en el ejemplo),entonces la situación es como el Caso 1 y el patrón debe serdesplazado m posiciones (la longitud del patrón)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 21 / 51
Mejoramiento de la entra Algoritmo de Horspool
Algoritmo de Horspool
Caso 4 Si c es el último carácter en el patrón y hay más caracteres centre los m− 1 restantes (c es la letra R en el ejemplo), entonces lasituación es como el Caso 2 y la ocurrencia más a la derecha de centre los primeros m− 1 caracteres en el patrón deben alinearse conel carácter c en el texto
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 22 / 51
Mejoramiento de la entra Algoritmo de Horspool
Algoritmo de Horspool
Los tamaños de los desplazamientos pueden ser precalculadosmediante la siguiente fórmula
t(c) =
m : si c no está en los primeros m− 1
caracteres del patrón
d(c, last) : de otro modo
donde d(c, last) es la distancia entre el c más a la derecha del patrón yel último carácter last de este.
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 23 / 51
Mejoramiento de la entra Algoritmo de Horspool
Algoritmo de Horspool
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 24 / 51
Mejoramiento de la entra Algoritmo de Horspool
Algoritmo de Horspool
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 25 / 51
Mejoramiento de la entra Algoritmo de Horspool
Algoritmo de Horspool, eficiencia
En el peor caso el algoritmo de Horspool pertenece a la claseO(nm)
Pero para textos aleatorios es Θ(n)
Aunque están en la misma clase de eficienca, el algoritmo deHorspool es obviamente más rápido en promedio que el algoritmode fuerza bruta
De hecho es generalmente más eficiente que el algoritmo deBoyer-Moore (más sofisticado).
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 26 / 51
Pre-estructuración Hashing
1 Compromisos espaciales-temporales
2 Mejoramiento de la entraOrdenamiento por conteo-comparaciónBúsqueda de subcadenas (string matching)Búsqueda de subcadenas con preprocesamientoAlgoritmo de Horspool
3 Pre-estructuraciónHashing
4 Programación dinámica (PD)PD, alineamiento de secuencias biológicas
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 27 / 51
Pre-estructuración Hashing
Hashing
Un método eficiente de implementar un diccionario, i.e., unconjunto con las siguientes operaciones:
búsquedainserciónborrado
Basado en cambio de representación y compromisosespaciales-temporales
Aplicaciones importantes:Tablas de símbolosBases de datos
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 28 / 51
Pre-estructuración Hashing
Hashing, tablas y funciones
La idea detrás del método de hashing es mapear llaves de unarchivo de tamaño n a una tabla de tamaño m, llamada tablahash, al usar una función predefinida, llamada función hash,
h : K → celda en la tabla hash (dirección hash)
Ejemplo: registros de estudiantes, llave Matricula, función hash:
h(K) = K mod m ,
donde m es un entero (típicamente primo)
Si m = 1000, dónde se encuentra almacenado el registro conMatricula= 314159265?
Generalmente, una función hash debe:Ser fácil de calcularDistribuir las llaves de forma balanceada en la tabla hash
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 29 / 51
Pre-estructuración Hashing
Hashing, colisiones
Si h(K1) = h(K2), entonces se da una colisiónLas buenas funciones de hash resultan en pocas colisiones perose debe estar preparado para procesarlas
Existen dos esquemas principales para manejar las colisiones:Hashing abierto, cada celda es el nodo cabeza de una lista ligadaque contiene todas las llaves mapeadas a esa celdaHashing cerrado
Una llave por celdaEn caso de colisión, encuentra otra celda: (a) muestreo lineal(siguiente libre), (b) hashing doble para calcular incremento
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 30 / 51
Pre-estructuración Hashing
Hashing, abierto
A, FOOL, AND, HIS, MONEY, ARE, SOON, PARTED.
h(A) = 1 mod 13 = 1, h(FOOL) = (6 + 15 + 15 + 12) mod 13 = 9
Colisión: h(ARE) = (1 + 18 + 5) mod 13 = 11 andh(SOON) = (19 + 15 + 15 + 14) mod 13 = 11
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 31 / 51
Pre-estructuración Hashing
Hashing, abierto
Si una función de hash distribuye las llaves de manera uniforme lalongitud promedio de la lista ligada será α = n/m. Esta razón esllamada factor de carga.
El número promedio de muestreos en las búsquedas exitosas S, yno exitosas U :
S ≈ 1 + α/2 , U = α
El valor del factor de carga α debe mantenerse pequeño(idealmente cercano a 1)
La eficiencia de las tres operaciones (búsqueda, inserción yborrado) es Θ(1) en el caso promedio
El hashing abierto funciona incluso si n > m
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 32 / 51
Pre-estructuración Hashing
Hashing, cerrado
Utiliza una llave por celda. En caso de colisión, encuentra otracelda con muestreo lineal (siguiente libre)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 33 / 51
Pre-estructuración Hashing
Hashing, cerrado
No funciona si n > m
Evita el uso de punterosEl borrado no es directoEl número de muestreos para búsqueda/inserción/borrado de unallave depende del factor de carga α = n/m y de la estrategia deresolución de colisiones. Para muestreo lineal:
S =1
2
(1 +
1
1− α
), U =
1
2
(1 +
1
(1− α)2
)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 34 / 51
Pre-estructuración Hashing
Hashing, cerrado
Conforme la tabla se va llenando (α se aproxima a 1), el númerode muestreos lineales aumenta dramáticamente
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 35 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
1 Compromisos espaciales-temporales
2 Mejoramiento de la entraOrdenamiento por conteo-comparaciónBúsqueda de subcadenas (string matching)Búsqueda de subcadenas con preprocesamientoAlgoritmo de Horspool
3 Pre-estructuraciónHashing
4 Programación dinámica (PD)PD, alineamiento de secuencias biológicas
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 36 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
El método de programación dinámica para alineamiento desecuencias biológicas se compone de 3 pasos fundamentales:
1 Inicialización2 Construcción de la matriz de puntajes3 Rastreo del alineamiento
Veamos un ejemplo de alineamiento de secuencias globalutilizando el algoritmo de programación dinámica deNeedleman/Wunsch
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 37 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
Ejemplo:Para este ejemplo las dos secuencias a alinear son:G A A T T C A G T T A (secuencia 1)G G A T C G A (secuencia 2)
Por lo tanto las longitudes de las secuencias son X = 11 y Y = 7respectivamente
Utilizaremos el siguiente esquema de puntaje simple:Si,j = 1, si el residuo en la posición i de la secuencia uno es elmismo que el de la posición j de la secuencia dos; sinoSi,j = 0 (no hay coincidencia)w = 0 (penalidad por hueco)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 38 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
InicializaciónEl primer paso consiste en crear una matriz con X + 1 columnas yY + 1 filas donde X y Y son los tamaños de las secuencias
En este ejemplo asumimos que no hay penalidad por huecos(w = 0) por lo que llenamos la primera fila y columna con 0
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 39 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
Construcción de la matriz de puntajesSe inicia en la esquina superior izquierda y se encuentra elmáximo puntaje Mi,j para cada posición i, j
Para conocer Mi,j se necesita saber el puntaje de las posicionesMi−1,j , Mi,j−1 y Mi−1,j−1 y usar la siguiente fórmula:
Mi,j = Max[Mi−1,j−1 + Si,j , Mi,j−1 + w, Mi−1,j + w] (1)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 40 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
Usando esta información el puntaje para la posición 1,1 en lamatriz puede ser calculado
En ambas secuencias el primer residuo es G entonces, S1,1 = 1, ycomo w = 0, entonces
M1,1 = Max[M0,0 + 1, M1,0 + 0, M0,1 + 0] = Max[1, 0, 0] = 1 (2)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 41 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
Como w = 0, el resto de la fila 1 y columna 1 puede llenarse con1’s
Tomemos de ejemplo la fila 1 columna 2
M1,2 = Max[M0,1 + 0, M1,1 + 0, M0,2 + 0] = Max[0, 1, 0] = 1 (3)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 42 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
Ahora llenemos la columna 2. En la fila 2 que tendra el valor:
M2,2 = Max[M1,1 + 0, M2,1 + 0, M1,2 + 0] = Max[0, 1, 0] = 1 (4)
Y la columna 2, fila 3:
M3,2 = Max[M2,1 + 1, M3,1 + 0, M2,2 + 0] = Max[2, 1, 1] = 2 (5)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 43 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
Usando el mismo procedimiento se llena la columna 3
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 44 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
Después de calcular todos los valores, la matriz de puntajesqueda así:
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 45 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
Rastreo del alineamientoDe la matriz anterior observamos que el puntaje máximo delalineamiento es 6
El paso de rastreo del alineamiento determina el alineamiento quelleva a este resultado
Éste comienza en la posición MX,Y de la matriz y verifica suspredecesores directos:
Vecino a la izquierda (hueco en secuencia 2)Vecino en la diagonal (coincidencia/no coincidencia)Vecino hacia arriba (hueco en secuencia 1)
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 46 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
Se elige uno de los vecinos (marcados en rojo)
Debido a que la celda actual vale 6, el único vecino que es posibleelegir es el de la diagonal
Lo que da el alineamientoAA
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 47 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
Ahora determinamos cual es el predecesor directo de la celdaactual, en este caso la celda roja con el 5
Esto agrega un hueco a la secuencia 2, por lo que el alineamientoactual es:T A_ A
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 48 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
Una vez más, el predecesor directo produce un hueco en lasecuencia 2:T T A_ _ A
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 49 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
Continuado estos pasos llegamos al siguiente alineamiento:G A A T T C A G T T AG G A _ T C _ G _ _ A
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 50 / 51
Programación dinámica (PD) PD, alineamiento de secuencias biológicas
PD, alineamiento de secuencias biológicas
Una solución alternativa es el siguiente alineamiento:G _ A A T T C A G T T AG G _ A _ T C _ G _ _ A
Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Compromisos espaciales-temporales 14 de marzo de 2018 51 / 51