2.5 M´ etodo de Carrillo-Lipman
2.5.3 Caminho ´ Otimo e Proje¸ c˜ oes de Alinhamentos
Antes de deduzirmos f´ormulas para os limitantes dos custos que nos permitir˜ao restringir a regi˜ao de interesse no reticulado de programa¸c˜ao dinˆamica, notemos que as proje¸c˜oes de alinhamentos na dire¸c˜ao de um par de seq¨uˆencias tamb´em possui uma interpreta¸c˜ao geom´etrica.
Se s1, . . . , sks˜ao seq¨uˆencias sobre um alfabeto Σ eA´e um alinhamento livre de colunas em branco dessas seq¨uˆencias, sabemos que aA est´a associado um ´unico caminho orientado PAno reticulado de programa¸c˜ao dinˆamica e o caminho ´e uma representa¸c˜ao geom´etrica do alinhamentoA. De maneira similar, fixadas duas seq¨uˆencias, si e sj, com 1≤i < j≤k, a proje¸c˜ao A|i,j de A´e um alinhamento desi e sj e, no reticulado indexado apenas por essas seq¨uˆencias, A|i,j pode ser representada por um caminho. H´a, na realidade, uma conex˜ao entre o caminho que representaA|i,j eA: pela maneira como uma proje¸c˜aoA|i,j ´e definida a partir de um alinhamento A, ´e simples ver que o caminho de A|i,j ´e igual `a proje¸c˜ao do caminho deA na dire¸c˜ao do planoi, j.
De fato, a proje¸c˜ao A|i,j de um alinhamento A na dire¸c˜ao i, j´e definida como o alinha-mento obtido de A pela remo¸c˜ao de todas as linhas de A referentes `as seq¨uˆencias que n˜ao sejamsi ou sj e pela posterior remo¸c˜ao de colunas em branco. Lembrando-nos de que cada caminho orientado pode ser representado como uma seq¨uˆencia de v´ertices, temos que a pro-je¸c˜ao de um v´ertice v = (v1, . . . , vi, . . . , vj, . . . , vk) na dire¸c˜ao i, j ´e igual a v|i,j = (vi, vj) e este v´ertice, por sua vez, pode ser identificado com o v´ertice (0, . . . ,0, vi,0, . . . ,0, vj,0, . . . ,0) do reticulado de programa¸c˜ao dinˆamica em que constam todas as seq¨uˆencias, isto ´e, o ca-minho associado a uma proje¸c˜ao do alinhamentoAna dire¸c˜ao da seq¨uˆenciassi esj ´e igual
`
a proje¸c˜ao do caminho associado aAna dire¸c˜ao do plano relativo asi e asj.
Exemplo 2.1. Sejams1 =AT,s2=AC e s3 =Ae consideremos o alinhamento A=
AT AC A
entre essas trˆes seq¨uˆencias. O alinhamento A|2,3 ´e igual a A|2,3 = AC
A
. O caminho associado a A ´e (0,0,0) → (1,1,1) → (2,2,1) e o caminho associado a A|2,3 ´e (0,0) → (1,1)→ (2,1), que pode ser identificado com o caminho (0,0,0)→ (0,1,1) → (0,2,1) no reticulado tridimensional des1,s2 e s3 (veja Figura 2.6).
A T
(2,2,1)
A
(0,0,0)
A
C (0,2,1)
Figura 2.6: Um caminho associado ao alinhamentoAdes1,s2es3e a proje¸c˜ao do caminho na dire¸c˜ao do planos2 es3.
Sejam k≥2 um inteiro e s1, . . . , sk seq¨uˆencias sobre um alfabeto Σ. Dada uma fun¸c˜ao de pontua¸c˜ao de caracteresc: (Σ0)2→Q≥0, fixemos a fun¸c˜ao de pontua¸c˜ao de coluna SPc, dada pela F´ormula (2.1). Para simplificar a nota¸c˜ao, freq¨uentemente deixaremos a fun¸c˜ao c subentendida, escrevendo apenas SP.
Em nossa discuss˜ao, se se t s˜ao duas seq¨uˆencias, c(s, t) ´e o custo de um alinhamento
´
otimo entre essas duas seq¨uˆencias (i.e., o custo de alinhamento ´otimo do par de seq¨uˆencias).
Seja A um alinhamento qualquer de s1, . . . , sk e seja A∗ um alinhamento ´otimo dessas seq¨uˆencias. Por defini¸c˜ao, como A∗ ´e ´otimo, temos que SP(A∗) ≤ SP(A) e, pela
Proposi-¸
c˜ao 2.1, isso significa que P
i<jc(A∗|i,j) ≤ P
i<jc(A|i,j), onde A|i,j denota a 2-proje¸c˜ao do alinhamentoA na dire¸c˜ao das seq¨uˆencias si e sj.
Infelizmente, conforme ilustrado pela Figura 2.2, o fato deA∗ ser ´otimo n˜ao significa que c(A∗|i,j) =c(si, sj) para todo par de seq¨uˆencias si,sj, uma vez que podemos ter c(A∗|i,j)>
c(si, sj). O m´aximo que se pode afirmar ´e quec(si, sj)≤c(A∗|i,j), pois nenhum alinhamento de si e sj pode ter custo menor do que c(si, sj).
Mas nem mesmo ´e poss´ıvel afirmar quec(A∗|i,j)≤c(A|i,j), porque a desigualdade pode n˜ao valer para todo par de seq¨uˆencias. ´E poss´ıvel que ocorra que c(A|i,j) < c(A∗|i,j), isto
´
e, que a proje¸c˜ao de A na dire¸c˜ao de si e sj seja melhor do que a proje¸c˜ao de A∗ nessa dire¸c˜ao. Naturalmente, pela forma como a fun¸c˜ao SP ´e definida, n˜ao ´e poss´ıvel queA seja
2.5 M´etodo de Carrillo-Lipman 63
melhor do que A∗ em todas as dire¸c˜oes, pois, nesse caso,A∗ teria pontua¸c˜ao maior do que a de A e, com isso, A∗ n˜ao seria um alinhamento ´otimo. Decorre disso o fato de que se alguma proje¸c˜ao deA for melhor do que a proje¸c˜ao deA∗ naquela dire¸c˜ao, ent˜ao os custos das demais proje¸c˜oes de A∗ ser˜ao, no todo, menores do que os custos das proje¸c˜oes de A, uma “compensa¸c˜ao” devido `a hip´otese de que SP(A∗)≤SP(A).
A discuss˜ao dos par´agrafos acima significa, intuitivamente, que embora o custo de um alinhamento ´otimo A∗ em alguma proje¸c˜ao possa n˜ao ser ´otimo, este custo n˜ao pode estar
“muito longe” do custo de uma proje¸c˜ao de um alinhamentoAque seja melhor nessa dire¸c˜ao.
Sejamsetduas seq¨uˆencias quaisquer. Denotamos por melhors,t(i, j) o custo do melhor alinhamento de se tque tenha (i, j) como corte, isto ´e,
melhor
s,t (i, j) = min{c(A) :A∈ As,t e A possui o corte (i, j)}, ondeAs,t ´e o conjunto dos alinhamentos entre se t.
A id´eia-chave do m´etodo de Carrillo-Lipman ´e estimar um limite superior digamos,Ui,j, para cada custo c(A∗|i,j) (sendo que, naturalmente, c(A∗|i,j) ´e desconhecido). Se o caminho P∗ associado aA∗ passa pelo v´erticev∗= (v∗1, . . . , v∗k), ent˜ao a proje¸c˜aoP|i,j∗ deste caminho na dire¸c˜ao de si e sj passa pelo v´ertice (v∗i, v∗j).
Similarmente, seA ´e um alinhamento qualquer entre ask seq¨uˆencias e o caminho de A passa porv= (v1, . . . , vk), sua proje¸c˜ao na dire¸c˜ao desi esj passa por (vi, vj).
Se soubermos que, dentre os caminhos que passam por (vi, vj), o de menor custo tiver custo maior do que o limite superior Ui,j estimado para c(A∗|i,j), ent˜ao sabemos que a proje¸c˜aoP|i,j∗ n˜ao passa por (vi, vj), o que significa queP∗ n˜ao passa por nenhum v´ertice do reticulado cujai-´esima coordenada sejavie cujaj-´esima coordenada sejavj. As entradas da matriz de programa¸c˜ao dinˆamica correspondentes a esses v´ertices n˜ao precisam, portanto, de serem calculadas para determinar o alinhamento ´otimo.
A determina¸c˜ao de melhors,t(i, j) ´e relativamente simples. SejaB um alinhamento ´otimo de s e t que passe por (i, j). Por um argumento similar ao usado na Se¸c˜ao 1.5.3 sobre a Propriedade das Subsolu¸c˜oes ´Otimas do Problema APS, podemos ver que seB = (B0 :B00), com B0 =
s[1. .i]
t[1. .j]
e B00 =
s[i+1. .m]
t[j+1. .n]
, ent˜ao B0 ´e um alinhamento ´otimo entres[1 . .i]
e t[1 . .j] e B00 ´e um alinhamento ´otimo entre o restante dessas seq¨uˆencias8. Ademais, o custo de B0 pode ser facilmente calculado por uma chamada `a fun¸c˜ao Dist definida no Cap´ıtulo 1 e o custo de B00 pode ser calculado por uma chamada a Dist-Rev. Se as,t e bs,t s˜ao respectivamente as matrizes de programa¸c˜ao dinˆamica devolvidas pelas chamadas Dist(s, t) eDist-Rev(s, t), ent˜ao melhors,t(i, j) pode ser calculado pela f´ormula
melhor
s,t (i, j) =as,t[i, j] +bs,t[i, j], (2.3) para todoie j.
Os limites superiores Ui,j podem ser calculados tamb´em de maneira simples. Para as seq¨uˆenciass1, . . . , sk, sejamA∗ um alinhamento ´otimo eA um alinhamento qualquer. Pela defini¸c˜ao de A∗ temos que SP(A∗) ≤ SP(A), de onde segue, pela Proposi¸c˜ao 2.1, que P
i<jc(A∗|i,j)≤P
i<jc(A|i,j).
Da´ı, para duas seq¨uˆencias fixadassp e sq, com p < q, temos que c(A∗|p,q) + X
(i,j)6=(p,q) i<j
c(A∗|i,j) ≤ c(A|p,q) + X
(i,j)6=(p,q) i<j
c(A|i,j),
8Ou seja,B possui o corte (i, j).
de onde segue que
c(A∗|p,q) ≤ c(A|p,q) + X
(i,j)6=(p,q) i<j
c(A|i,j)− X
(i,j)6=(p,q) i<j
c(A∗|i,j).
Na desigualdade acima, o lado direito da inequa¸c˜ao poderia ser usado como limitante superior para o custo de uma proje¸c˜ao de A∗, se n˜ao fosse pelo fato de que ele envolve os custos de outras proje¸c˜oes deA∗, que s˜ao desconhecidos.
Pode-se contornar essa dificuldade usando-se que c(si, sj) ≤ c(A∗|i,j), de onde decorre, por soma membro a membro de todas as possibilidades para a inequa¸c˜ao que
X
(i,j)6=(p,q) i<j
c(si, sj) ≤ X
(i,j)6=(p,q) i<j
c(A∗|i,j).
Da´ı,
− X
(i,j)6=(p,q) i<j
c(A∗|i,j) ≤ − X
(i,j)6=(p,q) i<j
c(si, sj)
e ent˜ao
c(A∗|p,q) ≤ c(A|p,q) +
X
(i,j)6=(p,q) i<j
c(A|i,j)− X
(i,j)6=(p,q) i<j
c(A∗|i,j)
≤ c(A|p,q) +
X
(i,j)6=(p,q) i<j
c(A|i,j)− X
(i,j)6=(p,q) i<j
c(si, sj)
. (2.4)
Definindo U = P
i<jc(A|i,j) e L = P
i<jc(si, sj), a desigualdade (2.4) pode ser reescrita como
c(A∗|p,q) ≤
c(A|p,q) + X
(i,j)6=(p,q) i<j
c(A|i,j)
−
X
(i,j)6=(p,q) i<j
c(si, sj) +c(sp, sq)−c(sp, sq)
= U−L+c(sp, sq).
Se definimosC =U−L, que ´e denominada aconstante de Carrillo-Lipman para a instˆancia do problema, temos finalmente (ap´os uma mudan¸ca de ´ındices) que
c(si, sj)≤c(A∗|i,j)≤c(si, sj) +C, (2.5) para todo par i, j, onde c(si, sj) +C ´e o limitante superior desejado, que depende apenas do alinhamento A e dos custos de alinhamentos ´otimos entre as seq¨uˆenciass1, . . . , sk.
A inequa¸c˜ao (2.5) nos diz que embora o custo de uma 2-proje¸c˜ao de um alinhamento
´
otimo n˜ao seja m´ınimo, ele est´a no intervalo entre o m´ınimo e m´ınimo mais uma constante, o que d´a sentido `a intui¸c˜ao de que o custo das 2-proje¸c˜oes n˜ao pode “estar muito longe” do m´ınimo.
2.5 M´etodo de Carrillo-Lipman 65
Para a obten¸c˜ao do limiteCdas inequa¸c˜oes, um alinhamentoAqualquer foi usado para calcular U. Este alinhamento de s1, . . . , sk pode ser proveniente da aplica¸c˜ao de alguma heur´ıstica (como, por exemplo, os alinhamentos obtidos pelo programa Clustal9) ou de algum algoritmo de aproxima¸c˜ao (como, por exemplo, os algoritmos vistos no Cap´ıtulo 4).
O alinhamento ´otimo A∗ obtido pelo m´etodo de Carrillo-Lipman pode ser interpretado nessas condi¸c˜oes como um “refinamento” da solu¸c˜ao Aobtida por algum outro m´etodo.
Na realidade, embora tenhamos usado um alinhamento para deduzir a inequa¸c˜ao (2.5), tudo o que ´e usado a respeito dele ´e o seu custo e o alinhamento em si n˜ao ´e utilizado al´em do c´alculo deU. Assim, o m´etodo de Carrillo-Lipman pode ser usado se dispusermos apenas de um limite superior U no custo de um alinhamento ´otimo A∗ (i.e., um limite U tal que SP(A∗)≤U).
Apesar de qualquer limite superior poder ser usado no m´etodo de Carrillo-Lipman, limites superiores menores s˜ao preferidos, uma vez que a constante C fica menor e, assim, o limite superior ditado pela desigualdade (2.5) significa que mais v´ertices do reticulado de programa¸c˜ao dinˆamica podem ser descartados.
Mas ent˜ao, dado um v´ertice vdo reticulado, como decidir se v´e um v´ertice importante para calcular alinhamentos ´otimos?
Se v = (v1, . . . , vi, . . . , vj, . . . , vk) ´e um v´ertice pertencente a um caminho associado a um alinhamento ´otimo A∗, ent˜ao se i < j, para as seq¨uˆencias si e sj, sabemos que c(si, sj)≤melhorsi,sj(vi, vj)≤c(A∗|i,j)≤c(si, sj) +C, onde a primeira desigualdade segue do fato de c(si, sj) ser a melhor pontua¸c˜ao poss´ıvel de alinhamentos de si e sj, a segunda segue do fato de melhorsi,sj(vi, vj) ser a melhor pontua¸c˜ao poss´ıvel dentre os alinhamentos de si e sj que possuem o corte (vi, vj) e a terceira segue da inequa¸c˜ao (2.5). Como o par (i, j) comi < j´e gen´erico, temos que sev´e um v´ertice no caminho ´otimo entre as seq¨uˆencias da entrada, vale que melhorsi,sj(vi, vj)≤c(si, sj) +C para todas as 2-proje¸c˜oes dev.
Caso contr´ario, se houver um v´erticev para o qual existemiej tais quec(si, sj) +C <
melhorsi,sj(vi, vj), ent˜ao todos os caminhos que passam porvtˆem proje¸c˜ao na dire¸c˜ao desi e sj com custo maior do que o limite superior no custo da proje¸c˜ao do alinhamento ´otimo e, portanto, sabe-se de antem˜ao que o v´ertice v n˜ao ´e corte de nenhum alinhamento ´otimo e pode ser exclu´ıdo do c´alculo de programa¸c˜ao dinˆamica.
Isso motiva a defini¸c˜ao dev´ertice relevante.
Defini¸c˜ao 2.6 (V´ertice Relevante). Um v´ertice v = (v1, . . . , vi, . . . , vj, . . . , vk) do reti-culado de programa¸c˜ao dinˆamica ´e dito relevante para calcular um alinhamento ´otimo se, para todo pari, j com 1≤i < j≤ktivermos que melhorsi,sj(vi, vj)≤c(si, sj) +C.
Em resumo, apenas os v´ertices relevantes s˜ao aqueles que podem fazer parte de um caminho ´otimo no reticulado.
Observe-se que n˜ao h´a problemas em restringir os c´alculos aos v´ertices relevantes, uma vez que seA∗for um alinhamento ´otimo des1, . . . , skeAfor um alinhamento qualquer dessas seq¨uˆencias com pontua¸c˜aoc(A) =U, ent˜ao restringir o c´alculo a um v´ertice relevantevque seja corte de um alinhamento A0 significa que melhorsi,sj(vi, vj) ≤c(A0|i,j) ≤ c(si, sj) +C para todoi < j, ou seja,
X
i<j
melhor
si,sj
(vi, vj)≤X
i<j
c(A0|i,j)≤X
i<j
s(si, sj) +X
i<j
C,
9Dispon´ıvel emhttp://www.ebi.ac.uk/clustalw/.
isto ´e,
c(A∗)≤C(A0)≤L+ k
2
C. (2.6)
Como aplicamos o m´etodo de Carrillo-Lipman para k≥2 seq¨uˆencias, sabemos que k2
≥1 e da´ı ´e poss´ıvel ver que o limite superior no custo dos alinhamentos que o m´etodo usa ao s´o verificar v´ertices relevantes ´e de pelo menos L+ 1C =L+ (U−L) =U, isto ´e, o limite superior conhecido no custoc(A∗), o que significa que o m´etodo descarta com seguran¸ca os v´ertices do reticulado (de modo que se U for realmente um limite superior no custo de um alinhamento ´otimo, ent˜ao um alinhamento ´otimo poder´a ser encontrado).
Da inequa¸c˜ao (2.6) ´e poss´ıvel ver que considerar a constante C muito grande significa que o m´etodo de Carrillo-Lipman torna-se menos restritivo em rela¸c˜ao aos alinhamentos que ele considera para encontrar o ´otimo e, portanto, o m´etodo potencialmente emprega mais tempo se C for maior.
De posse dos crit´erios para avaliar se uma entrada da matriz/v´ertice do reticulado ´e relevante para o c´alculo do alinhamento ´otimo, podemos dar alguns detalhes sobre um algoritmo que implemente o m´etodo.