Um algoritmo para pesquisa aproximada de padrões baseado no método de Landau e Vishkin e uso de arranjos de sufixos para reduzir o uso de espaço

Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2006. === Submitted by Kathryn Cardim Araujo (kathryn.cardim@gmail.com) on 2009-11-19T09:50:09Z No. of bitstreams: 1 2006_Rodrigo Cesar de Castro Miranda.pdf: 1217413 bytes, checks...

Full description

Bibliographic Details
Main Author: Miranda, Rodrigo César de Castro
Other Authors: Ayala-Rincón, Mauricio
Language:Portuguese
Published: 2009
Subjects:
Online Access:http://repositorio.unb.br/handle/10482/2323
Description
Summary:Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2006. === Submitted by Kathryn Cardim Araujo (kathryn.cardim@gmail.com) on 2009-11-19T09:50:09Z No. of bitstreams: 1 2006_Rodrigo Cesar de Castro Miranda.pdf: 1217413 bytes, checksum: b795d83c3403735f516c590acd5e861f (MD5) === Approved for entry into archive by Carolina Campos(carolinacamposmaia@gmail.com) on 2009-11-26T16:50:22Z (GMT) No. of bitstreams: 1 2006_Rodrigo Cesar de Castro Miranda.pdf: 1217413 bytes, checksum: b795d83c3403735f516c590acd5e861f (MD5) === Made available in DSpace on 2009-11-26T16:50:22Z (GMT). No. of bitstreams: 1 2006_Rodrigo Cesar de Castro Miranda.pdf: 1217413 bytes, checksum: b795d83c3403735f516c590acd5e861f (MD5) Previous issue date: 2006-12-19 === A pesquisa aproximada de padrões em um texto é um problema importante para a ciência da computação. A pesquisa de algoritmos eficientes para solucionar esse problema influencia o desenvolvimento de aplicações em áreas como biologia computacional e pesquisa textual em grandes massas de dados (como a web, por exemplo). Mas para o tratamento de volumes de informação da magnitude envolvida nessas aplicações, o uso eficiente de tempo e espaço é uma condição essencial. A solução mais conhecida para esse problema é um algoritmo de programação dinâmica com complexidade O(mn) para duas palavras P e T de comprimento m e n. Landau e Vishkin desenvolveram um algoritmo que usa árvores de sufixos para acelerar a computação de caminhos da tabela de programação dinâmica que correspondem às ocorrências de um padrão em um texto com no máximo k diferenças, cuja complexidade de tempo e espaço está em O(kn). Nesse algoritmo as árvores de sufixos são utilizadas para permitir o cálculo em tempo constante do comprimento do maior prefixo comum entre quaisquer dois sufixos de P e T. Propusemos e implementamos uma variação do algoritmo de Landau e Vishkin que usa arranjos de sufixos para esse cálculo, melhorando o uso de espaço e mantendo um desempenho similar, e apresentamos a relação de custo e benefício de cada alternativa examinada. Com isso, desenvolvemos um mecanismo que torna possível substituir o uso de árvores de sufixos por arranjos de sufixos em determinadas aplicações, com ganho no uso de espaço, o que permite processar um volume maior de informações. A modificação realizada não é trivial, pois os algoritmos e estruturas de dados utilizadas são complexos, e os parâmetros de desempenho e uso de espaço rigorosos. _______________________________________________________________________________________ ABSTRACT === Approximate pattern matching in an important problem in computer science. The research of efficient solutions for this problem influences the development of applications in disciplines such as computational biology and searching the web, and in order to be able to handle such massive ammounts of information the efficient use of computational resources is a necessary condition. The most known solution for the approximate pattern matching problem is a dynamic programming algorithm which has O(mn) complexity given two strings P and T of length m and n. Landau and Vishkin developed a O(kn) algorithm which uses suffix trees for a faster computation of paths along the dynamic programming table that correspond to matches of a pattern in a text with at most k differences. In this algorithm the suffix trees are used for a constant-time calculus of the longest common extension of any two suffixes of P and T. We proposed and implemented a variation of Landau and Vishkin’s algorithm which uses suffix arrays for this calculus, improving the space requirements of the algorithm while keeping a similar running time performance, and present the costs and benefits of each algorithm. In order to achieve this we developed a technique that makes it possible to replace the use os suffix trees for suffix arrays in certain applications with an improved memory usage that allows the processing of a larger ammount of information. The modifications done were not trivial ones, as the algorithms and data structures involved are very complex, and the parameters for accepted running time performance and space usage are very rigorous.