• Nenhum resultado encontrado

An´ alise de Complexidade

No documento Alinhamento de Seq¨uˆencias Biol´ogicas (páginas 86-92)

2.5 M´ etodo de Carrillo-Lipman

2.5.5 An´ alise de Complexidade

Para simplificar as an´alises, vamos adotar como conven¸c˜ao que todas as seq¨uˆencias sendo alinhadas possuem tamanho igual a n. Os limites deduzidos aqui s˜ao facilmente adaptados se as seq¨uˆencias n˜ao forem todas do mesmo tamanho.

11Estamos supondo que todos acessos `a estrutura de dados sejam feitos por meio das fun¸oes dadas.

2.5 M´etodo de Carrillo-Lipman 69

Algoritmo 2.6Dist-CL(k, s1, . . . , sk, U)

Entrada: Seq¨uˆenciass1, . . . , sk, com k≥2, e um racionalU, com SP(s1, . . . , sk)≤U. Sa´ıda: A matrizacom ponteiros indicando os m´ınimos para c´alculo de um caminho ´otimo.

1: para todoi, j com 1≤i < j≤kfa¸ca

2: asi,sj ←Dist(si, sj);

3: bsi,sj ←Dist-Rev(si, sj);

4: melhorsi,sj ←asi,sj +bsi,sj;

5: L←P

i<jc(si, sj) =P

i<jasi,sj[ni, nj];

6: C←U −L;

7: Q←novafila; Q←Q∪ {~0}; // A uni˜ao ´e feita como inclus˜ao na fila

8: enquantoQ6=∅ fa¸ca

9: v←in´ıcio(Q);

10: parab∈ {0,1}k\ {~0} em ordem lexicogr´aficafa¸ca

11: se v+b≤~ne v+b´e relevante ent˜ao

12: sev+bj´a foi visto ent˜ao

13: // v+b visto significaa[v+b] inicializada

14: a[v+b]←min{a[v] + SP(b⊗s[v+b]), a[v+b]};

15: sen˜ao

16: //v+b foi atingido pela primeira vez ea[v+b] deve ser inicializada

17: a[v+b]←a[v] + SP(b⊗s[v+b]);

18: Q←Q∪ {v+b};

19: sen˜ao

20: Ignorev+b;

21: Devolvap

Embora o m´etodo de Carrillo-Lipman possa levar a uma redu¸c˜ao de tempo para preen-cher a parte relevante da matriza, n˜ao ´e poss´ıvel fornecer garantias de que h´a sempre uma economia de tempo, j´a que o tempo depende do valor de U passado para o algoritmo (i.e., de qu˜ao “longe” o alinhamento A estiver de A em termos de custo) e, de acordo com a desigualdade (2.6), o algoritmo pode n˜ao conseguir descartar muitos v´ertices se a constante C ou se k forem grandes.

O Algoritmo Dist-CL calcula as matrizes melhorsi,sj para cada par de seq¨uˆencias da entrada. Cada matriz melhorsi,sj pode ser computada como a soma das matrizes asi,sj e bsi,sj em tempo O(n2). Como existem k2

pares de seq¨uˆencias, o tempo total para este pr´e-processamento ´e k2

O(n2) = O(k2n2). As outras inicializa¸c˜oes (c´alculo de L e de C) podem ser feitas em tempo total igual a O(k2).

O teste de relevˆancia de uma entrada da matrizapode ser feito tamb´em em tempoO(k2), pois, fixado um v´erticev, verifica-se, para cada par 1 ≤i < j≤ k, se melhorsi,sj(vi, vj)≤ s(si, sj)+C=asi,sj[n, n]+C. No pior caso, o algoritmo pode precisar visitar todos os (n+1)k v´ertices e, para cada v´erticev, calcular a entrada a[v]. Isso significa que, essencialmente, o AlgoritmoDist-CLexecuta os passos do AlgoritmoDist-AVS, fazendo um passo adicional de verificar a relevˆancia de cada entrada da matriz. Logo, o tempo gasto pelo algoritmo

´

e O(k2n2) +O((n+ 1)kk22k) +O((n+ 1)kk2) =O((n+ 1)kk22k), onde o primeiro termo corresponde ao pr´e-processamento, o segundo ao tempo de preencher todas as c´elulas da matriz ae o terceiro, ao teste de relevˆancia das (n+ 1)k entradas da matriz a.

Um alinhamento ´otimo pode ser obtido facilmente se durante os c´alculos de m´ınimo do Algoritmo Dist-CL forem mantidos ponteiros para as posi¸c˜oes que resultaram nos valores m´ınimos. Pode-se determinar o alinhamento em tempo linear, como feito para o algoritmo b´asico de programa¸c˜ao dinˆamica para o Problema AVS, isto ´e, em tempo O(kl) =O(k(kn)) =O(k2n).

Finalmente, em rela¸c˜ao ao espa¸co, o algoritmo pode preencher todas as entradas deae usar (como no caso b´asico de programa¸c˜ao dinˆamica), espa¸co O((n+ 1)k) e mais uma vez o coment´ario a respeito de complexidade de espa¸co feito para o algoritmo b´asico ´e v´alido.

E interessante notar a semelhan¸´ ca de funcionamento entre o Algoritmo Dist-CL e o Algoritmo de Dijkstra para caminhos m´ınimos, incluindo a cole¸c˜ao de n´os mantida em forma de uma fila pelos algoritmos (no caso do Algoritmo de Dijkstra, a fila deve ser uma fila de prioridades para garantir o processamento dos v´ertices em ordem de seus r´otulos).

Cap´ıtulo 3

Complexidade do Problema AVS

“This solution is gloriously non-deterministic.”

— E. W. Dijkstra (1930–2002)

3.1 Introdu¸ c˜ ao

Nos cap´ıtulos anteriores, nossa aten¸c˜ao esteve principalmente voltada para o desenvol-vimento e an´alise de algoritmos para encontrar alinhamentos ´otimos. Embora os algoritmos desenvolvidos tenham complexidade polinomial para qualquer n´umero fixado de seq¨uˆencias, eles tornam-se pouco pr´aticos at´e mesmo para um pequeno n´umero de seq¨uˆencias (depen-dendo das instˆancias a serem resolvidas), ainda que m´etodos para economia de espa¸co e de tempo (como o de Carrillo-Lipman) sejam usados [Fue97, GKS95].

Infelizmente, n˜ao se conhecem algoritmos ou t´ecnicas que sirvam para resolver os Pro-blemas APS e AVS de maneira exata (isto ´e, que encontrem alinhamentos que minimizem suas respectivas fun¸c˜oes objetivo) e em toda sua generalidade com complexidades de espa¸co e de tempo de pior caso assintoticamente menores do que as dos algoritmos que j´a vimos.

E claro que exce¸´ c˜ao deve ser feita ao considerarmos vers˜oes mais restritas dos problemas, que s˜ao casos em que pode haver algoritmos que resolvam tais vers˜oes em tempo ou espa¸co menores do que os algoritmos mais gerais.

H´a ainda outra classe de algoritmos para os problemas de alinhamentos. Um exemplo de um algoritmo para o Problema APS que opera com complexidade de pior caso igual

`

a dos algoritmos de programa¸c˜ao dinˆamica, mas que pode requerer menos recursos para grande parte das instˆancias ´e o algoritmo proposto em 1983 por Ukkonen para o problema de alinhar pares de seq¨uˆencias em que a distˆancia de edi¸c˜ao ´e a fun¸c˜ao objetivo. O algoritmo tem complexidade de tempo igual aO(d(s, t)·min(|s|,|t|)) e complexidade de espa¸co igual a O(d(s, t)2) para encontrar um alinhamento ´otimo entre duas seq¨uˆenciasset. No pior caso, a distˆancia entre duas seq¨uˆencias de tamanho n´e Θ(n) e este algoritmo exibe tamb´em o comportamento quadr´atico de tempo e espa¸co do algoritmo b´asico de programa¸c˜ao dinˆamica para o Problema APS, embora ele possa ser melhor em situa¸c˜oes em que as seq¨uˆencias sejam

“pr´oximas”. Se apenas a distˆancia de edi¸c˜ao entre as seq¨uˆencias for desejada, a complexidade de espa¸co do Algoritmo de Ukkonen pode ser reduzida paraO(d(s, t)) [Ukk83, Ukk85].

A complexidade de tempo do algoritmo b´asico de programa¸c˜ao dinˆamica (inclusive no caso multidimensional) e a necessidade de encontrar rapidamente “bons” alinhamentos para

aplica¸c˜oes pr´aticas de Biologia levaram ao projeto e uso de algoritmos e heur´ısticas que n˜ao necessariamente encontram alinhamentos ´otimos para todas instˆancias do problema, mas que rodam em tempo “aceit´avel na pr´atica” e que devolvem “respostas razo´aveis”.

Cabe aqui reiterar o coment´ario de que a modelagem do problema de encontrar alinha-mentos n˜ao captura todos os aspectos biologicamente significativos (como, por exemplo, similaridades de estruturas secund´arias de seq¨uˆencias de RNA e muta¸c˜oes compensat´orias), sendo a modelagem matem´atica uma simplifica¸c˜ao da situa¸c˜ao encontrada na pr´atica. Na realidade, at´e mesmo programas1 que empregam v´arias heur´ısticas para obter as respostas parecem n˜ao satisfazer em v´arios casos `as necessidades que surgem em Biologia e os alinha-mentos produzidos como resposta s˜ao geralmente inspecionados e modificados manualmente antes do uso. A express˜ao “respostas razo´aveis” deve ser, portanto, interpretada de acordo [HSP00].

Toda a dificuldade em obter algoritmos r´apidos para encontrar alinhamentos obviamente nos conduz `a pergunta de se ´e poss´ıvel, de fato, desenvolver algoritmos que sejam r´apidos (mais precisamente, de tempo de execu¸c˜ao polinomial no tamanho da entrada) para o Problema AVS. Uma quest˜ao um pouco mais ambiciosa ´e descobrir n˜ao apenas se ´e ou n˜ao poss´ıvel projetar um algoritmo de tempo polinomial para o problema, mas de descobrir quais s˜ao os recursos de tempo necess´arios para um algoritmo qualquer que o resolva.

Embora n˜ao saibamos responder `as perguntas acima de maneira direta (`a semelhan¸ca de muitos outros casos, conforme exposto por Garey e Johnson [GJ79, Cap´ıtulo 1]), pode-se mostrar que para uma ampla claspode-se de instˆancias, o Problema AVS ´e pelo menos t˜ao dif´ıcil, em termos de complexidade de tempo, quanto outros problemas combinat´orios, no sentido de que se houver um algoritmo que resolva o Problema AVS em tempo polinomial para qualquer entrada, ent˜ao cada um dos problemas de uma grande classe, a classe dos Problemas NP, tamb´em admitir´a um algoritmo de tempo polinomial.

O presente cap´ıtulo possui natureza diferente dos cap´ıtulos anteriores: enquanto l´a es-tivemos preocupados com o desenvolvimento de algoritmos, aqui o foco ´e o problema de alinhamentos em si de uma maneira mais geral e abstrata, independente de quais s˜ao os algoritmos usados para resolvˆe-lo. Nosso objetivo ´e mostrar a rela¸c˜ao entre o Problema AVS e os problemas mais dif´ıceis da classe NP de problemas de decis˜ao, os problemas NP-completos.

Para o estudo da intratabilidade computacional de problemas, ´e conveniente fazer dis-tin¸c˜ao entre os problemas que podem e os que n˜ao podem ser resolvidos por algoritmos de tempo polinomial. Dizemos que um algoritmo que usa tempo polinomial no tamanho de sua entrada ´e um algoritmo polinomial. Caso a complexidade de tempo de um algoritmo n˜ao possa ser limitada por um polinˆomio, o algoritmo ´e dito exponencial2. Os problemas que admitem um algoritmo polinomial que os resolva s˜ao ditos problemas de solu¸c˜ao eficiente ou que podem serresolvidos eficientemente. Caso um problema n˜ao admita um algoritmo polinomial, ele ´e dito um problema intrat´avel. Nesse sentido, a polinomialidade de

solu-¸

c˜oes para um dado problema funciona como o limite para distinguir problemas “f´aceis” de problemas “dif´ıceis”.

Uma id´eia central para estudar a complexidade de problemas ´e a id´eia deredu¸c˜ao. Intui-tivamente, um problema Π reduz-se a um problema Π0 se for poss´ıvel resolver o problema Π

1Como ´e o caso do Clustal W.

2E importante ressaltar que essa nomenclatura, apesar de tradicional, ´´ e incorreta, uma vez que se um algoritmo tiver complexidade de tempo superpolinomial, mas subexponencial (como ´e o caso da fun¸ao nlogn=elog2n=o(en)) ele ser´a ainda assim chamado de exponencial.

3.1 Introdu¸c˜ao 73

usando-se algum algoritmo que resolva Π0, isto ´e, se for poss´ıvel “adaptar” um algoritmo que resolva o problema Π0 para resolver tamb´em o problema Π, de maneira que o problema Π possa ser observado como um caso particular do problema Π0, ap´os uma “tradu¸c˜ao” (que ´e a redu¸c˜ao). Para efeito do estudo de complexidade dos problemas, queremos que as redu¸c˜oes sejam tamb´em algoritmos polinomiais. Dizemos que uma redu¸c˜ao cuja complexidade de tempo ´e limitada superiormente por um polinˆomio ´e umaredu¸c˜ao polinomial.

Uma classe muito grande de problemas ocupa uma posi¸c˜ao de destaque em Ciˆencia da Computa¸c˜ao, a classe dos j´a mencionados problemas NP-completos. Para esses problemas, n˜ao se conhecem algoritmos eficientes, mas tamb´em n˜ao se conhecem provas de que eles sejam intrat´aveis. De qualquer maneira, esses problemas compartilham a curiosa caracte-r´ıstica de que todos problemas NP-completos s˜ao redut´ıveis em tempo polinomial a todos outros problemas da classe, o que significa que se um desses problemas puder ser resolvido em tempo polinomial, ent˜ao todos os demais problemas da classe tamb´em poder˜ao e, portanto, em rela¸c˜ao `a intratabilidade, todos eles s˜ao “iguais”. Pelo motivo de um grande n´umero de importantes problemas pertencer a esta classe, por terem todos eles essencialmente “a mesma” dificuldade (no sentido de intratabilidade) e por nenhum algoritmo polinomial ser conhecido para nenhum destes problemas (ainda que nenhuma prova de sua complexidade inerente seja conhecida), o m´aximo que se pode dizer a respeito de tais problemas ´e que eles s˜ao aparentemente intrat´aveis3 [GJ79].

A primeira demonstra¸c˜ao de dificuldade (no sentido de NP-completude) do Problema AVS foi publicada em 1994 por Wang e Jiang [WJ94]. A demonstra¸c˜ao apresentada naquele artigo, apesar de concisa, restringe-se ao caso de pontua¸c˜ao SP em que a matriz de pontua¸c˜ao n˜ao ´e uma m´etrica (a matriz atribui pontua¸c˜ao n˜ao-nula a pares de caracteres iguais).

Em 2001, Bonizzoni e Vedova mostraram que o Problema AVS, em sua vers˜ao de de-cis˜ao, ´e NP-completo tamb´em para uma matriz de pontua¸c˜ao que satisfaz aos axiomas de m´etrica [BV01], que era uma quest˜ao em aberto at´e ent˜ao. Em um artigo posterior [Jus01], Winfried Just mostrou que o problema de alinhar seq¨uˆencias ´e NP-dif´ıcil para uma ampla classe de matrizes de pontua¸c˜ao (que inclui as matrizes do artigo de Bonizzoni e Vedova).

No mesmo artigo, Just mostrou tamb´em que existe uma matriz de pontua¸c˜ao para a qual o Problema AVS ´e MAXSNP-dif´ıcil. Essa matriz, no entanto, n˜ao ´e uma m´etrica (ela atribui pontua¸c˜ao 0 a caracteres diferentes do alfabeto).

Uma quest˜ao em aberto sobre o Problema AVS diz respeito ao fato de o problema ser ou n˜ao MAXSNP-dif´ıcil para matrizes que sejam m´etricas. Na realidade, n˜ao se sabe se o Problema AVS ´e MAXSNP-dif´ıcil para matrizes de pontua¸c˜ao que tenham elementos nulos na diagonal principal e diferentes de zero fora da diagonal, mesmo que a matriz n˜ao seja uma m´etrica [Jus01, Jus02].

Neste cap´ıtulo, apresentamos a demonstra¸c˜ao de Wang e Jiang, que ´e simples e estabelece a rela¸c˜ao do problema de alinhar seq¨uˆencias com outro problema que envolve seq¨uˆencias de caracteres (al´em de ter sido a primeira demonstra¸c˜ao de complexidade do Problema AVS) e a linha geral das v´arias demonstra¸c˜oes de complexidade do Problema AVS (e de vers˜oes mais restritas do problema) e aproximabilidade apresentadas por Just.

Para nossa discuss˜ao, supomos que o leitor esteja familiarizado com conceitos b´asicos de Teoria de Complexidade de Algoritmos. A nota¸c˜ao adotada ´e padr˜ao e pode ser encontrada em diversos livros-texto comuns sobre algoritmos como em [CLR90, Cap´ıtulo 36] ou [GJ79].

3Muitos pesquisadores acreditam que tais problemas necessitam, realmente, de algoritmos exponenciais para serem resolvidos.

No documento Alinhamento de Seq¨uˆencias Biol´ogicas (páginas 86-92)