O problema da subseqüência comum máxima é um problema clássico em computação. Uma de suas variantes é o problema da subseqüência comum máxima sem repetições, abreviado RFLCS, do inglês repetition free longest common subsequence. O RFLCS é definido da seguinte forma: dadas duas seqüências s e t, encontrar uma subseqüência comum de s e t tal que seus símbolos sejam dois a dois distintos e seu comprimento seja máximo. Neste projeto de iniciação científica, esse problema será abordado do ponto de vista de algoritmos de aproximação e de programação inteira.
A motivação para o estudo do RFLCS tem base em Biologia Computacional. Podemos considerar seqüências como genomas, compostas de genes. Subseqüências comuns de genomas modernos podem apontar para uma evolução independente destes a partir de um mesmo genoma ancestral. A primeira abordagem que considera subseqüências sem repetições é a de Sankoff [2] (veja também Bonizzoni [1]), que propôs um modelo de ordenação de um genoma por reversões no qual para cada família de genes queremos encontrar no máximo um representante. Para esta aplicação, é interessante a variante do RFLCS em que permitimos reversões de trechos das seqüências.
O objetivo desse projeto de iniciação científica é estudar o problema do RFLCS. Para isso, tanto algoritmos de aproximação como algoritmos baseados em técnicas de combinatória poliédrica serão estudados. Um estudo do politopo associado ao RFLCS será feito para conhecer melhor o problema e aplicar esse conhecimento nos algoritmos. Em particular, um algoritmo exato baseado na técnica de programação inteira branch and cut será estudado. Esses algoritmos serão implementados e analisados experimentalmente. Além disso, serão estudados casos do RFLCS em que existem algoritmos melhores. Uma variante do problema em que se permite reversões também será estudado se o tempo permitir.
Para entender melhor o problema, foram observadas algumas abordagens para o problema do RFLCS. Isso serviu de base ao estudo dos algoritmos.
Alguns algoritmos de aproximação para o problema do RFLCS foram estudados e implementados. Esses algoritmos foram testados com seqüências aleatórias de diversas classes e foi feito uma breve observação dos comportamentos desses algoritmos.
Implementou-se também uma modelagem de programação inteira do RFLCS usando uma biblioteca para solução de problemas de programação linear (glpk) para resolvê-la, mas isso é feito sem nenhum conhecimento do problema além da modelagem.
Ativ/Mês | JUL | AGO | SET | OUT | NOV |
1 | √ | √ | |||
2 | √ | √ | √ | ||
3 | √ | √ | |||
4 | √ | √ | √ | ||
5 | √ | √ | |||
6 | √ | √ | |||
7 | √ | ||||
8 | √ | √ | √ | √ | √ |
Legenda:
A monografia terá uma parte técnica e uma parte subjetiva. Ela será dividida nos tópicos listados abaixo, mas ela pode ser alterada conforme se prossegue a disciplina.