Professional Documents
Culture Documents
8
Algoritmos e heursticas para comparaco es exata
e aproximada de sequ encias
Resumo
Abstract
Comparar uma seque ncia de DNA de centenas de bases com um genoma de milhoes
de bases para verificar se aquele trecho ocorre no genoma; e
Comparar seque ncias de DNA (ou protena) de algumas centenas de letras entre si
para identificar as semelhancas.
Organizaca o do texto
O texto esta organizado da seguinte forma. Na seca o 8.2 fazemos uma descrica o dos prin-
cipais conceitos e notaco es utilizados ao longo do texto, incluindo conceitos relacionados
a` complexidade de algoritmos. A seguir, na seca o 8.3, descrevemos os principais algorit-
mos e heursticas para a comparaca o de seque ncias. Na seca o 8.4 descrevemos tecnicas
que sao mais adequadas para a comparaca o de textos longos, que sao a representaca o do
texto como um vetor de termos e a complexidade de Kolmogorov, uma indicaca o da quan-
tidade de informaca o em um texto. Na seca o 8.5 fazemos alguns comentarios, incluindo
apontadores para tecnicas e aplicaco es nao tratadas neste texto e finalmente apresentamos
as referencias bibliograficas.
Problema SM(s, p): dada uma seque ncia s de n smbolos e uma seque ncia p
de m smbolos, com m n, encontrar todas as ocorrencias de p em s.
Algoritmo forca-bruta
T C T C T C G A p
T C T C T C G A p
T C T C T C G A p
T C T C T C G A p
T C T C T C G A p
d=5 T C T C T C G A p
T C T C T C G A p
A T A G C C T A G A G A G T A G A A C T s
d A G A G A G G C p
q
Observe na figura 8.2 que uma comparaca o entre o texto s e o padrao p para o
deslocamento d + 1 nao e necessaria: do deslocamento d sabemos que o primeiro smbolo
A do padrao p nao ira coincidir com o smbolo da posica o d + 1 do texto s, um G. No
entanto, note que o deslocamento d 0 = d + 2 nao pode ser descartado, como mostra a
figura 8.3. Do que sabemos da comparaca o anterior, com deslocamento d, os quatro
primeiros smbolos do padrao coincidem com os quatro smbolos do texto.
A T A G C C T A G A G A G T A G A A C T s
d0 A G A G A G G C p
k
A ideia central desse algoritmo e encontrar deslocamentos que podem ser segu-
ramente descartados, isto e , cuja comparaca o entre as seque ncias resulta em uma res-
posta certamente negativa. O algoritmo responde entao a` seguinte questao: dado que os
smbolos p[1..q] do padrao coincidem com os smbolos s[d + 1..d + q] do texto, qual o
menor deslocamento d 0 > d tal que
onde d 0 + k = d + q?
O melhor que pode acontecer e d 0 = d + q, ou seja, os deslocamentos entre d 0 + 1
e d 0 + q 1 serem todos descartados. Alem disso, observe que em qualquer deslocamento
d 0 nao ha a necessidade de comparar os primeiros k smbolos de p com os smbolos
correspondentes em s.
Observe tambem que s[d 0 + 1..d 0 + k] e um sufixo de p[1..q] e essa informaca o e
conhecida de p[1..k]. Como mostra a figura 8.4, obtemos essa informaca o comparando
PSfragpr
o padrao p consigo replacements
oprio. Isto e , queremos encontrar o maior k < q tal que p[1..k] e
um sufixo de p[1..q], uma outra forma de enxergar a equaca o (8.1). Assim, o proximo
deslocamento a ser verificado e dC0 = d + (q k).
T A G A G A G p[1..q]
A G A G p[1..k]
: {1, . . ., m} {0, . . ., m 1} e
(q) = max{k : k < q e p[1..k] e sufixo de p[1..q]}.
1 2 3 4 5 6 7 8
p A G A G A G G C
0 0 1 2 3 4 0 0
A G A G A G G C p
(i)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
A G C T A G A G A G A G G C T s
A G A G A G G C p
(ii)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
A G C T A G A G A G A G G C T s
A G A G A G G C p
(iii)
O algoritmo de Boyer e Moore [8] e um algoritmo bastante utilizado na pratica para solu-
cionar o problema SM, apesar de sua complexidade assintotica ser equivalente a` comple-
xidade do algoritmo ingenuo. A` primeira vista, esse algoritmo se assemelha ao algoritmo
ingenuo para comparaca o exata de seque ncias. Apesar dessa semelhanca, o algoritmo
de Boyer e Moore torna-se eficiente devido a` inclusao de duas heursticas que permitem
descartar seguramente muitas comparaco es entre os smbolos das seque ncias.
O algoritmo de Boyer e Moore inclui duas heursticas para acelerar a comparaca o
das seque ncias denominadas heurstica do smbolo ruim e heurstica do sufixo bom.
Na figura 8.7 apresentamos um exemplo dessas heursticas. Observe que o deslo-
camento d nao e valido, isto e , as seque ncias nao se casam para o deslocamento d = 2.
O algoritmo do smbolo ruim tenta movimentar o padrao sobre o texto de forma que o
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
A G C T A G A A G T A G G C T C C s
d
A A G T T A G T p
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
A G C T A G A A G T A G G C T C C s
d +3 A A G T T A G T p
A funca o ultima
ocorrencia implementa a ideia de deslocamentos baseados
em um smbolo ruim e e definida da seguinte forma: [a] e o ndice da posica o mais a`
direita no padrao em que o smbolo a ocorre, para cada smbolo a . O algoritmo a
seguir implementa essa funca o.
-U
F UNC AO LTIMA -O CORR E NCIA(p, ): recebe um padrao p de m smbolos e um alfa-
beto e devolve a funca o u ltima ocorrencia para todo smbolo em .
1: para cada smbolo a faca
2: [a] 0
3: para j 1 ate m faca
4: [p[ j]] j
5: devolva
-U
O tempo de execuca o do algoritmo F UNC AO LTIMA -O CORR E NCIA e O(+m).
-U
Um exemplo de execuca o do algoritmo F UNC AO LTIMA -O CORR E NCIA sobre o padrao
p da figura 8.8 e mostrado na figura 8.9.
A outra heurstica utilizada no algoritmo de Boyer e Moore e o algoritmo do sufixo
bom. Nesse caso, o padrao e movido para direita com um deslocamento que garante
A C G T
6 0 7 8
que smbolos do padrao casam com o sufixo bom encontrado no texto. No exemplo da
figura 8.7 o deslocamento obtido pelo algoritmo do sufixo bom e ilustrado na figura 8.10.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
A G C T A G A A G T A G G C T C C s
d +4 A A G T T A G T p
-
prefixo 0 do reverso 0 do padrao . Um exemplo de execuca o do algoritmo F UNC AO
S UFIXO -B OM sobre o padrao p da figura 8.7 e apresentado na figura 8.11. Por simples
-S UFIXO -B OM notamos que o tempo
inspeca o no pseudocodigo do algoritmo F UNC AO
de execuca o desse algoritmo e O(m).
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
p A A G T T A G T p0 T G A T T G A A
0 1 0 0 0 1 0 0 0 0 0 0 1 1 2 3 0
1 2 3 4 5 6 7 8
8 8 8 8 4 4 3 1
uma coleca o R de textos. A estrutura de dados e uma a rvore que armazenara informaco es
sobre cada seque ncia de R ou sobre s. Essas informaco es sao armazenadas de tal forma
que cada aresta da a rvore represente subcadeias das seque ncias de R ou de s.
A principal caracterstica desse tipo de estrutura e o fato de a busca nao consi-
derar p como um u nico elemento indivisvel, mas sim como uma seque ncia de smbolos
pertencentes a um alfabeto . A busca, denominada busca digital, consiste em compa-
rar smbolos de p com smbolos da estrutura, individualmente, ate que toda a seque ncia
seja encontrada ou a busca termine sem que p seja encontrado. A estrutura neste caso e
chamada de a rvore digital.
A ideia e que as arestas da a rvore de alguma forma representem subcadeias das
seque ncias do conjunto. Veremos duas principais estruturas: na primeira consideraremos
uma a rvore digital geral, a qual chamaremos simplesmente de a rvore digital, onde cada
aresta representa exatamente um smbolo do alfabeto. Na segunda estrutura, veremos um
tipo especfico de a rvore digital, denominada a rvore de sufixos, onde cada aresta repre-
senta uma cadeia de smbolos do alfabeto.
Arvore digital
Supondo um alfabeto , tal que seus smbolos possuam uma ordenaca o, uma a rvore
digital T para o conjunto de k seque ncias nao-vazias R = {r1 , r2 , . . . , rk } e uma a rvore
nao vazia onde cada no interno tem || filhos, tal que:
2. Para cada no v, interno ou folha, a seque ncia de smbolos definida pelo u nico cami-
nho da raiz de T ate v corresponde a um prefixo de alguma seque ncia de R e
A A G T T A G T p
(i)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
A G C T A G A A G T T A G T T C C s
d
A A G T T A G T p
(ii)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
A G C T A G A A G T T A G T T C C s
d
A A G T T A G T p
(iii)
A figura 8.13 mostra um exemplo de a rvore digital. Note que existe na a rvore
um no para cada seque ncia de R. Esses sao os nos representados por crculos cheios na
figura e poderiam, por exemplo, apontar para o local onde a chave e demais informaco es
agregadas a ela estariam localizados. A esses nos denominamos terminais. Vale lembrar
que um no terminal nao necessariamente e um no folha. Por outro lado, todo no folha
deve ser terminal. Note tambem que, como a ordenaca o dos smbolos de pre-determina
a ordenaca o dos filhos de cada no da a rvore, implicitamente a sua formaca o nos diz qual
ou quais sao os filhos que existem para cada no.
A busca de uma cadeia p, de tamanho m, em uma a rvore digital TR ja construda
para o conjunto R e muito simples. Como a inclusao de uma nova seque ncia em TR
depende da busca, descreveremos da busca e da inclusao ao mesmo tempo. A busca
inicia-se pela raiz de TR . A cada smbolo de p lido, tenta-se caminhar pelas arestas de
TR , comparando cada smbolo de p com cada smbolo encontrado em TR , ate que nao seja
mais possvel. As possibilidades para o termino da busca sao as seguintes:
a b c s
b c a s a a
a a s c s c
s c s a a c a
a a
Figura 8.13: Arvore digital para o alfabeto = {a, b, c, s} e o conjunto R = {aba,
abas, aca, basca, bass, bs, ca, caca, casa, casca, saca}.
A inclusao de uma nova cadeia p em TR deve ser feita, como vimos, apos a sua
busca na a rvore. O algoritmo I NCLUS AO -D IGITAL1 , faz a inclusao de p em TR . A in-
clusao consiste em acrescentar m i arestas em TR , a partir do no ptr, onde a busca foi
encerrada, cada uma contendo um smbolo do sufixo p[i + 1..m] de p, i 0. Se i = m,
entao e porque a busca terminou apos a leitura de toda a cadeia p e, neste caso, o laco con-
trolado pela variavel j do algoritmo (linhas 8 a 16) sequer e executado e a u nica operaca o
a ser feita e a transformaca o do no ptr em um no terminal.
A construca o de uma a rvore digital TR pode ser feita pela execuca o do algoritmo
de inclusao, executado para cada seque ncia de R, a partir de uma a rvore contendo apenas
o no raiz. Supondo que R contem k cadeias com tamanho medio m, o espaco gasto por TR
e , no pior caso, O(||mk). O pior caso acontece quando todos os prefixos sao distintos.
A complexidade do algoritmo de busca depende diretamente do tamanho m da ca-
deia p e tambem do tamanho do alfabeto . Cada comparaca o de um smbolo de p em um
1 Cujo nome mais parece um programa social do governo.
Arvore de sufixos
Uma a rvore de sufixos e uma a rvore digital que armazena os sufixos de uma seque ncia de
smbolos. Essa estrutura foi inicialmente proposta para a soluca o de problemas de casa-
mento exato de padroes, mas suas funcionalidades vao alem disso, incluindo compressao
de texto.
Neste trabalho, veremos que uma a rvore de sufixos pode ser utilizada eficiente-
mente na comparaca o exata de seque ncias. Entretanto, ela pode ser utilizada em muitas
aplicaco es mais complexas envolvendo seque ncias. Uma descrica o bastante detalhada,
incluindo diversas aplicaco es de a rvores de sufixos, pode ser encontrada em [16].
Nesta seca o seguiremos o seguinte roteiro: primeiro definimos uma a rvore de
sufixos formalmente; em seguida descrevemos um algoritmo para localizar as ocorrencias
exatas de uma seque ncia p de tamanho m em um texto s de tamanho n, representado
por uma a rvore de sufixos Ts ja construda; depois descrevemos um algoritmo para a
construca o da a rvore Ts ; ao final, alguns detalhes sao descritos e outras aplicaco es sao
citadas.
Seja s[1..n] uma seque ncia de n smbolos de um alfabeto , onde s[n] = $ e um
smbolo especial que nao ocorre em qualquer outra posica o de s. A a rvore de sufixos Ts
para s e uma a rvore enraizada, com n folhas e no maximo n 1 nos internos, tal que:
4. cada folha esta rotulada com um inteiro i, 1 i n, que representa uma posica o de
s; e
5. a concatenaca o dos rotulos das arestas de um caminho da raiz ate uma folha i cor-
responde ao sufixo de s que comeca na posica o i.
A figura 8.14 mostra a a rvore de sufixos para a seque ncia s = xabxa$. Note que
a a rvore tem n = 6 folhas, numeradas de 1 a 6, de tal modo que o caminho da raiz ate a
folha i representa o sufixo de s que comeca em si , i = 1, . . . , 6. Denotaremos esse sufixo
como sufixo i de s.
a b $
xa
ax
$
b 3 b 6
x $ x
a a $
$ $
2 5 1 4
Figura 8.14: Arvore de sufixos para a seq
uencia xabxa$.
a x
b b a
x x b
a x
a a
2 3 1
Figura 8.15: Arvore de sufixos para a seq
uencia xabxa (sem o smbolo especial).
O algoritmo descrito acima e O(n2 ), uma vez que sao feitas n inserco es de novos
sufixos, esses de tamanhos n, n 1, . . ., 1; e cada inserca o tem o custo do tamanho do
sufixo, ja que consiste no caminho que esse sufixo percorreria na a rvore. Novamente,
assim como no caso da a rvore digital geral, estamos supondo que tem tamanho fixo.
Algumas observaco es devem ser feitas com relaca o a` implementaca o da a rvore de sufixos.
Com relaca o ao espaco utilizado, o numero de folhas da a rvore e fixo e igual a n, o numero
de sufixos de s. Como cada no interno tem pelo menos dois filhos, o numero de nos
internos da a rvore nao pode ultrapassar n 1. Assim, o numero total de nos e linear no
tamanho de s.
Uma vez que sabemos antecipadamente que cada aresta (v, w) armazena uma sub-
cadeia de s, e sabemos onde comeca e onde termina essa subcadeia, essa informaca o
encias
Alinhamento de sequ
O problema da comparaca o inexata de seque ncias pode ser formalizado em termos de ali-
nhamentos e similaridade. Dadas duas seque ncias s e t sobre o mesmo alfabeto, um ali-
TAGCA
GCATCAT
Outros alinhamentos tambem sao possveis para essas seque ncias. Como estamos interes-
sados em avaliar o quanto as seque ncias sao parecidas, podemos definir uma pontuaca o
(score) para o alinhamento entre duas seque ncias de mesmo tamanho s e t:
|s|
score(s,t) = ci
i=1
onde
1 se
s[i] = t[i]
ci = 1 se s[i] 6= t[i]
2 se s[i] = - ou t[i] = -
colunas 1 2 3 ... k
seque ncia s ...
seque ncia t ...
M[i, j 1]
M[i 1, j 1] i, j
M[i 1, j]
M[0, 0] = 0,
M[i, 0] = M[i 1, 0] 2,
M[0, j] = M[0, j 1] 2,
M[i, j 1] 2,
onde
1 se
s[i] = t[ j],
p(i, j) =
1 se s[i] 6= t[ j].
ACTGGCG-CTAAT ------ACTGGCGCTAAT
|| || || ||||||
TCT-ACGACTGGC TCTACGACTGGC------
Pequenas variaco es do algoritmo permitem outros dois tipos de comparaco es, a local e a
semi-global.
Um alinhamento local entre as seque ncias s e t e um alinhamento entre uma
subcadeia de s e uma subcadeia de t. O algoritmo para encontrar a similaridade de um
alinhamento global entre s e t pode ser modificado para encontrar um alinhamento local
de similaridade maxima. A matriz sera preenchida de tal forma que o alinhamento e
finalizado quando o alinhamento local nao pode ser estendido, caso em que o calculo da
similaridade e reiniciado.
Suponha que temos um alinhamento de tamanho k entre as seque ncias s e t. Para
estender esse alinhamento em busca de subcadeias parecidas, devemos poder finalizar o
alinhamento entre certas subcadeias de s e t e reiniciar o calculo da similaridade. Dadas
seque ncias s de tamanho n e t de tamanho m, o algoritmo constroi a matriz M[0..n, 0..m],
onde a celula M[i, j] tem a similaridade maxima entre um sufixo de s[1..i] e um sufixo
de t[1... j], incluindo os sufixos vazios de s e t. O alinhamento com a cadeia vazia recebe
pontuaca o igual a 0; desta forma todas as celulas terao valor maior ou igual a zero, porque
sempre obteremos um valor de similaridade maior alinhando sufixos vazios do que se
inserirmos espacos ou alinharmos letras diferentes. A matriz e preenchida assim:
M[i, 0] = 0,
M[0, j] = 0,
M[i, j 1] 2,
M[i 1, j 1] + p(i, j),
M[i, j] = max
M[i 1, j] 2,
0,
onde
Dadas duas seque ncias s e t, dizemos que uma seque ncia w e uma subseq u encia comum
de s e t se w e subseque ncia de s e w e subseque ncia de t. No problema da subseq u
encia
comum de comprimento maximo, ou simplesmente problema da maior subsequ encia
comum (longest common subsequence LCS), sao dadas duas seque ncias s e t, de com-
primentos n e m respectivamente, e queremos encontrar a subseque ncia comum de com-
primento maximo de s e t:
1. se s[n] = t[m] entao w[k] = s[n] = t[m] e w[1..k 1] e uma maior subseque ncia
comum de s[1..n 1] e t[1..m 1];
2. se s[n] 6= t[m] entao w[k] 6= s[n] implica que w[1..k] e uma maior subseque ncia co-
mum de s[1..n 1] e t[1..m];
3. se s[n] 6= t[m] entao w[k] 6= t[m] implica que w[1..k] e uma maior subseque ncia co-
mum de s[1..n] e t[1..m 1].
0, se i = 0 ou j = 0,
Note que se b[i, j] = - para algum i, j, temos que s[i] = t[ j] e um smbolo de um LCS.
Entao, o algoritmo I MPRIME -LCS utiliza essa informaca o para construir a seque ncia
apropriada.
I MPRIME -LCS(b, s, i, j): recebe a matriz b devolvida pelo algoritmo LCS, a seque ncia s
com n smbolos e ndices i e j para linha e coluna da matriz b e devolve um LCS de s e t.
1: se i > 0 e j > 0 entao
2: se b[i, j] = - entao
3: I MPRIME -LCS(b, s, i 1, j 1)
4: escreva s[i]
5: senao
6: se b[i, j] = entao
7: I MPRIME -LCS(b, s, i 1, j)
8: senao
9: I MPRIME -LCS(b, s, i, j 1)
usar uma variaca o do algoritmo de programaca o dinamica para alinhar k seque ncias. Para
tanto, e necessario definir um esquema de pontuaca o para a similaridade e preencher uma
matriz com k dimensoes. O problema desta abordagem e a complexidade: supondo que
as k seque ncias tem tamanho n, preencher a matriz requer visitar n k celulas, sendo que
cada uma depende de 2k 1 outras celulas, alem do custo de calcular a similaridade. Este
algoritmo e exponencial e dificilmente podera ser usado na pratica. Alem disso, o pro-
blema do alinhamento multiplo de seque ncias e NP-completo. Na pratica este problema
e resolvido abrindo-se mao da garantia de uma soluca o o tima em troca de aproximaco es
aceitaveis produzidas mais rapidamente.
FASTA
A primeira versao desta heurstica para fazer buscas em bancos de seque ncias de
aminoacidos foi criada por Lipman e Pearson e se chama FASTP [22]. Ela foi aprimorada
pelos mesmos autores e chamada de FASTA [26, 27]. O algoritmo FASTA compara uma
seque ncia s contra cada seque ncia do banco.
O FASTA realiza os seguintes passos basicamente:
4. Produca o de um alinhamento.
a b
s s
t t
c d
Pontuaca o das regioes No segundo passo do FASTA, a pontuaca o das dez melhores
regioes e recalculada usando um matriz de substituico es. Cada regiao e podada, con-
servando apenas sua sub-regiao de pontuaca o maximal. Apenas regioes com pontuaca o
acima de um certo limiar sao consideradas nos proximos passos do algoritmo (Fi-
gura 8.18c). Este passo tambem considera apenas alinhamentos sem espacos. O programa
registra a regiao de melhor pontuaca o entre s e cada seque ncia t i no banco.
BLAST
Nesta seca o apresentamos a heurstica para comparaco es locais chamada BLAST (Basic
Local Aligment Search Tool). A primeira versao [2], publicada em 1990, nao produz
alinhamentos com espacos. A segunda versao [3], de 1997, produz alinhamentos com
espacos e a que descrevemos a seguir.
1. Seleciona, em cada seque ncia, um conjunto de palavras que quando alinhadas com
alguma outra podem pontuar acima de um certo limiar T ;
Busca de hits Duas palavras, uma de s e uma de t que se alinham com pontuaca o acima
do limiar T sao chamadas de hit. O algoritmo procura pares de hits que:
Nao se sobrepoem;
Estao no maximo a` distancia A entre si. A distancia entre dois hits na mesma
diagonal e a diferenca entre suas coordenadas iniciais.
Dado um texto x, ha algum texto em T com o qual x tem similaridade, isto e , trata
do mesmo assunto ou pertence ao mesmo domnio de conhecimento?
Como os textos em T se relacionam entre si, isto e , quais sao similares ou dissimi-
lares?
enquanto eu trabalho
||||||||||||||||||||
enquanto eu trabalho
2 Estascomparaco es foram realizadas usando um Pentium IV a 1,7 GHZ com 512 MB de RAM rodando
Linux 2.4.18-27.7. A implementaca o do algoritmo exato e o SWAT versao 0.990319 (www.phrap.org)
e a do BLAST e o blastall versao Aug-28-2002 (www.ncbi.nlm.nih.gov). As seque ncias seleci-
onadas sao as traduco es dos 2.831 genes da Xylella fastidiosa e o gene XF0001 dessa mesma bacteria
(www.lbi.ic.unicamp.br). A matriz de substituico es BLOSUM62 foi usada pelos dois programas.
Vetor de termos
Usando esta tecnica, cada texto do conjunto T e representado como um vetor multidi-
mensional. Cada dimensao dos vetores representa um termo. Um termo e uma palavra
do texto. A escolha dos termos para a construca o dos vetores pode ser feita a partir de
um certo vocabulario curado ou podemos tomar como vocabulario o conjunto de termos
que aparecem em algum texto em T . Normalmente artigos, preposico es, conjunco es e
outras palavras pouco discriminativas nao sao consideradas e os termos sao reduzidos a
seus radicais para diminuir a influencia de tempos verbais e flexoes.
Seja V o vocabulario escolhido e Vti o vetor de termos para o texto ti . Cada
elemento Vti [x] deste vetor contem o numero de vezes que o termo x aparece no texto t i .
O valor de Vti [x] pode ser normalizado em funca o do tamanho dos documentos.
Normalmente multiplica-se o valor de cada posica o do vetor por um fator que
representa a importancia do termo no conjunto. Um indicador possvel e o inverso da
freque ncia com que o termo aparece nos documentos em T , ou seja, se um termo aparece
muitas vezes nos textos, sua importancia para caracterizar cada texto t i e menor.
Depois que os vetores foram construdos, a similaridade entre dois textos pode ser
computada como um produto entre os vetores
No exemplo que demos no incio desta seca o, os vetores de termos seriam iguais.
A representaca o vetorial dos textos e bastante utilizada [31] e [6], mas para gran-
des conjuntos de texto ha alguns problemas. Em primeiro lugar, quando a dimensao dos
vetores e muito grande em geral e necessario selecionar um conjunto de termos relevan-
tes para que o metodo seja capaz de discriminar os textos, e este e um processo ad-hoc.
Pode-se ainda aplicar alguma tecnica para reduzir a dimensionalidade dos vetores. Em
segundo lugar, o fato de que quando o conjunto de textos se altera, o conjunto de termos
pode se modificar o suficiente para que seja necessario recomputar os vetores de todo o
conjunto.
Exemplos de aplicaco es que usam esta representaca o aparecem em [31] e [6].
K(s) K(s|t)
d(s,t) = 1 ,
K(st)
C(st) min{C(s),C(t)}
NCD(s,t) =
max{C(s),C(t)}
onde C() e o tamanho da versao compactada de um texto. Essa relaca o tambem e uma
metrica entre s e t a menos de um fator logartmico aditivo [20].
Portanto, e possvel estabelecer uma metrica de relacionamento entre dois textos
com base na informaca o contida neles. Exemplos de aplicaca o desta tecnica aparecem
em [11], [19] e [20].
Refer
encias
[1] N.F. Almeida. Tools for genome comparison. PhD thesis, Institute of Computing,
University of Campinas, May 2002. In Portuguese.
[2] S.F. Altschul, W. Gish, W. Miller, E.W. Myers, and D.J. Lipman. Basic local align-
ment search tool. Journal of Molecular Biology, 215:403410, 1990.
[3] S.F. Altschul, T.L. Madden, A.A. Schaffer, et al. Gapped BLAST and PSI-BLAST:
a new generation of protein database search programs. Nucleic Acids Research,
25:33893402, 1997.
[4] C.E.R. Alves, E.N. Caceres, and S.W. Song. Computing maximum sequence in
parallel. In Proceedings of the II Brazillian Workshop on Bioinformatics, pages
8087, Macae-Brazil, 2003.
[5] C.E.R. Alves, E.N. Caceres, and S.W. Song. An all-substrings common subsequence
algorithm. In Proceedings of the 2nd Brazillian Symposium on Graphs, Algorithms
and Combinatorics (GRACO 2005), pages 110116, Angra dos Reis-Brazil, 2005.
[8] R.S. Boyer and J.S. Moore. A fast string-searching algorithm. Communications of
the ACM, 20(10):762772, 1977.
[10] S. Chakrabarti. Mining the web: discovering knowledge from hypertext data. Mor-
gan Kaufmann Publishers, 2003.
[11] R. Cilibrasi and P.M.B. Vitanyi. Clustering by compression. IEEE Trans. Informa-
tion Theory, 51(4):15461555, 2005.
[12] T.H. Cormen, C.E. Leiserson, R.L. Rivest, and C. Stein. Introduction to Algorithms.
The MIT Press, 2nd edition, 2001.
[13] R.T. de Brito. Alinhamento de seque ncias biologicas. Masters thesis, Instituto de
Matematica e Estatstica, Universidade de Sao Paulo, 2003.
[16] D. Gusfield. Algorithms on Strings, Trees, and Sequences. Computer Science and
Computational Biology. Cambridge University Press, 1997.
[18] D.E. Knuth, J.H. Morris, and V.R. Pratt. Fast pattern matching in strings. SIAM
Journal on Computing, 6(2):323350, 1977.
[20] M. Li, X. Chen, X. Li, B. Ma, and P. Vitanyi. The similarity metric. IEEE Transac-
tions on Information Theory, 50(12):32503264, 2004.
[22] D.J. Lipman and W.R. Pearson. Rapid and sensitive protein similarity search. Sci-
ence, 227:14351441, 1985.
[23] W.J. Masek and M.S. Paterson. A faster algorithm computing string edit distances.
Journal of Computer and System Sciences, 20(1):1831, 1980.
[26] W. R. Pearson. Rapid and sensitive sequence comparisions with FASTP and FAST.
Methods in Enzymology, 183:6398, 1985.
[27] W.R. Pearson and D.J. Lipman. Improved tools for biological sequence comparison.
Proceedings of the National Academy of Sciences, 85:24442448, 1988.
[34] A. Singhal and G. Salton. Automatic text browsing using vector space model.
In Proceedings of the Dual-Use Technologies and Applications Conference, pages
318324, 1995.
[36] J.L. Szwarcfiter and L. Markenzon. Estruturas de Dados e seus Algoritmos. LTC,
1994.
[37] T.G. Szymanski. A special case of the maximal common subsequence problem. Te-
chnical Report TR-170, Computer Science Laboratory, Princeton University, 1975.
[39] P. Weiner. Linear pattern matching algorithms. In Proc. of the 14th IEEE Symp. on
Switching and Automata Theory, pages 111, 1973.