Trabalho de Conclusão de Curso

Algoritmos em sequências

Aluno: Yan Soares Couto
Orientadora: Cristina G. Fernandes

Uma string \(T[1\,.\,.\,n]\) de tamanho \(|T| := n\) é um vetor de \(n\) elementos, onde todos elementos são de um alfabeto \(\Sigma\) finito. Algoritmos em strings são usados para buscar ocorrências (como por exemplo buscar por uma palavra específica em um documento de texto grande), encontrar a similaridade (como o diff) e muitas outras aplicações relacionadas a texto. Também são usados em biologia computacional, pois DNA pode ser modelado como uma sequência de caracteres A, T, C e G. Proteínas também podem ser modeladas como uma sequência de aminoácidos.

Algoritmos em strings são às vezes abordados em matérias obrigatórias da graduação (MAC122 ou MAC323), porém, apenas os algoritmos mais simples, como KMP ou Boyer-Moore, são vistos. Neste TCC, tenho por objetivo estudar algoritmos relacionados à busca de ocorrências, explicando, implementando e provando que estes funcionam. O objetivo é tanto ampliar meu conhecimento nessa área quanto preparar um texto em português que possa ser usado como referência nestes assuntos por pessoas com conhecimento básico de algoritmos em strings.

Os algoritmos abordados são sofisticados; porém, o objetivo é escrever um texto que leve facilmente à criação de código que funcione, com atenção a detalhes de implementação necessários, sem deixar instruções complicadas "a cargo do leitor".

Os tópicos abordados são: