La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación dinámica (1)

Presentaciones similares


Presentación del tema: "Programación dinámica (1)"— Transcripción de la presentación:

1

2 Programación dinámica (1)
Descrito por primera vez en la década de 1950 por Richard Bellman, de la Universidad de Princeton como una técnica general para resolver problemas de optimización El problema de la optimización surge cuando hay muchas soluciones para un determinado problema y sólo una, o unas pocas, son las mejores La mejor solución se encuentra descomponiendo el problema original en subproblemas más sencillos (divide y vencerás). Las soluciones de los subproblemas están concatenadas: el cuarto subproblema sólo se resuelve con la solución del tercero, el tercero sólo se resuelve con la solución del segundo, y así sucesivamente. La solución del problema original incluye la solución de los diversos subproblemas. Programación dinámica (1)

3 Programación dinámica (2)
La estructura del subproblema es idéntica a la del problema original Programación dinámica (2)

4 Divide y vencerás Fuerza bruta: 6  6 DP: 6 + 6 1- 2 - 3 - 4
2 3 1 11 9 4 5 12 10 8 6 7 Divide y vencerás

5 Alineamientos globales
O (m × n) Alineamientos globales

6 J. Mol. Biol. (1970) 48,

7 Programación dinámica (3)
- Hace falta encontrar una fórmula recurrente (algoritmo) que vaya encontrando la solución de los subproblemas - Se comienza resolviendo el subproblema más trivial. La solución de cada subproblema se va guardando en la memoria del ordenador. Al final, daremos con la solución del problema global - El algoritmo trata de maximizar la puntuación final del alineamiento haciendo coincidir el mayor número posible de emparejamientos de valor elevado y minimizando el número de gaps y de emparejamientos de poco valor Programación dinámica (3)

8 Estructura del subproblema

9 Algoritmo de Needleman & Wunsch (NW)
G F (i-1, j-1) F (i-1, j) s(xi,yj) d F (i, j-1) G F (i, j) d Algoritmo de Needleman & Wunsch (NW)

10 El algoritmo - Se necesitan 2 secuencias y un sistema de puntuación
- Garantiza el alineamiento óptimo - Se lleva a cabo en tres etapas: Inicialización Rellenado de la matriz Retroceso - Es costoso en términos de tiempo de computación y de memoria de ordenador El algoritmo

11 El sistema de puntuación
- El sistema de puntuación asigna un valor a cada uno de los posibles casos que podemos encontrar al comparar dos residuos pertenecientes a secuencias distintas: * Coincidencias (matches): + 5 * Diferencias (mismatches): - 3 * Huecos (gaps, indels): - 4 El sistema de puntuación

12 En este ejemplo, la penalización por introducir un hueco es - 4
Match = + 5 Mismatch= − 3 Indel = − 4 En este ejemplo, la penalización por introducir un hueco es - 4 Inicialización

13 Rellenado de la matriz (1)
Match = + 5 Mismatch= − 3 Indel = − 4 Casilla (1,1): la máxima puntuación se alcanza haciendo coincidir las dos G (+ 5) Rellenado de la matriz (1)

14 Rellenado de la matriz (2)
Match = + 5 Mismatch= − 3 Indel = − 4 Casilla (1,2): la máxima puntuación se alcanza introduciendo un hueco (- 4) Rellenado de la matriz (2)

15 Rellenado de la matriz (3)
Match = + 5 Mismatch= − 3 Indel = − 4 - Se van llenando todas las casillas de la matriz - En cada casilla, además de la puntuación se pone una flecha que indica de dónde procede el valor Rellenado de la matriz (3)

16 Rellenado de la matriz (4)
En la casilla inferior izquierda de la matriz aparece la puntuación máxima del alineamiento: 11 Rellenado de la matriz (4)

17 Retroceso (Backtracking)
No hay huecos (Coincidencia o Diferencia) Hueco en la secuencia de la izquierda Hueco en la secuencia superior Retroceso (Backtracking)

18 Alineamiento global óptimo
- Se obtiene el alineamiento óptimo - Es posible que no tenga ningún sentido biológico Alineamiento global óptimo

19 Elementos de partida Ejemplo Secuencia 1: P A W H E A E
Secuencia 2: H E A G A W G H E E Matriz de puntuación: BLOSUM 50 Penalización por hueco: - 8 (Lineal) Ejemplo

20 Matriz de puntuación: BLOSUM 50
H E A G A W G H E E P A W H E Matriz de puntuación: BLOSUM 50

21 Inicialización y llenado de la matriz
H E A G A W G H E E P -8 A -16 W -24 H -32 E -40 A -48 E -56 F(i, j) = F(i-1, j-1) + s(xi ,yj) F(i, j) = max F(i, j) = F(i-1, j) - d F(i, j) = F(i, j-1) - d P-H=-2 E-P=-1 H-A=-2 E-A=-1 -2 -9 -10 -3 F(0,0) + s(xi ,yj) = = -2 F(1,1) = max F(0,1) - d = -8 -8= = -2 F(1,0) - d = -8 -8= -16 F(0,1) + s(xi ,yj) = = -9 F(1,2) = max F(1,1) - d = = = -9 F(0,2) - d = = -24 = -10 F(2,1) = max = -24 = -10 = -10 = -3 F(2,2) = max = = -3 = -17 Inicialización y llenado de la matriz

22 Llenado de la matriz, retroceso y alineamiento
H E A G A W G H E E P A W H E A E -8 -16 -17 -25 -21 -10 -18 -10 -5 -13 -8 E H - E - A P G - A W G - H E - A Alineamiento global óptimo: Llenado de la matriz, retroceso y alineamiento

23 En resumen

24 Alineamientos locales

25 J. Mol. Biol. (1981) 147,

26 Algoritmo de Smith & Waterman (SW)
Introduce tres modificaciones en relación al algoritomo de Needleman-Wunsch: 1.- La penalización por introducir un hueco al comienzo del alineamiento es 0 2.- Cuando un valor de la matriz de puntuación se hace negativo, se pone un 0. Es como si se comenzara un nuevo alineamiento. 3.- La máxima puntuación puede estar en cualquier lugar de la tabla. El retroceso comienza en la casilla con la puntuación más elevada y prosigue hasta alcanzar un 0. Algoritmo de Smith & Waterman (SW)

27 Características del algoritmo
- Se necesitan 2 secuencias y un sistema de puntuación - Garantiza el alineamiento óptimo - Se lleva a cabo en tres etapas: Inicialización Rellenado de la matriz Retroceso - Es costoso en términos de tiempo de computación y de memoria de ordenador Características del algoritmo

28 Algoritmo de Smith & Waterman (SW)
F (i, j) F (i, j-1) F (i-1, j) F (i-1, j-1) s(xi,yj) d G Algoritmo de Smith & Waterman (SW)

29 El sistema de puntuación
- En este ejemplo, el sistema de puntuación asigna un valor a cada uno de los posibles casos que podemos encontrar al comparar dos residuos pertenecientes a secuencias distintas: * Coincidencias (matches): + 5 * Diferencias (mismatches): - 3 * Huecos (gaps, indels): - 4 El sistema de puntuación

30 Match = + 5 Mismatch= − 3 Indel = − 4 La penalización por introducir un hueco al inicio del alineamiento es 0 1.- Inicialización

31 2.- Rellenado de la matriz
Match = +5 Mismatch= − 3 Indel = − 4 Casilla (1,1): la máxima puntuación se alcanza haciendo coincidir las dos G (+ 5) 2.- Rellenado de la matriz

32 2.- Rellenado de la matriz (2)
Match = +5 Mismatch= − 3 Indel = − 4 Casilla (1,2): la máxima puntuación se alcanza introduciendo un hueco (- 4) 2.- Rellenado de la matriz (2)

33 2.- Rellenado de la matriz (3)
Match = +5 Mismatch= − 3 Indel = − 4 Casilla (1,3): como todas las posibilidades dan valores negativos, se coloca un 0 2.- Rellenado de la matriz (3)

34 2.- Rellenado de la matriz (4)
La puntuación máxima puede aparecer en cualquier casilla de la matriz 2.- Rellenado de la matriz (4)

35 3.- Retroceso (Backtracking)
No hay huecos (Coincidencia o Diferencia) Hueco en la secuencia de la izquierda Hueco en la secuencia superior 3.- Retroceso (Backtracking)

36 Elementos de partida Otro ejemplo Secuencia 1: P A W H E A E
Secuencia 2: H E A G A W G H E E Matriz de puntuación: BLOSUM 50 Penalización por hueco: - 8 (Lineal) Otro ejemplo

37 Matriz de puntuación: BLOSUM 50
H E A G A W G H E E P A W H E Matriz de puntuación: BLOSUM 50

38 Inicialización y rellenado de la matriz
H E A G A W G H E E P A W H E A E 5 Inicialización y rellenado de la matriz

39 Retroceso: Alineamiento óptimo
H E A G A W G H E E P A W H E A E 5 20 12 22 28 AA WW G- HH E Alineamiento local óptimo: Retroceso: Alineamiento óptimo

40 Retroceso: Otro alineamiento
H E A G A W G H E E P A W H E A E 10 16 21 H EE AA Segundo mejor alineamiento local: Retroceso: Otro alineamiento


Descargar ppt "Programación dinámica (1)"

Presentaciones similares


Anuncios Google