Compromisos espaciales-temporales - CINVESTAV

Preview:

Citation preview

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

Recommended