Escolar Documentos
Profissional Documentos
Cultura Documentos
Comparar sequências
Recuperação de Informação: dada uma chave, buscar em um
dicionário por palavras que se assemelham à chave.
GA-CGGATTAG
GATCGGAATAG
score = 9 ·1+ 1·(-1) + 1·(-2) = 6
Problema: Alinhamento de duas cadeias de caracteres.
i) (m, n) ∈ M
ii) a m-ésima posição de X ∉ M
iii) a n-ésima posiçao de Y ∉ M
Caso ocorra o caso (ii), teremos que “pagar” o custo de um intervalo desde a m-
ésima posição de X que não foi encontrada e alinhar X 1, X2, ..., Xm-1 bem como Y1, Y2,
..., Yn. Deste modo teremos:
OPT(m, n) = δ + OPT(m -1, n).
Caso ocorra o caso (iii), será semelhante ao caso (ii), porém: OPT(m, n) = δ +
OPT(m, n -1).
2. Expressão Recursiva
i *δ se j=0
j *δ se i=0
OPT(i,j)
MAX [αXiYj + OPT(i -1, j -1), δ
+ OPT(i -1, j), δ + OPT(i, j -1)]
Ordem exponencial!
3.2 Algoritmo Utilizando Programação Dinâmica
1. Alinhamento_PD(X,Y,δ)
2. Initialize A[i,0] = i*δ for i = 0, ..., m
3. Initialize A[0,j] = j*δ for j = 1, ..., n
4. For i = 1, ..., m
5. For j = 1, ..., n
6. A[i,j] = max (αXiYj + A[i -1, j -1], δ + A[i -1, j], δ + A[i, j -1])
7. Endfor
8. Endfor
9. Return A[m,n]
3.3 Análise do algoritmo Alinhamento_PD(X,Y,δ)
15 406,265 0,01
16 2290,402 0,011
17 12069,45 0,012
18 0,011
19 0,01
20 0,011
• Diferentes aplicações, diferentes formas de
solução.
• Algoritmo recursivo tem tempo exponencial.
• Programação Dinâmica oferece uma solução
em tempo polinomial.
• T. H. Cormen, C. E. Leiserson, and R. L. Rivest, Introduction to algorithms, 1st
ed., The MIT Press, 1990.
• V. Bafna, E. L. Lawler, and P. A. Pevzner, Approximation algorithms for
multiple sequence alignment, Theoretical Computer Science 182 (1997), 233–
244.
• Freitas, Ana T., Alinhamento de Sequências, Guia do 2o Laboratório de
Biologia Computacional, Outubro de 2007.
• P. Bonizzoni and G. D. Vedova, The complexity of multiple sequence
alignment with SP-score that is a metric, Theoretical Computer Science 259
(2001), 63–79.