CENTRO FEDERAL DE EDUCAÇÃO
TECNOLÓGICA DE MINAS GERAIS
Diretoria de Pesquisa e Pós-Graduação
Programa de Mestrado em Modelagem
Matemática e Computacional
HEURÍSTICAS PARA O
PROBLEMA DA CADEIA DE
CARACTERES MAIS PRÓXIMA
Dissertação de Mestrado, submetida ao Programa
de Pós-Graduação em Modelagem Matemática e
Computacional, como parte dos requisitos exigidos
para a obtenção do título de Mestre em Modelagem Matemática e Computacional.
Aluno: Marcelo Henrique Ribeiro de Almeida
Orientador: Prof. Dr. Sérgio Ricardo de Souza
Belo Horizonte - MG
Agosto de 2013
Almeida, Marcelo Henrique Ribeiro de
L732c
Heurísticas para o Problema da Cadeia de Caracteres mais
Próxima / Marcelo Henrique Ribeiro de Almeida. - 2013.
60f.
Dissertação de mestrado apresentada ao Programa de PósGraduação em Modelagem Matemática e Computacional.
Orientador: Sérgio Ricardo de Souza
Dissertação (mestrado) - Centro Federal de Educação
Tecnológica de Minas Gerais
1. Cadeia de caracteres - Modelos matemáticos - Teses. 2.
Busca Gulosa Iterada - Teses. 3. Algoritmo Genético Baseado em
Chaves Aleatórias Tendencioso - Teses. 4. Distância de Hamming
- Teses. 5. Heurística - Teses. I. Souza, Sérgio Ricardo de. II.
Centro Federal de Educação Tecnológica de Minas Gerais. III. Título.
CDD: 519.4
Elaboração da Ficha catalográfica pela Biblioteca Campus II / CEFET-MG
Agradecimento
Agradeço ao Pai do céu pelas bênçãos, saúde, alegrias e oportunidades que me
possibilitaram alcançar mais uma das etapas de minha vida. Agradeço a minha
família pelo amor e carinho e principalmente a minha avó Celina (in memóriam)
por todo seu amor. Agradeço também por conhecer pessoas maravilhosas nesta
jornada, que me acrescentaram um crescimento humano e espiritual.
E peço a Deus que abençoe: o professor Dr. Sérgio pela oportunidade concedida,
a qual foi fundamental para concretização desse sonho; o meu amigo Daniel pelo incentivo; aos funcionários e professores do CEFET-MG Campus II pela dedicação em
manter uma ótima estrutura educacional e a minha namorada Kianne pelo companheirismo e compreensão pela minha falta de tempo, que foram dedicadas ao nosso
futuro.
iii
Não venci todas as vezes que lutei. Mas perdi todas as vezes que deixei
de lutar.
Rui Barbosa
iv
Resumo
Esta dissertação de mestrado propõe o desenvolvimento de métodos heurísticos para o Problema da Cadeia de Caracteres mais Próxima (PCCP). O PCCP
tem, como objetivo, encontrar uma sequência t mais próxima possível de todas as
seqüências de um conjunto dado, usando, como métrica, a distância de Hamming.
A distância de Hamming dH (s, t) entre duas seqüências s e t de igual comprimento
é dado pelo número de posições nas quais elas diferem. O PCCP possui várias aplicações, em especial, na área da Bioinformática e na Teoria de Códigos. Classificado
como um problema de complexidade NP-Difícil, vários algoritmos de aproximação
e metaheurísticas têm sido propostas para encontrar soluções ótimas e com tempos
de processamentos aceitáveis. Neste trabalho, um novo algoritmo é proposto, baseado no framework do Algoritmo Genético Biased Random-Key Genetic Algorithm
(BRKGA) e será comparado com o algoritmo Iterated Greedy Search (IGS).
PALAVRAS-CHAVE: Problema da Cadeia de Caracteres mais Próxima, distância de Hamming, Iterated Greedy Search, Biased Random-Key Genetic Algorithm,
Metaheurísticas, Otimização.
v
Abstract
This dissertation proposes the development of heuristic methods for the Closest
String Problem (CSP). The CSP aims to find a string t as close as possible of all
the strings of a given set, using as metrics the Hamming distance. The Hamming
distance dH (s, t) between two strings s and t of equal length is given by the number
of positions in which they differ. The CSP has several applications, in special, in the
area of Bioinformatics and in Coding Theory. Classified as a problem of complexity
NP-Hard, several approximation algorithms and metaheuristics have been proposed
to find optimal solutions with acceptable processing times. In this work, a new
algorithm is proposed, based on the framework of the Biased Random-Key Genetic
Algorithm (BRKGA) and it will be compared with the Iterated Greedy Search
algorithm (IGS).
Keywords: Closest String Problem, Hamming distance, Iterated Greedy Search,
Biased Random-Key Genetic Algorithm, Metaheuristics, Optimization.
vi
Lista de Abreviaturas e Siglas
AG Algoritmo Genético
BI do inglês - Best Improvement
BRKGA do inglês - Biased Random Key Genetic Algorithm
BRP do inglês - Bandwidth Reduction Problem
CSP do inglês - Closest String Problem
DBCGA do inglês - Data-Based Coding Genetic Algorithm
DFA do inglês - Distance First Algorithm
DNA Ácido Desoxirribonucléico
DSSP do inglês - Distinguishing String Selection Problem
DSSS do inglês - Distinguishing Substring Selection
EPTAS do inglês - Efficient Polynomial-Time Approximation Scheme
RNA Ácido Ribonucléico
FFMSP do inglês - Far From Most String Problem
FI do inglês - First Improvement
FSP do inglês - Farthest String Problem
IGS do inglês - Iterated Greedy Search
ILP do inglês - Integer Linear Program
ILS do inglês - Iterated Local Search
IP do inglês - Integer-Programming
GRASP do inglês - Greedy Randomized Adaptative Search Procedure
LCS do inglês - Longest Common Subsequence
LCR Lista de Candidatos Restrita
LDDA do inglês - Largest distance decreasing algorithm
vii
LP do inglês - Linear Programming
PCCP Problema da Cadeia de Caracteres Mais Próxima
PTAS do inglês - Polinomial Time Approximation Schemes
PTGS do inglês - Post-Transcriptional Gene Silencing
RKGA do inglês - Random-Key Genetic Algorithm
SA do inglês - Simulated Annealing
VNS do inglês - Variable Neighborhood Search
viii
Sumário
1 Introdução
1.1 Bioinformática . . . . . . .
1.2 DNA . . . . . . . . . . . .
1.3 RNA e Síntese Protéica . . .
1.4 Organização da Dissertação
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
4
6
8
2 Uma Revisão Bibliográfica
9
2.1 Revisão bibliográfica do Problema da Cadeia de Caracteres mais Próxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Análise da Revisão Bibliográfica sobre PCCP . . . . . . . . . . . . . 16
3 Caracterização do Problema
3.1 Alguns problemas de comparação e seleção de cadeias . . .
3.2 Closest String Problem (CSP) . . . . . . . . . . . . . . . .
3.3 Farthest String Problem(FSP) . . . . . . . . . . . . . . . .
3.4 Far From Most String Problem(FFMSP) . . . . . . . . . .
3.5 Outros problemas relacionados . . . . . . . . . . . . . . . .
3.5.1 Closest Substring Problem . . . . . . . . . . . . . .
3.5.2 Farthest Substring Problem . . . . . . . . . . . . .
3.5.3 Close to Most String Problem . . . . . . . . . . . .
3.5.4 Distinguishing String Selection Problem (DSSP) . .
3.6 Problema da Cadeia de Caracteres mais Próxima (PCCP)
4 Metodologia de Pesquisa
4.1 Visão Geral . . . . . . . . . . . . . . . . . . .
4.2 Algoritmo MultiStart . . . . . . . . . . . . . .
4.3 Greedy Randomized Adaptive Search Procedure
4.4 Iterated Local Search – ILS . . . . . . . . . . .
4.5 Iterated Greedy Search . . . . . . . . . . . . .
4.6 Heurística IGS-PCCP . . . . . . . . . . . . .
4.7 Algoritmos Genéticos . . . . . . . . . . . . . .
4.8 Random-Key Genetic Algorithm . . . . . . . .
4.9 Biased Random-Key Genetic Algorithm . . . .
4.10 Heurística BRKGA-PCCP . . . . . . . . . . .
ix
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
19
20
21
22
23
23
23
24
24
25
.
.
.
.
.
.
.
.
.
.
28
28
28
30
32
33
34
36
38
40
42
5 Experimentos Computacionais
5.1 Instâncias de Teste . . . . . . . . . . . . . . . . . . . .
5.2 Ajustes para a Perturbação k da Heurística IGS-PCCP
5.3 Ajustes para a População da Heurística BRKGA-PCCP
5.4 Comparação entre as heurísticas . . . . . . . . . . . . .
5.5 Comparação entre as heurísticas BRKGA-PCCP e PI .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
44
44
45
46
46
50
6 Considerações Finais
57
Referências
59
x
Lista de Tabelas
1.1
1.2
Aminoácidos de ocorrência natural em proteínas . . . . . . . . . . . .
O código genético (RNAm) . . . . . . . . . . . . . . . . . . . . . . .
2.1
Resultados da literatura. . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
Resultados da perturbação do IGS-PCCP para k = 3%, 10% e 20% .
Resultados da perturbação do IGS-PCCP para k = 30%, 40% e 50% .
Resultados da perturbação do IGS-PCCP para k = 60% e 70% . . . .
Resultados da perturbação do IGS-PCCP para Ω = {20} . . . . . . .
Resultados da perturbação do IGS-PCCP para Ω = {30} . . . . . . .
Resultados das diferentes populações do BRKGA-PCCP . . . . . . .
Resultados das diferentes populações do BRKGA-PCCP para Ω = {20}
Resultados das diferentes populações do BRKGA-PCCP para Ω = {30}
Comparação entre BRKGA-PCCP e IGS-PCCP . . . . . . . . . . . .
Comparação entre BRKGA-PCCP e IGS-PCCP para Ω = {20, 30} . .
Comparação entre BRKGA-PCCP e PI . . . . . . . . . . . . . . . . .
xi
6
8
47
48
49
50
51
52
52
53
54
55
56
Lista de Figuras
1.1
Modelo de fita e bastão de dupla hélice do DNA . . . . . . . . . . . .
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
Pseudocódigo MultiStart. . . . . . . . . . .
Pseudocódigo da Fase-Construtiva GRASP.
Pseudocódigo da Busca Local GRASP. . . .
Pseudocódigo do Iterated Local Search (ILS).
Ótimos locais IGS . . . . . . . . . . . . . . .
Pseudocódigo da heurística IGS-PCCP. . . .
Estrutura de geração do RKGA . . . . . . .
Geração do RKGA . . . . . . . . . . . . . .
Fim do processo de geração RKGA . . . . .
Crossover BRKGA . . . . . . . . . . . . . .
Transição entre gerações sucessivas (Noronha
Pseudocódigo BRKGA-PCCP . . . . . . . .
xii
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
et al., 2011).
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
29
31
31
33
34
35
38
39
39
41
42
43
Capítulo 1
Introdução
Em se tratando de Biologia Molecular, pode-se verificar a presença de vários
problemas de otimização combinatória. Geralmente, estes problemas apresentam a
necessidade de se comparar cadeias de caracteres (ou seqüências) de DNA (Ácido
Desoxirribonucléico), RNA (Ácido Ribonucléico) ou proteínas, a fim de encontrar
determinadas características presentes em cada uma delas. Esses problemas possuem
várias aplicações, como busca de regiões conservadas em seqüências não alinhadas,
identificação de drogas genéticas, formulação de sondas genéticas, dentre outras. Por
exemplo, quando se trabalha com Genoma, ou com outra seqüência de aminoácidos,
um dos aspectos principais é como determinar as similaridades e/ ou as diferenças
que ocorrem entre duas seqüências quaisquer.
Segundo Festa (2007), desde 1986 e do surgimento do Projeto Genoma Humano
tem ocorrido um grande crescimento da investigação científica em atividades dedicadas à Biologia Molecular, como o entendimento das interações entre os diversos
sistemas de uma célula, incluindo as interações de DNA, RNA e sínteses protéicas.
Anteriormente a 1980, havia um limite claro entre competências e aplicações da
Biologia Molecular em disciplinas como genética e bioquímica. Em vez disso, nas
duas últimas décadas, as atividades de investigação em Biologia Molecular começaram a ter uma interação com disciplinas de interesses não biológicos, como a Ciência
da Computação e a Física (Festa, 2007).
Com esse interesse de outras áreas em Biologia Molecular, ocorreu um crescimento do leque de novas possibilidades de aplicações. Na Ciências da Computação,
juntamente com a Matemática, a implementação de métodos eficientes para armazenar uma enorme quantidade de dados coletados em experimentos; na Física, um
melhor estudo das moléculas e suas estruturas tridimensionais.
Pesquisadores em Biologia Molecular desenvolveram uma importante representação do DNA, em que a cadeia tridimensional pode ser escrita na forma de cadeias
de caracteres unidimensionais. Essa representação é feita por vetores, que possuem
os seus caracteres representados pelas bases que formam o DNA. Essa representação
facilitou o desenvolvimento computacional nessa área da Biologia.
Com essa nova representação dos caracteres em forma de vetores, facilitou o
surgimento de recursos computacionais para a identificação dos mesmos e sua busca
em bancos de dados.
Esta dissertação trata de um problema conhecido como Problema da Cadeia de
Caracteres mais Próxima (PCCP) – Closest String Problem, que tem como objetivo
1
1.1
Introdução
2
encontrar uma seqüência de caracteres que se aproxime ao máximo, segundo uma
métrica, de todas as seqüências de um banco de dados, que são formados pelos
mesmo caracteres e possuem a mesma dimensão. Os caracteres que compõem estas
seqüências podem ser formados pelas bases do DNA, RNA ou proteínas. Neste
problema, a idéia principal é encontrar uma seqüência centro t que se assemelhe,
ao máximo, às seqüências de um dado conjunto. Ou seja, o objetivo é minimizar a
distância máxima desta cadeia de caracteres t às demais cadeias do conjunto.
Com o objetivo de solucionar o PCCP, serão realizados testes computacionais
utilizando duas heurísticas, a saber, Iterated Greedy Search e Biased Random-Key
Genetic Algorithm. Com o intuito de ajudar pesquisadores em Biologia Molecular a
encontrarem uma seqüência de caracteres semelhante a um conjunto de seqüências
de um banco de dados, formado por seqüências com os mesmos caracteres e mesma
dimensão.
1.1
Bioinformática
Em 1953, a estrutura clássica do DNA foi desvendada no trabalho de Watson
e Crick (1953). Esse e outros trabalhos levaram pesquisadores da área à conclusão
de que o DNA era a molécula que armazenava a informação genética, respondendo
assim aos questionamentos de geneticistas e químicos a respeito da natureza química
do material genético. Uma conseqüência direta destas pesquisas foi o surgimento
de uma nova ciência, a Bioinformática, cujos estudos estavam baseados, principalmente, nos ácidos nucléicos e nas proteínas. Essa nova ciência é permeada por
diversas áreas do conhecimento, como a Engenharia de Software, a Matemática, a
Estatística, a Ciência da Computação e a Biologia Molecular (Pappalardo, 2012).
Os conhecimentos dessas áreas são combinados para processar dados biológicos ou
biomédicos.
Buscando tratar os dados, foi necessário desenvolver softwares para, por exemplo identificar genes, prever a configuração tridimensional de proteínas, identificar
inibidores de enzimas, organizar e relacionar informação biológica, simular células, agrupar proteínas homólogas, montar árvores filogenéticas, comparar múltiplas
comunidades microbianas por construção de bibliotecas genômicas, analisar experimentos de expressão gênica, dentre outras inúmeras aplicações.
A Bioinformática implica a manipulação, busca e extração de informações dos dados de seqüências do DNA, RNA ou Proteínas. O desenvolvimento de técnicas para
armazenamento e busca por seqüências de DNA gerou avanços no desenvolvimento
de softwares para computadores, com muitas aplicações, especialmente algoritmos
de busca de frases. A busca de frases ou algoritmos de coincidências procura a
ocorrência de uma seqüência de letras (ou caracteres) dentro de uma seqüência de
caracteres maior, e até seqüências que sejam distintas de um determinado grupo, o
qual foi desenvolvido para buscar seqüências específicas de nucleotídeos.
Com o desenvolvimento e as pesquisas em Bioinformática, surgiram métodos
de sequenciamento dos polímeros citados acima, principalmente do DNA. A partir do surgimento desses métodos, bilhões dessas seqüências já foram e têm sido
catalogadas e armazenadas em bancos de dados públicos. O surgimento dos seqüenciadores automáticos de DNA, a partir da segunda metade da década de 1990, elevou
1.1
Introdução
3
abruptamente a quantidade de seqüências a serem armazenadas, surgindo também
a necessidade de análise desses dados. Esse novo panorama trouxe a necessidade da
utilização de plataformas computacionais capazes de interpretar, com eficiência, os
resultados obtidos.
O trabalho de Lesk (2008) destaca os bancos de dados da Biologia Molecular,
os quais contém seqüências de ácidos nucléicos e de proteínas, estruturas e funções de macromoléculas, padrões de expressão, redes de vias metabólicas e cascatas
de regulação. Segundo o autor, o arquivamento mundial de seqüências de ácidos
nucléicos é uma parceria tríplice entre o Genbank, situado no US National Center
for Biotechnology Information (NCBI), em Bethesda, Maryland, Estados Unidos; o
EMBL Nucleotide Sequence Database, localizado no European Bioinformatics Institute (EBI), em Hinxton, no Reino Unido; e o The Center for Information Biology e
DNA Data Bank of Japan, no National Institute of Genetics, em Mishima, Japão.
Há uma troca de informações entre esses grupos diariamente. Como resultado, os
dados brutos são idênticos, embora o formato em que são armazenados e a natureza
da anotação podem variar entre eles. Esses bancos de dados organizam, arquivam
e distribuem seqüências de DNA e RNA coletados de projetos genoma, publicações científicas e depósitos de patentes. Para garantir que esses dados fundamentais
permaneçam disponíveis livremente, as revistas científicas exigem o depósito de novas seqüências de nucleotídeos em um banco de dados como uma condição para a
publicação de artigos científicos.
Já em 2002, três bancos de dados de proteínas:
• Protein Information Resource (PIR), o qual trata-se de um banco de dados
de seqüências de proteínas, que foi iniciado no National Biomedical Research
Foundation (NBRF) no início do ano de 1960, localizado na Georgetown University Medical Center em Washington, DC, Estados Unidos;
• SWISS-PROT e o TrEMBL, o Swiss Institute of Bioinformatics, localizado
em Genebra; e
• European Bioinformatics Institute (EBI)
coordenaram seus esforços para formar o consórcio UniProt. Os parceiros dessa
iniciativa compartilham os bancos de dados, mas continuam a oferecer ferramentas
separadas de acesso à recuperação de informação.
De acordo com Lesk (2008), o PIR originou-se do primeiro banco de dados de
seqüências, desenvolvido por Margaret O. Dayhoff - a pioneira da área de Bioinformática. O SWISS-PROT foi desenvolvido no Swiss Institute of Bioinformatics. O
TrEMBL contém as traduções dos genes identificados nas seqüências de DNA do
EMBL Data Library. Entradas do TrEMBL são consideradas como preliminares, e
são convertidas, após organização e anotações extensas, em entradas completas do
SWISS-PROT.
Muitos projetos de sequenciamento de genomas completos mantém bancos de dados focalizados em espécies individuais. Exemplos notáveis são o ENSEMBL (Sanger
Centre, Hinxton, Reino Unido) e os navegadores da Universidade da Califórnia, em
Santa Cruz, Estados Unidos, para o genoma humano e outras espécies.
Muitos bancos de dados secundários agrupam famílias de proteínas ou subunidades com base nas similaridades entre suas seqüências. Um banco de dados
1.2
Introdução
4
“guarda-chuva”, o Interpro, é um banco de dados de famílias de proteínas, domínios
e sítios funcionais, no qual características identificáveis encontradas em proteínas
conhecidas podem ser aplicadas em seqüências de proteínas desconhecidas. Além
disso, contém conexões para outros bancos, incluindo a classificação funcional do
Gene Ontology Consortium T M .
Considerada uma recente subdivisão da Biotecnologia, a Bioinformática representa o “casamento” da Biotecnologia com a Informática. De modo simples, Bioinformática consiste no depósito e análise de seqüências genéticas em bancos de dados
e conseqüente manipulação e análise destas seqüências com a utilização de software específicos. Portanto, essa nova área surge a partir da necessidade de aplicar
recursos computacionais no armazenamento, manipulação, interpretação e análise
dos resultados obtidos das plataformas computacionais a respeito das seqüências de
polímeros.
Segundo Prosdocimi et al. (2002), a diversidade na formação dos profissionais que
atuam nas pesquisas em Biotecnologia é um fator dificultante na comunicação entre
esses profissionais. Para resolver esta questão, surge o Bioinformata, um profissional
cuja formação permite fazer uma ponte entre a Biologia e a Informática, capaz
de conhecer os problemas biológicos reais, e apto a desenvolver uma abordagem
computacional ajustada e viável para esses problemas. Assim, o Bioinformata, além
de saber utilizar programas produzidos por outros programadores, deve também ser
capaz de produzir seus próprios programas, para lidar com problemas típicos da
Bioinformática.
1.2
DNA
Segundo da Fonseca (2003), no final do Séc. XIX, o monge augustiniano Gregor
Mendel, realizando experimentos com ervilhas, estabeleceu a existência de estruturas
biológicas denominadas genes, que seriam responsáveis pela expressão e transmissão
de características hereditárias nos indivíduos. O trabalho de Mendel deu origem
ao ramo da Biologia atualmente conhecido como Genética. Até 1944, acreditava-se
que o material genético estava contido em proteínas no interior das células, até que
Oswald Avery, Maclyn McCarty e Colin McLeod (Avery et al., 1944) demonstraram
que, na verdade, a molécula de DNA é o principal carregador do código genético dos
organismos vivos.
O ácido desoxiribonucléico, ou DNA, é uma macromolécula constituída a partir de estruturas menores, denominadas nucleotídeos. Cada nucleotídeo, por sua
vez, é formado por uma molécula de açúcar (desoxiribose), um grupo fosfato e uma
base nitrogenada que o identifica. Moléculas de DNA são cadeias longas, contendo
uma mensagem composta por um alfabeto de quatro letras, na forma {A, C, G, T },
representando as quatro bases nitrogenadas desta molécula, denominadas, respectivamente, Adenina (A), Guanina (G), Citosina (C) e Timina (T). Mesmo para
microrganismos, a mensagem é longa, tipicamente com 106 caracteres. Em 1953,
Watson e Crick (1953) deduziram a estrutura tridimensional da molécula do DNA
e, a partir de então, seu processo de replicação.
O DNA possui a forma de um helicóide duplo (ver Figura 1.1). Cada uma
das fitas helicoidais representa uma seqüência de nucleotídeos. As duas fitas são
1.3
Introdução
5
mantidas juntas através de ligações químicas conhecidas como pontes de hidrogênio,
sendo que, no caso do DNA, essas ligações obedecem a uma certa regra: as chamadas
bases púricas (A e G) dos nucleotídeos de uma fita são unidas às chamadas bases
pirimídicas (T e C) da outra fita, e vice-versa, formando os chamados pares de base.
Mais precisamente, a Adenina de uma fita sempre se emparelha com uma Timina
da outra fita, e reciprocamente, ao passo que a Guanina de uma fita sempre se
emparelha com uma Citosina da outra, e reciprocamente. Como conseqüência dessa
regra de formação, as fitas na molécula do DNA, embora não sejam idênticas, são
complementares, no sentido que uma determina a outra univocamente. Além disso,
essas fitas possuem uma orientação ditada pelo número do átomo de carbono da
molécula de açúcar na qual um nucleotídeo se liga ao outro. A orientação positiva é,
convencionalmente, denominada orientação 5′ − 3′ , indicando que um nucleotídeo se
liga ao anterior a ele na fita pelo carbono de número 5 e, ao posterior, pelo carbono
de número 3. As orientação das fitas complementares são reversas entre si.
Figura 1.1: Modelo de fita e bastão de dupla hélice do DNA. (Pasternak, 2002).
Um gene pode ser visto como um trecho ou região da molécula de DNA responsável pela codificação e expressão de alguma característica física do indivíduo, o que
corresponde, geralmente, à informação necessária para a síntese de uma determinada
proteína. De acordo com da Fonseca (2003), o DNA não é composto totalmente por
genes, muito pelo contrário, apenas entre 2% e 3% do DNA humano é constituído
por genes. Os restantes, aproximadamente 97% a 98%, do DNA, correspondem a
agrupamentos de proteínas, que não contém nenhuma informação.
As moléculas de DNA, em geral, estão dentro de um cromossomo, que é uma
estrutura que reside no interior das células (especificamente no núcleo, no caso dos
eucariontes). O número de cromossomos varia de espécie para espécie. As informações correspondentes ao DNA, de todos os cromossomos de uma determinada
espécie, compõem aquilo que se denomina o genoma da espécie. O genoma humano,
por exemplo, possui cerca de 3, 3 × 109 pb, ou seja, mais de três bilhões de pares de
base.
1.3
Introdução
1.3
6
RNA e Síntese Protéica
Proteínas são polímeros constituídos de moléculas menores (monômeros), denominadas aminoácidos, unidas entre si através das chamadas ligações peptídicas. A
implementação da informação genética ocorre inicialmente com a síntese de DNA e
proteínas. As proteínas são as moléculas responsáveis pela maior parte da estrutura
e atividade dos organismos, como tecidos, órgãos dos indivíduos e também agem
como hormônios, enzimas digestivas, etc. A principal atividade celular na qual o
DNA está envolvido é justamente a síntese protéica. Além do DNA, o ácido ribonucléico ou RNA, que é um outro tipo de ácido nucléico, também desempenha um
papel fundamental na síntese protéica.
Para que as células possam produzir suas proteínas, elas precisam de aminoácidos, que podem ser obtidos a partir da alimentação ou serem fabricados pelo próprio
organismo. Tipicamente, proteínas são compostas de 200 a 400 aminoácidos de proteínas. A Tabela 1.1 a seguir mostra os aminoácidos de ocorrência natural nas
proteínas.
Tabela 1.1: Aminoácidos de ocorrência natural em proteínas
Item
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
17
19
20
Nome
Glicina ou Glicocola
Alanina
Leucina
Valina
Isoleucina
Prolina
Fenilalanina
Serina
Treonina
Cisteina
Tirosina
Asparagina
Glutamina
Aspartato ou
Ácido aspártico
Glutamato ou
Ácido glutâmico
Arginina
Lisina
Histidina
Triptofano
Metionina
Abreviação
Gly ou Gli
Ala
Leu
Val
Ile
Pro
Phe ou Fen
Ser
Thr ou The
Cys ou Cis
Tyr ou Tir
Asn
Gln
Asp
Símbolo
G
A
L
V
I
P
F
S
T
C
Y
N
Q
D
Glu
E
Arg
Lys ou Lis
His
Trp ou Tri
Met
R
K
H
W
M
De acordo com Lesk (2008), o RNA, assim como o DNA, é constituído de nucleotídeos, sendo a Timina (T) substituída pela Uracila (U). Entretanto, ao contrário
do DNA, o RNA é formado por uma única fita e apresenta uma conformação tridimensional bem mais variada do que a dupla hélice do DNA, podendo se dividir em
três tipos:
• RNA mensageiro (RNAm): responsável por levar a informação do DNA do
núcleo até o citoplasma;
1.3
Introdução
7
• RNA transportador (RNAt): responsável por transportar os aminoácidos que
serão utilizados na formação das proteínas até os ribossomos; e
• RNA ribossômico (RNAr): faz parte da constituição dos ribossomos.
O processo de síntese de proteínas que ocorre no interior das células é formado,
essencialmente, por duas etapas, denominadas transcrição e tradução. Na transcrição, a partir de um gene, a síntese protéica se inicia com a produção de um tipo
de RNA, conhecido como RNA mensageiro ou RNAm. O processo de produção do
RNAm ocorre, a grosso modo, da seguinte forma: o aparato celular reconhece o
início de um gene a partir de alguns sinais, como seqüências específicas de nucleotídeos, que ocorrem nas chamadas regiões promotoras, que se estendem por algumas
dezenas de pares de base antes do início dos genes. Uma enzima, denominada RNA
polimerase, fixa-se ao DNA em pontos específicos da região promotora, conhecidos
como sítios de ligação, provocando uma ruptura localizada entre as suas duas fitas
constituintes. A partir de então, a RNA polimerase desliza sobre uma das fitas do
DNA gênico, no sentido 3′ − 5′ (a cada três ligações), percorrendo cada desoxiribonucleotídeo (C, G, T ou A) e fazendo com que ribonucleotídeos complementares
(respectivamente G, C, A ou U) sejam acrescentados à molécula de RNAm que,
assim, vai se formando ao longo do caminho, no sentido 5′ − 3′ . Ao final do gene,
também reconhecido pela RNA polimerase por um sinal específico, algumas dezenas
de ribonucleotídeos {A} são acrescentados ao RNAm, constituindo a chamada cauda
poli -A, e a RNA polimerase desliga-se do DNA, que é então reconstituído.
Nos seres procariontes, dentre os quais incluem-se formas de vida primitivas como
as bactérias e algas cianofíceas, o RNAm assim produzido já pode ser utilizado para
a síntese de uma determinada proteína. Já nos seres denominados eucariontes, que
são organismos pluricelulares com núcleo celular distinto, dentre os quais incluemse a maioria dos organismos superiores como as plantas e animais, os genes são
extratificados em trechos que contribuem para a síntese protéica, chamados éxons,
intercalados por trechos não codificantes, denominadas íntrons. Portanto, nos eucariontes, o RNAm recém-produzido a partir de um gene da maneira acima descrita
ainda não está completamente maduro, sendo ainda submetido a um processo denominado splicing, no qual, através da ação de um complexo de enzimas, os trechos
correspondentes aos íntrons são removidos da molécula, permanecendo apenas os
trechos codificantes.
Já na tradução, uma vez maduro, o RNAm abandona o núcleo celular, nos eucariontes, e migra para o citoplasma, que é um líquido fora do núcleo, mas no interior da
célula. De acordo com Lesk (2008), a tradução do RNAm em uma proteína é feita,
no interior de organelas celulares denominadas ribossomos, com o auxílio de um
tipo de RNA conhecido como RNA transportador (RNAt), da seguinte forma: cada
tripla ordenada de nucleotídeos consecutivos, como por exmplo {UAC}, ao longo
do RNAm, constitui aquilo que é denominado como códon. Cada códon responde
pela codificação de um determinado aminoácido, no caso do exemplo a Tirosina
(Tyr), conforme disposto na Tabela 1.2. As moléculas de RNAt são, geralmente,
pequenas, tendo cerca de 80 resíduos, e possuem uma região com grande afinidade
a um determinado códon, denominada anti-códon, e uma outra extremidade ligada
a um determinado aminoácido correspondente ao códon afim, de acordo com código
genético da Tabela 1.2. À medida em que o RNAm vai passando pelo ribossomo,
1.4
Introdução
8
um RNAt correspondente a cada um dos sucessivos códons acopla-se ao RNAm,
trazendo consigo o aminoácido equivalente ao códon em questão. Através da ação
de determinadas enzimas, esse aminoácido desprende-se do RNAt e une-se à cadeia
polipeptídica que, assim, vai sendo progressivamente formada. A tradução é finalizada assim que um stop códon é detectado, ou seja, a cada tripla ordenada de
nucleotídeos consecutivos do tipo {UAA, UGA, UAG}. Veja a Tabela 1.2.
Tabela 1.2: O código genético (RNAm)
1a posição
(extr. 5’)
U
C
A
G
2a posição (meio)
U
Phe (F)
Phe (F)
Leu (L)
Leu (L)
Leu (L)
Leu (L)
Leu (L)
Leu (L)
Ile (I)
Ile (I)
Ile (I)
Met (M)
Val (V)
Val (V)
Val (V)
Val (V)
C
Ser (S)
Ser (S)
Ser (S)
Ser (S)
Pro (P)
Pro (P)
Pro (P)
Pro (P)
Thr (T)
Thr (T)
Thr (T)
Thr (T)
Ala (A)
Ala (A)
Ala (A)
Ala (A)
A
Tyr (Y)
Tyr (Y)
STOP
STOP
His (H)
His (H)
Gln (Q)
Gln (Q)
Asn (N)
Asn (N)
Lys (K)
Lys (K)
Asp (D)
Asp (D)
Glu (E)
Glu (E)
3a posição
(extr. 3’)
G
Cys (C)
Cys (C)
STOP
Trp (W)
Arg (R)
Arg (R)
Arg (R)
Arg (R)
Ser (S)
Ser (S)
Arg (R)
Arg (R)
Gly (G)
Gly (G)
Gly (G)
Gly (G)
U
C
A
G
U
C
A
G
U
C
A
G
U
C
A
G
Repare que esse código é degenerado, uma vez que os 64 (43 ) possíveis códons
originam apenas 20 aminoácidos, sendo que cada aminoácido possui um código de
três letras e um outro código de uma letra apenas.
1.4
Organização da Dissertação
Após ter introduzido, no presente capítulo, conceitos básicos relativos as áreas
da Biologia relevantes à presente dissertação, que são de fundamental aplicação
neste trabalho, no Capítulo 2 será feito uma revisão bibliográfica, apresentando as
heurísticas mais utilizadas e problemas relacionados a sequência de caracteres e o
PCCP. No Capítulo 3, são abordados problemas relacionados ao PCCP e suas variações, com suas respectivas formulações, bem como o próprio Problema da Cadeia
de Caracteres mais Próxima, com seu conjunto de formulações e suas aplicações.
O Capítulo 4 mostra métodos heurísticos da literatura utilizados para solucionar
o PCCP e as metaheurísticas Iterated Greedy Search e Biased Random-Key Genetic Algorithm, implementadas nesta dissertação para resolvê-lo. No Capítulo 5, são
apresentadas as instâncias utilizadas para os devidos experimentos computacionais,
bem como os resultados dos testes. Por fim, as conclusões e considerações finais são
apresentadas no Capítulo 6.
Capítulo 2
Uma Revisão Bibliográfica
Neste capítulo serão descritos alguns dos trabalhos extraídos da literatura que
estão relacionados com o Problema da Cadeia de Caracteres mais Próxima (PCCP),
contendo os principais objetivos abordados, aplicações e métodos empregados para
resolver problemas de otimização em sequenciamento de cadeias de caracteres e suas
variações, como encontrar subseqüências de caracteres comuns a uma determinada
seqüência, determinar a presença de motifs em seqüências de DNA, RNA ou em
proteínas.
Para medir as similaridades ou diferenças entre duas seqüências de caracteres,
a maioria dos trabalhos citados abaixo utiliza a distância de Hamming, que é dada
pela soma das diferenças dos caracteres de mesma posição entre duas seqüências.
2.1
Revisão bibliográfica do Problema da Cadeia de
Caracteres mais Próxima
Ben-Dor et al. (1997) utiliza a palavra consenso para definir os caracteres de
uma seqüência. Utiliza Otimização Inteira para modelar o Problema da Cadeia de
Caracteres mais Próxima (PCCP) e usa um algoritmo de aproximação com base em
arredondamento randomizado, com razão de performance próxima do valor ótimo
para d, suficientemente grande, sendo d a maior distância a ser minimizada. Ele
também retrata em seu trabalho o Distinguishing String Selection Problem (DSSP).
Gasieniec et al. (1999) fornece um algoritmo de aproximação de tempo polinomial
para a solução do problema denominado Hamming Center Problem, que possui a
finalidade de encontrar uma cadeia de caracteres, construídas a partir de um alfabeto
binário, que minimize a distância de Hamming entre essa cadeia e as demais do
conjunto dado, as quais são constituídas do mesmo alfabeto e mesma dimensão.
Trabalhando com os problemas Closest String problem e Closest Substring Problem, Li et al. (2002) utiliza algoritmos de aproximação de tempo polinomial para a
solução dos problemas da seqüência mais próxima e da subseqüência mais próxima.
Algumas formulações para o problema foram baseadas no trabalho de Ben-Dor et al.
(1997), e o autor também fez uso do mesmo tipo de algoritmo utilizado no trabalho
de Gasieniec et al. (1999), para resolver o Hamming Center Problem.
Os três problemas estudados no trabalho de Deng et al. (2002) envolvem a busca
de um padrão que, com alguns erros, ocorre em um conjunto de seqüências (o Closest
9
2.1
Revisão bibliográfica do PCCP
10
String Problem), não ocorre em outro conjunto (o Farthest String Problem), ou em
ambos (o Distinguishing String Problem), e faz uso da distância de Hamming para
avaliar a proximidade entre seqüências. Segundo o autor, o seu trabalho tem diferentes tipos de objetivos e encontra aplicações em várias áreas, como a Genética, a
Correspondência de Padrões e a Teoria de Códigos. Neste trabalho é proposta, para
a solução dos problemas citados, uma formulação via algoritmos de aproximação em
tempo polinomial (Polinomial Time Approximation Schemes - PTAS).
Ecker et al. (2002) apresentou um modelo de otimização não-linear para encontrar locais de ligação a proteínas em cadeias de DNA. Foram utilizadas instâncias
de tamanho moderados, formadas pelas cadeias do DNA. Em seu trabalho, usou a
abordagem de probabilidade máxima para encontrar a melhor cadeia que se ajuste
aos dados de seqüência, maximizando a probabilidade das seqüências observadas.
Lanctot et al. (2003), além dos três problemas de seleção de cadeias que Festa
(2007) retrata em seu trabalho, aborda mais quatro problemas. São eles: Closest
Substring Problem, Farthest Substring Problem, Close to Most String Problem, Distinguishing String Selection Problem. A fim de solucionar estes problemas, o autor
propõe técnicas de relaxamento de otimização linear, algoritmos de aproximação e
um algoritmo heurístico. Para o Closest Substring Problem, foi utilizado um algo4
ritmo de aproximação com garantia de desempenho ( + ǫ), com valores pequenos
3
para ǫ > 0, bem como algumas formulações do trabalho de Ben-Dor et al. (1997)
para calcular a distância de Hamming e um método simples de relaxamento linear,
mostrando assim resultados eficientes.
O termo motifs foi relacionado no trabalho de da Fonseca (2003) para identificar
as subseqüências de caracteres, utilizando, como alfabeto, as bases nitrogenadas do
DNA. Em se tratando de Biologia Molecular Computacional, esses motifs representam, em geral, regiões altamente conservadas, isto é, pouco afetadas por mutações,
que desempenham funções biológicas específicas. Esse problema de localização de
motifs limita-se com o Problema do Casamento de Padrões e pode ser abordado
através das mesmas técnicas. O autor faz uso de algoritmos combinatórios exatos e
técnicas para encontrar as similaridades entre as seqüências baseadas na distância
de Hamming e na distância de Levenshtein, a qual é definida como o número mínimo de caracteres para substituir, inserir ou apagar, de modo a transformar uma
seqüência o mais próximo da outra.
Mauch H (2003) fez o uso de Algoritmos Genéticos com modificações, definindo
um novo algoritmo chamado GA Run, com o objetivo de solucionar problemas relacionados ao Problema da Cadeia de Caracteres mais Próxima (PCCP), tendo destaque
os problemas de sequenciamento com Post-Transcriptional Gene Silencing (PTGS)
ou RNA interference (RNAi).
No trabalho de Meneses et al. (2004) foi estudado o Problema da Cadeia de
Caracteres mais Próxima (PCCP). Os autores desenvolveram três formulações de
Otimização Inteira, mostrando que a terceira formulação, baseada nos trabalhos de
Ben-Dor et al. (1997) e Li et al. (2002), é a mais eficiente. Desenvolveram uma
heurística com o objetivo de estabelecer limites superiores para os valores ótimos
do PCCP, tornando mais rápida a aplicação do algoritmo branch-and-bound, que foi
usado com as técnicas de relaxamento da terceira formulação.
São utilizadas, três classes de instâncias, com dimensões variadas, para n =
2.1
Revisão bibliográfica do PCCP
11
{10, 15, 20, 25, 30} e m = {300, 400, 500, 600, 700, 800}, no trabalho de Meneses et al.
(2004). A primeira classe tem como alfabeto o conjunto {0, 1}; a segunda utiliza
um alfabeto de quatro caracteres; a terceira utiliza um alfabeto de 20 caracteres
(representando as seqüências de proteínas). Todas essas instâncias foram geradas
aleatoriamente, exceto 6 conjuntos de instâncias, que foram retiradas do trabalho
de McClure et al. (1994).
Os resultados computacionais se mostraram bastante interessantes, e foram comparados com a mesma formulação de Otimização Inteira, porém utilizando relaxamento linear no lugar do branch-and-bound. Para as instâncias com o alfabeto de 20
caracteres, os resultados foram mais significantes, na maioria dos casos conseguindo
alcançar soluções próximas do ótimo em menos de 1 minuto.
Quatro diferentes algoritmos heurísticos de construção e busca local para o Greedy Randomized Adaptive Search Procedures (GRASP) são apresentados por Pinto
et al. (2006). Além desses procedimentos, foram propostas duas estratégias de busca
intensiva, usando os conceitos de First Improvement (FI) e Best Improvement (BI).
A construção GRASP é a mesma para os quatro algoritmos, que se diferenciam na
busca local, uma determinística e outra aleatória, e nas estratégias de busca. O
número máximo de iterações GRASP foi de {n, 5n, 10n}, em que n é a dimensão de
cada seqüência, e os valores escolhidos para α = {0.1; 0.2; ...; 0.9}. Com o objetivo
de resolver o Problema da Cadeia de Caracteres mais Próxima (PCCP), o alfabeto
utilizado foi de 4 caracteres, com n = {300, 400, 500, 700} e m = {10, 15, 20, 25, 30}
(m é número de seqüências em cada conjunto), sendo que as instâncias testadas
foram retiradas do trabalho de Meneses et al. (2004). Cada instância foi executada cinco vezes. Destas cinco execuções foram calculadas as médias e os mínimos
das soluções xi encontradas. A partir daí, foram calculados os Gaps em relação às
soluções ótimas s∗ da seguinte forma:
P5
1
(
i=1 f (xi ))
Gapmédio = 5
− f (s∗ )
(2.1)
∗
f (s )
Gapmínimo =
min{f (xi ); i = 1, . . . , 5} − f (s∗ )
f (s∗ )
(2.2)
O termo Gap se refere à distância entre o valor procurado e os valores obtidos nos
testes. Os resultados obtidos pelos algoritmos implicaram melhorias na qualidade
das soluções, obtendo valores do Gap inferiores em relação aos encontrados por
Meneses et al. (2004).
Gramm et al. (2006) trata do problema Distinguishing Substring Selection (DSSS),
separando o conjunto de seqüências em duas partes, um conjunto de “boas” seqüências e outro de seqüências “ruins”, respeitando a métrica de Hamming. Foi apresentado um algoritmo exato de parâmetro-fixo para resolver o DSSS de forma eficiente,
baseando em algumas técnicas utilizadas por Lanctot et al. (2003) para resolver
um problema semelhante. O autor adaptou o algoritmo para a seqüência mais próxima ajudar a solucionar o DSSS. Foi mostrado que algoritmos utilizando Efficient
Polynomial-Time Approximation Scheme (EPTAS) não resultam em um boa solução para o DSSS.
Festa (2007) destaca que um dos problemas fundamentais em Biologia Molecular consiste em comparar seqüências genômicas em indivíduos de diferentes espécies,
2.1
Revisão bibliográfica do PCCP
12
determinando sua similaridade ou distância. Neste trabalho foi feita uma descrição
detalhada de problemas biológicos formulados como problemas de otimização combinatória. Uma nova heurística é proposta, com a finalidade de encontrar boas
soluções para uma classe particular desses problemas, conhecida como Far From
Most String Problem (FFMSP), dando uma ênfase especial à formulação matemática e a métodos eficientes de programação matemática, aplicados para resolvê-los.
Em seu trabalho, Festa (2007) ainda descreve outros dois problemas, o Closest String
Problem (CSP) e o Farthest String Problem (FSP).
Para solucionar o FFMSP, a autora implementou a heurística GRASP, escolhendo, de forma aleatória, os dois melhores candidatos para compor a Lista de
Candidatos Restrita (LCR). Para a busca local, o algoritmo 2-exchange, proposto
por Meneses et al. (2004), foi utilizado. As instâncias testadas foram comparadas com os resultados de Meneses et al. (2004), com n = {100, 150, 200} e m =
{300, 400, 500, 600, 800}. Os resultados obtidos com os testes foram as melhorias
das soluções ótimas acima de 10%.
Um algoritmo paralelo Multistart foi proposto por Gomes et al. (2008), para solucionar o Closest String Problem (CSP). O autor faz uso de uma heurística paralela,
combinando um algoritmo de aproximação com estratégias de busca local. O algoritmo 2-approximation, proposto no trabalho de Meneses et al. (2005), foi utilizado,
tendo algumas modificações nas estratégias de busca local, a qual usa vários processadores em uma máquina paralela. O autor ainda destaca o uso de uma matriz
de dimensão n para calcular mais rapidamente a distância de Hamming. Os testes
foram feitos com 20 processadores e comparados com um algoritmo exato, tendo o
objetivo de avaliar apenas as distâncias de Hamming encontradas e não o tempo
gasto no processamento. Algumas instâncias foram retiradas dos experimentos de
McClure et al. (1994) e do banco de dados GenBank. Uma parte das instâncias,
formadas pelo alfabeto Σ = {A, C, G, T }, era composta por 72% de seus caracteres
{C, G}. Foram realizados também testes com o alfabeto de 2, 4 e 20 caracteres.
Construindo um novo método para resolver o PCCP, Chen (2009) aplicou a
técnica Iterative Rounding, que foi empregada com sucesso no trabalho de Jain
(2001), auxiliando um algoritmo de aproximação para solucionar um problema de
redes de Steiner, considerado também um problema NP-Difícil. Utilizando uma
formulação com base em Otimização Inteira e aplicando técnicas de relaxamento
linear, o autor construiu um algoritmo mais ganancioso para solucionar o PCCP.
Os testes foram realizados com o conjunto de instâncias de McClure et al. (1994)
para um alfabeto de 4 caracteres. Os resultados foram comparados com os obtidos
pelo algoritmo Branch-and-Bound de Meneses et al. (2004). O algoritmo testado se
mostrou mais rápido com relação ao Branch-and-Bound, com soluções iguais ou em
alguns casos muito próximas.
Em um trabalho mais recente, Ma e Sun (2009) propuseram um método de
aproximação denominada Polinomial Time Approximation Schemes (PTAS), cuja
−2
complexidade é O(no(ǫ ) ). Este método, segundo os autores, é formulado para os
problemas Closest String Problem (CSP) e Closest Substring Problem, que tratam
da busca de uma seqüência ou subseqüência que seja similar, ao máximo, a uma
seqüência de um conjunto de cadeias dado. Os trabalhos que utilizam algoritmos
baseados em heurísticas, como aqueles encontrados nos estudos de Liu et al. (2005),
Mauch H (2003) e Meneses et al. (2004), não apresentam nenhuma garantia de
2.1
Revisão bibliográfica do PCCP
13
desempenho, mas, em contrapartida, os métodos de aproximação, desenvolvidos até
então, sacrificam a qualidade da solução em função da obtenção de um algoritmo
cujo tempo computacional seja polinomial. O autor desenvolveu também algoritmos
de parâmetros fixos, cuja complexidade é O(n|Σ|o(d) ), em que o raio d é o parâmetro
e Σ é o alfabeto. Como resultado, tem-se um algoritmo de tempo polinomial para
d = O(logn) e Σ de tamanho constante.
Faro e Pappalardo (2010) propuseram um novo algoritmo, chamado Ant-CSP,
com base no algoritmo Colônia de Formigas. Para avaliar o seu efeito e robustez, foi
comparado com dois outros algoritmos para o PCCP, um com base em Simulated
Annealing (SA), chamado de SA-CSP, e o outro em Algoritmo Genético (AG),
denominado GA-CSP, ambos utilizados por Liu et al. (2005) em seu trabalho. As
instâncias para os testes foram geradas aleatoriamente para um alfabeto Σ = 4, com
n = {10, 20, 30, 40, 50} e m = {10, 20, ..., 50} ∪ {100, 200, ..., 1000}. Os resultados
experimentais mostram que o algoritmo Ant-CSP proposto neste trabalho calcula
quase sempre melhores soluções e é muito mais rápido do que os algoritmos SA e
AG, independentemente do número e do comprimento de seqüências de entrada. Em
particular, para instâncias pequenas com 10 ≤ n ≤ 50, o algoritmo Ant-CSP é de 5
a 36 vezes mais rápido em relação ao GA-CSP.
Um novo método de aproximação é apresentado no trabalho de Chen et al.
(2010), denominado 3-string approach. Essa aproximação é utilizada pelos autores
para desenvolver novos algoritmos parametrizados para o PCCP. Os autores ainda
destacam uma vantagem entre esse método e aqueles desenvolvidos em trabalhos
anteriores, que utilizavam a técnica de 2-string approach (Chen (2009)). Segundo
os autores, intuitivamente esse novo método é melhor que os anteriores, pois, selecionando cuidadosamente três strings de entrada, ao invés de duas, o algoritmo
pode visitar uma porção maior da solução de saída. Segundo Chen et al. (2010), há
um ganho na complexidade dos algoritmos desenvolvidos com 3-string approach em
relação àqueles baseados em duas cadeias.
Trabalhando com dois tipos de problemas, Closest String Problem (CSP) e Closest Substring Problem (CSSP), Chimani et al. (2011) apresentou formulações em
otimização linear inteira para solucionar esses dois problemas. Para o CSSP, é
apresentada uma nova formulação, chamada de Polytope-Wise, superior à CSP,
pois evita suas extensões de formulação. Para os testes, foram utilizadas instâncias reais da Biologia e instâncias geradas aleatoriamente. Com dimensões de
K = {10, 20, 30, 40, 50}, que representam o número de seqüências em cada conjunto, n = {250, 500, 750, 1000, 2000, 5000, 10000}, que representam a dimensão de
cada seqüência, e com o alfabeto Σ = {2, 4, 20}. Os resultados foram comparados
com os trabalhos de Faro e Pappalardo (2010), Meneses et al. (2004) e Gomes et al.
(2008). Os experimentos mostraram que, para o problema CSP, seu tempo de execução foi muito satisfatório, e, mesmo para instâncias aleatórias, teve uma solução
perto da ótima.
No trabalho de Liu et al. (2011), foi apresentado um algoritmo exato, chamado
Distance First Algorithm (DFA), para solucionar problemas de CSP. Os autores
fizeram uma análise teórica para demonstrar que DFA consegue encontrar soluções
ótimas para um conjunto de três seqüências com alfabeto de tamanho dois. O mesmo
problema foi relatado também por Gramm et al. (2001), construindo o algoritmo
3-strings para solucionar este caso especial do CSP. Para os casos gerais do CSP, foi
2.1
Revisão bibliográfica do PCCP
14
projetado uma heurística polinomial, chamada LDDA-LSS, que é uma combinação
do algoritmo LDDA, proposto por Liu et al. (2004), com estratégias de busca local.
Essas estratégias são adaptadas dos trabalhos de Meneses et al. (2004) e Gomes
et al. (2008). Diferente destes autores, Liu et al. (2011) descreve como encontrar o
parâmetro N utilizado para definir o número de iterações do algoritmo.
Estas estratégias de busca local funcionam da seguinte forma: seja um conjunto
de seqüências S = {s1 , ..., sn }, com n seqüências de dimensões m. Então, seja t
a solução corrente e sindex uma string em S, tal que dH (si , t) é a maior distância
encontrada no conjunto, em que i = {1, 2, ..., n}. Então, para k = {1, 2, ..., m}, se
sindex
6= tk e substituindo tk por sindex
não faz a solução piorar, a substituição é feita
k
k
e a distância de Hamming entre t e todas as strings em S é computada. Depois de
verificar todas a m posições, uma nova string t é produzida e o processo se repete.
Os autores definem o número de iterações da seguinte forma:
N = m.|A|.b − rep
em que m é a dimensão da string, A é o tamanho do alfabeto e b−rep é pré-definido.
Depois de alguns testes experimentais, Liu et al. (2011) definiu b − rep = 0, 5,
para grandes instâncias com um alfabeto de 20 caracteres, e b − rep = 2, para os
demais casos. Para os devidos testes, os autores utilizaram dados biológicos reais e
simulados, sendo seis instâncias de alfabeto com 20 caracteres do conjunto de dados
do trabalho de McClure et al. (1994). As comparações foram feitas com o algoritmo
Exact, que faz uso de Otimização Inteira, o algoritmo proposto LDDA-LSS e o
Heuris-Seq, que é uma versão seqüencial da heurística proposta por Gomes et al.
(2008). Os resultados mostraram que o algoritmo proposto não é muito eficiente
para resolver instâncias pequenas, mas muito eficiente para instâncias de grandes
dimensões.
O trabalho de Zörnig (2011), por sua vez, apresenta um novo modelo de otimização linear inteira. Este modelo requer, segundo o autor, um número menor de
variáveis e restrições, o que representa uma melhoria no modelo de otimização linear
inteira binária utilizado em outros trabalho da literatura, como em Festa (2007) e
Meneses et al. (2004). Segundo Zörnig (2011), a redução do número de variáveis
e restrições do problema linear inteiro seria possível a partir do reconhecimento da
existência de isomorfismo entre colunas da matriz a ser tratada e a obtenção de
uma matriz denominada pelo autor de matriz normalizada. Essa normalização da
matriz proporciona, segundo o autor, a redução do tamanho do alfabeto. A solução
normalizada terá, então, o número de variáveis menor que a solução original, pois o
alfabeto desta terá no máximo o tamanho igual ao número de linhas da matriz.
Nos testes realizados pelo autor, foram aplicadas as instâncias geradas aleatoriamente a partir de alfabetos de tamanho 4 para cadeias cujo tamanho m pertence ao
intervalo 1000 ≤ m ≤ 2000, e também a partir de um alfabeto de tamanho 5 com
cadeias que possuem dimensão em torno de 3000 caracteres. A aplicação do modelo mostrado por Zörnig (2011) fica restrita a instâncias formadas por um reduzido
número de cadeias de no máximo 20.
Os resultados dos testes mostraram que em 14 das 20 instâncias o valor da função
objetivo da solução de arredondamento é o menor inteiro maior ou igual ao valor ideal
do relaxamento linear, tornando a solução aproximada do CSP, determinada pelo
arredondamento, uma solução ideal. Nos 6 casos restantes, o erro de aproximação
2.1
Revisão bibliográfica do PCCP
15
CSP é no máximo 1. Este trabalho chama a atenção pela técnica de álgebra linear
aplicada.
Usando técnicas de relaxação lagrangeana, Tanaka (2012) propõe um algoritmo
heurístico eficiente na resolução do CSP. A idéia principal é aplicar técnicas de relaxação lagrangeana para a formulação inteira-mista, permitindo obter uma solução
aproximada e, ao mesmo tempo, estreitar o limite inferior. O algoritmo proposto
é composto por duas partes. Na primeira, o algoritmo subgradiente resolve o problema dual lagrangeano (DLR). Segundo o autor, multiplicadores de Lagrange µ são
iterativamente atualizados para maximizar d∗ (µ). Este processo se repete até que
uma condição de término seja satisfeita. Na segunda etapa, é aplicada a metaheurística Busca Tabu para melhorar a solução. No procedimento Busca Tabu, Tanaka
(2012) fez uso de uma função de avaliação V , a qual avalia os melhores caracteres
para substituir por outros na solução inicial s. A seleção destes caracteres é feita
através da string mais distante em relação a s, escolhendo de forma determinística
os caracteres que se diferem entre essas duas seqüências. O critério para troca é
diminuir a distância máxima de Hamming entre s e as demais cadeias do conjunto.
A Busca Tabu é encerrada quando não houver melhora no valor da função objetivo
d, em movimentos sucessivos contabilizados por 4.N, sendo N é o número de strings
do conjunto.
As instâncias utilizadas para os testes foram as mesmas de Gomes et al. (2008),
com alfabeto Σ = {2, 4, 20} e instâncias simulando o genoma da “Actinobacteria”
Streptomyces coelicolor, cuja formação é composta de 72% dos caracteres GC, com
N = {10, 20, ..., 50} e a dimensão das strings dada por L = {1000, 2000, ..., 5000}.
As comparações do algoritmo proposto foram feitas com os seguintes trabalhos:
algoritmo paralelo Multistart de Gomes et al. (2008), comparando as médias do Gap;
o algoritmo CGSA de Liu et al. (2008), que utiliza como base a heurística Simulated
Annealing; o algoritmo GA proposto por Julstrom (2009) com L = 500 e Σ =
{2, 4, 10, 20, 30}; e Faro e Pappalardo (2010), com o algoritmo Ant-CSP, com todas
as strings de dimensão L = 1000 e Σ = 4. Os experimentos computacionais mostram
que o algoritmo proposto pôde encontrar boas soluções, ou soluções aproximadas, em
um tempo computacional muito rápido em relação a todas as heurísticas testadas.
Em um trabalho mais recente, de Souza (2012) implementou dois algoritmos
baseados nas metaheurísticas GRASP (Greedy Randomized Adaptative Search Procedure), ILS (Iterated Local Search) e AG (Algoritmo Genético), aplicando-os à
resolução do Problema da Cadeia de Caracteres mais Próxima (PCCP). Foram implementados quatro versões de algoritmos, a saber, GRASP-AG I e GRASP-AG II,
que se diferenciam na fase de construção GRASP; GRASP-ILS I e GRASP-ILS II,
que se diferenciam na escolha dos elementos a compor a Lista de Candidatos Restrita
(LCR). O algoritmo GRASP é responsável apenas pela fase de construção, sendo
a varredura do espaço de busca realizada pelos algoritmos AG e ILS. O método de
Descida Randômica é responsável pela busca local.
Após testes preliminares, verificou-se que o GRASP-AG I e GRASP-ILS I apresentaram melhores resultados computacionais em relação aos outros dois algoritmos.
As instâncias testadas no trabalho foram construídas a partir do alfabeto de quatro
caracteres do DNA dado por Σ = {A, C, T, G}. Os resultados foram comparados
com outros de Meneses et al. (2004), Gomes et al. (2008) e Mousavi e Esfahani
(2012). Para instâncias moderadas e grandes, os algoritmos apresentados atingiram
2.2
Uma Análise da revisão bibliográfica sobre PCCP
16
valores sub-ótimos razoáveis, porém, pouco competitivos em relação aos resultados
da literatura.
Em outro trabalho encontrado na literatura, que também faz uso da heurística
GRASP para solucionar o CSP, Mousavi e Esfahani (2012) utilizam uma função
heurística (cos(.)) de avaliação inspirada na teoria das probabilidades, a fim de
avaliar e comparar soluções candidatas. A função proposta pelos autores avalia o
beneficio de duas ou mais soluções candidatas diferentes, que possuam a mesma
distância de Hamming, diminuindo assim o custo computacional do algoritmo.
Essa nova função proposta por Mousavi e Esfahani (2012) funciona da seguinte
forma: dadas duas soluções candidatas x1 e x2 , é dada à solução x1 um valor maior
que o de x2 se e somente se ocorrem f (x1 ) < f (x2 ) ou f (x1 ) = f (x2 ) e cos(x1 ) <
cos(x2 ), em que: f (.) é a função da avaliação tradicional e cos(.) é a nova função
heurística desenvolvida pelos autores. Segundo os autores, esse tipo de avaliação
sugere que o número de mínimos locais poderá ser reduzido, quando for utilizada a
função cos(.) no lugar de f (.) para avaliar soluções candidatas.
A fase de construção GRASP é avaliada por essa função heurística, e foi ajustada
para atingir um equilíbrio adequado entre a escolha aleatória e gulosa dos candidatos
para compor a Lista de Candidatos Restrita (LCR). Já a busca local é feita por um
algoritmo de melhoria iterada.
Os resultados experimentais obtidos pelo algoritmo GRASP-CSP de Mousavi
e Esfahani (2012) foram comparados com os resultados das seguintes heurísticas
propostas para o CSP: CGSA por Liu et al. (2008); Ant-CSP por Faro e Pappalardo
(2010); a heurística DBCGA, do trabalho de Julstrom (2009); e o algoritmo exato
Mismatch count, de Hufsky et al. (2010).
Os parâmetros utilizados no GRASP-CSP, implementados no trabalho de Mousavi e Esfahani (2012) foram: Lista de Candidatos Restrita (LCR) com tamanho
2, 10 iterações do algoritmo e número de execuções igual a 20. A fim de demonstrar a ineficiência dos métodos exatos, em especial o Mismatch Count, foram geradas aleatoriamente, segundo os autores, 18 instâncias de tamanho reduzido com
um alfabeto binário (|Σ| = 2), com n = {10, 20, 30} (número de seqüências) e
m = {10, 20, 30, 40, 50, 100} (dimensões das seqüências).
As comparações entre os resultados do algoritmo GRASP-CSP, implementado
no trabalho de Mousavi e Esfahani (2012), e aqueles encontrados pelas heurísticas
dos trabalhos de Liu et al. (2008), Faro e Pappalardo (2010) e Julstrom (2009),
foram feitas com vários grupos de instâncias constituídas por alfabetos pertencentes
ao conjunto Σ = {2, 4, 10, 20, 30}. Para alguns casos com valores de m ≤ 50, as
soluções obtidas pelo algoritmo GRASP-CSP foram iguais, porém com o tempo de
processamento reduzido. Para os demais casos, o algoritmo teve um desempenho
superior e com um tempo bem abaixo das demais comparações.
2.2
Análise da Revisão Bibliográfica sobre PCCP
A seguir, a Tabela 2.1 contém os resultados da literatura referente aos autores
citados anteriormente, com destaque para o tipo de problema tratado e os métodos
utilizados para resolvê-los.
Para encontrar uma solução viável para problemas relacionados ao PCCP, há
2.2
Uma Análise da revisão bibliográfica sobre PCCP
17
Tabela 2.1: Resultados da literatura.
Autor
Ben-Dor (1997)
Gasieniec et al. (1999)
Li et al. (2002)
Deng et al. (2002)
Ecker et al. (2002)
Lanctot et al. (2003)
Mauch (2003)
Fonseca (2003)
Problema
CSP e DSSP
Hamming Center
Problem
Closest String problem e
Closest Substring problem
Closest String problem e
Farthest String Problem e
Distinguishing String Problem
Encontrar locais de
ligação a proteínas em
cadeias de DNA
CSP, FSP, Close to Most
String Problem, Distinguishing
String Selection Problem.
CSP
subseqüência de caracteres
(motifs)
Meneses et al. (2004)
PCCP
Pinto et al. (2006)
Gramm (2006)
PCCP
DSSS
Festa (2007)
CSP, FSP, FFMSP
Jing-Chao (2007)
Gomes et al. (2008)
Ma e Sun (2009)
CSP
PCCP
CSP, CSSP
Faro e Pappalardo (2009)
Chen et al. (2010)
Chimani (2011)
PCCP
Closest String Problem
CSP, CSSP
Liu et al. (2011)
CSP
Zornig (2011)
CSP
Tanaka (2012)
CSP
Mousavi e Esfahani (2012)
Souza (2012)
CSP
PCCP
Metodologia
Algoritmo de aproximação
Algoritmo de aproximação
de tempo polinomial
Algoritmo de aproximação
de tempo polinomial
Polinomial Time
Approximation Schemes
(PTAS)
Nonlinear Programming
(NLP)
Técnicas de Relaxamento de
Programação linear, Algoritmos de
Aproximação e Algoritmo heurístico
GA Run
Algoritmos Força-bruta,
Knuth-Morris-Pratt (KMP)
e Boyer-Moore (BM)
Otimização Inteira, uma
heurística e um Algoritmo
branch-and-bound
Algoritmos heurísticos GRASP
Algoritmo exato
de parâmetro-fixo
Otimização Combinatória,
heurísticas GRASP
Iterative Rounding
Algoritmo Paralelo Multistart
Polinomial Time Approximation
Schemes (PTAS)
Algoritmo Ant-CSP
Algoritmo 3-string approach
formulações do tipo Integer
Linear Program (ILP)
algoritmo exato Distance
First Algorithm (DFA)
Programação Linear Inteira
Relaxamento LP
Técnicas de Relaxação Lagrangeana,
Algoritmo Heurístico e a
Meta-heurística Busca Tabu
GRASP
GRASP, ILS e AG
o uso freqüente de metaheurísticas híbridas, algoritmos de aproximação de tempo
polinomial, heurística de busca local e o uso de Otimização Inteira. Estes métodos
são os mais utilizados para se obter uma solução rápida e de boa qualidade, otimizando, assim, os problemas relacionados a seqüências de caracteres, seja o objetivo
encontrar a cadeia mais próxima ou a mais distante.
Capítulo 3
Caracterização do Problema
Esse capítulo irá abordar o Problema da Cadeia de Caracteres mais Próxima
(PCCP) que, segundo a literatura, está entre os mais importantes problemas estudados pelos pesquisadores da Biologia Computacional. Em muitos problemas que
ocorrem nessa área, existe uma necessidade de comparar e encontrar características
comuns em seqüências de DNA, RNA e proteínas. Em se tratando de otimização
combinatória, o PCCP é considerado um problema NP-difícil.
Segundo a literatura, o Problema da Cadeia de Caracteres mais Próxima é um
dos vários problemas constituintes da classe de problemas da Biologia Computacional e da Teoria dos Códigos. Em destaque, tem-se a descoberta de alvos potenciais
para medicamentos, criação de testes diagnósticos e identificação de padrões em
seqüências de proteínas. Um dos principais objetivos deste trabalho é encontrar
uma seqüência (string) ou subseqüência (substring) de caracteres, que se aproxime
ao máximo da estrutura de um determinado conjunto de seqüências, formadas pelos mesmos grupos de caracteres, como as bases nitrogenadas do DNA, RNA ou
seqüências de proteínas. Para medir estas semelhanças, é utilizado como métrica a
distância de Hamming. A distância de Hamming entre duas seqüências de caracteres de mesma dimensão corresponde ao número de posições nas quais as seqüências
diferem.
A escolha da utilização da distância de Hamming se deve ao fato de ser a mais
utilizada em toda a literatura, empregada também no trabalho de Meneses et al.
(2004), e por ser a mais simples e objetiva forma de determinar as similaridades ou
diferenças entre duas seqüências.
O presente Capítulo está organizado como segue: a próxima seção introduz os
problemas mais importantes em Biologia Computacional, abordados no trabalho
de Festa (2007). A Seção 3.2 apresenta o Closest String Problem. A Seção 3.3
apresenta o Problema da Cadeia de Caracteres mais Distante ou Farthest String
Problem(FSP); a Seção 3.4 mostra o Far From Most String Problem (FFMSP);
a Seção 3.5 apresenta outros tipos de problemas relacionados com seqüências de
caracteres, estudados por Lanctot et al. (2003) e outros autores e, por fim, na Seção
3.6 será apresentada uma formulação proposta por Meneses et al. (2004) para a
solução do PCCP, tema desta dissertação, com algumas definições e exemplos.
18
3.1
Caracterização do Problema
3.1
19
Alguns problemas de comparação e seleção de
cadeias
Segundo Festa (2007), problemas de comparação e seleção de cadeias pertencem
a uma classe da Biologia Molecular mais conhecida como seqüências de consenso,
em que um conjunto finito de seqüências é dado, e o objetivo é encontrar o seu
consenso, ou seja, uma nova seqüência que concorde, tanto quanto possível, com
todos elementos de uma seqüência dada.
Alguns destes problemas são apresentados por Li et al. (1999). Dentre eles, estão:
(i) Consensus Patterns: dado um conjunto de seqüências S = {s1 , s2 , ..., sn }, com
|si | = m, e um número inteiro L, encontrar a string mediana s e uma substring
ti (Consensus Patterns), ambas com dimensão L, de cada si , minimizando
n
X
dH (s, ti ); e
i=1
(ii) Star Alignment: dado um conjunto de seqüências S = {s1 , s2 , ..., sn }, com
n
X
|si | = m, encontrar a seqüência mediana s minimizando
dE (si , s), em que
i=1
dE denota a distância edit.
De acordo com Festa (2007), os seguintes problemas abordados em seu trabalho
também estão relacionados com seqüências de consenso:
(i) o consenso é uma nova seqüência, cuja distância total, a partir de todas as
seqüências de um dado conjunto, é a menor possível (Closest String Problem);
(ii) o consenso é uma nova seqüência, cuja distância total a partir de todas as
seqüências de um dado conjunto é a maior possível (Farthest String Problem);
(iii) o consenso é uma nova seqüência, e este problema consiste em determinar
uma seqüência que seja a mais distante possível de um conjunto de seqüências
dadas (Far From Most String Problem).
As formulações matemáticas referentes aos três problemas citados são apresentados a seguir. As seguintes notações são utilizadas nestes três problemas:
• um alfabeto Ω = {c1 , c2 , · · · , ck } é um conjunto finito de elementos chamados
caracteres;
• uma seqüência s = {s1 , s2 , · · · , sm }, em que |s| = m, sendo m a dimensão
da seqüência s, ou seja, o número de cadeias que s possui, formadas pelo
alfabeto Ω, de modo que os caracteres si que compõem a cadeia pertencem a
Ω, i = 1, 2, · · · , m;
• Dadas duas seqüências s e t em Ω, tais que |s| = |t|, a distância de Hamming
entre s e t, denotada por dH(s,t) , é calculada pela expressão:
dH(s,t) =
|s|
X
i=1
φ(si , ti ),
(3.1)
3.2
Caracterização do Problema
20
em que a função φ(·) é tal que:
φ : Ω × Ω → {0, 1}
(3.2)
sendo:
φ(a, b) =
0, se a = b;
1, caso contrário.
(3.3)
Deve ser observado que a distância de Hamming entre duas cadeias a e b pode
ser calculada desde que as duas cadeias tenham o mesmo número de caracteres.
Essa distância é dada pela soma de uma unidade ao valor atual da distância para as
posições em que os caracteres são diferentes. Caso esses mesmos caracteres sejam
iguais, somaremos zero ao valor da distância atual. Esse procedimento do somatório
se repete para cada cadeia de uma instância. A seguir, um exemplo de como encontrar a distância de Hamming entre uma seqüência dada e as demais cadeias de um
conjunto.
Exemplo 3.1 Seja o alfabeto Ω = {A, C, G, T } e um conjunto de cadeias de caracteres S = {s1 , s2 , s3 }, formadas pelo alfabeto Ω, em que s1 = (GAT T G), s2 =
(GAT CA), s3 = (CT CGA). Se t = (GAT T C), determine a distância de Hamming
entre t e as demais cadeias do conjunto S.
• No conjunto S, tem-se: número de cadeias de caracteres em S é m = 3 e
|s1 | = |s2 | = |s3 | = 5 (dimensão de cada cadeia em S);
• Sendo |t| = 5, segue que |s1 | = |s2 | = |s3 | = |t|;
• Então, a distância de Hamming entre t e s1 , s2 , s3 é dada por: dH (s1 , t) = 1;
dH (s2 , t) = 2; dH (s3 , t) = 5
Todas essas seqüências possuem a mesma dimensão e são construídas a partir
de um único alfabeto, que é utilizado para definir as cadeias de caracteres. Estas
cadeias são utilizadas para representar as bases nitrogenadas do DNA, na forma do
alfabeto Ω = {A, C, G, T }.
3.2
Closest String Problem (CSP)
Dado um conjunto finito de n seqüências Σ = {s1 , s2 , . . . , sn } em Ω, cada um
de comprimento m, ou seja, de modo que si ∈ Ωm , i = 1, 2, . . . , n, o Problema da
Cadeia de Caracteres mais Próxima, ou (CSP), é encontrar uma seqüência central
t ∈ Ωm , ou seja, uma seqüência t de comprimento m, tal que a distância de Hamming
entre t e todas as outras seqüências em Σ seja mínima, ou seja:
dH (t, si ) ≤ d, ∀si ∈ Σ
(3.4)
O presente problema pode ser formulado como um problema de Otimização Inteira. Seja vk um conjunto de caracteres que aparecem na posição k no conjunto de
3.3
Caracterização do Problema
21
seqüências em Σ. Para cada k = 1, 2, . . . , m e j ∈ vk , define-se a variável de decisão
binária:
1, se o j-ésimo caractere em vk for utilizado na posição k;
xjk =
(3.5)
0, caso contrário.
De acordo com Festa (2007), o CSP admite a seguinte formulação matemática:
(CSP )
(3.6)
min d
sujeito a:
X
xjk = 1,
k = 1, 2, . . . , m
(3.7)
j∈vk
m−
m
X
xsij j ≤ d,
i = 1, 2, . . . , n
(3.8)
j=1
d ∈ N+ , xjk ∈ {0, 1},
k = 1, 2, . . . , m, ∀j ∈ vk .
(3.9)
Este problema foi primeiramente estudado na área da Teoria de Códigos (Roman
(1992)) e, mais tarde, sua intratabilidade computacional foi provado por M. Frances (1997) e Lanctot et al. (1999). Quando o valor de dH é muito pequeno, este
é o objetivo a ser alcançado por pesquisadores em genética, encontrando regiões
semelhantes, as quais se associariam a uma seqüência complementar de uma droga
alvo. Alguns autores, como Lanctot et al. (2003) e Li et al. (2002), apresentaram
esquemas de aproximação de tempo polinomial (Polynomial Time Approximation
Scheme) (PTAS) para solucionar o CSP.
Esta formulação para o CSP também pode ser encontrada no trabalho de Meneses et al. (2004), que apresenta outras duas formulações com base em Otimização
Inteira para solucionar o CSP.
3.3
Farthest String Problem(FSP)
Segundo Festa (2007), o Farthest String Problem - FSP pode ser útil em situações
como encontrar uma seqüência genética que não pode ser associada a um grupo de
espécies. Dado um conjunto finito de seqüências Σ = {s1 , s2 , . . . , sn }, um problema
complementar para o CSP é encontrar uma seqüência t ∈ Ωm mais distante das
seqüências em Σ.
De acordo com (Festa, 2007), o FSP também pode ser formulado como um
problema de Otimização Inteira. Seja, então, a variável de decisão xjk definida
como na expressão (3.5). Então, o problema (FSP) pode ser definido como:
(F SP )
max
d
(3.10)
3.4
Caracterização do Problema
22
sujeito a:
X
xjk = 1,
k = 1, 2, . . . , m
(3.11)
j∈Vk
m−
m
X
xsij j ≥ d,
i = 1, 2, . . . , n
(3.12)
j=1
d ∈ N+ , xjk ∈ {0, 1},
k = 1, 2, . . . , m, ∀j ∈ Vk .
(3.13)
A intratabilidade computacional do FSP foi demonstrada em Lanctot et al.
(2003), provando que o problema continua sendo intratável para um alfabeto com
apenas dois caracteres. O autor ainda mostra que existe uma PTAS para solucionar
o FSP.
Observe que a formulação matemática para o FSP é bastante semelhante à usada
pelo CSP, com apenas algumas mudanças no objetivo de otimização e o sinal de
desigualdade na restrição. Assim, para solucionar o problema, podem ser usadas
técnicas semelhantes como as empregadas para a solução do CSP.
3.4
Far From Most String Problem(FFMSP)
O Far From Most String Problem (FFMSP) é um dos problemas pertencentes a
um grupo chamado de problemas de seleção e comparação de cadeias de caracteres,
que pertencem a uma classe mais geral de problemas, conhecida como seqüências
consenso.
Dado um conjunto finito de seqüências, o objetivo é encontrar seu consenso, isto
é, uma nova seqüência que seja a mais próxima possível de todas as seqüências de
um dado conjunto. Em outras palavras, o objetivo é determinar uma seqüência
chamada consenso, porque ela representa, de alguma forma, todas as seqüências de
um determinado conjunto. Para o FFMSP, o objetivo é encontrar uma seqüência
que está distante do maior número de seqüências possíveis de um dado conjunto
com seqüências de mesma dimensão.
Um problema estreitamente relacionado com o FSP é o FFMSP. De acordo
com (Festa, 2007), a formulação para o FFMSP pode ser representada da seguinte
maneira.
Dado um limitante t, uma seqüência s deve ser encontrada a fim de maximizar
a variável x, de modo que:
dH (s, si ) ≥ t,
para si ∈ P ⊆ Σ e |P | = x.
(3.14)
Nesta formulação, P é um subconjunto de Σ, tendo cardinalidade dada por x.
Desse modo, aumentar o valor de x equivale a aumentar o número de cadeias das
quais a cadeia s a ser encontrada está em sua distância máxima. Neste caso, desejase encontrar uma string que seja o mais distante possível da maior parte das strings
do conjunto. No FSP, o objetivo é encontrar uma string que seja a mais distante
de todos os elementos de um conjunto.
3.5
Caracterização do Problema
23
Em um trabalho mais recente, Ferone et al. (2013) implementaram cinco heurísticas para solucionar o FFMSP. A primeira utiliza apenas o GRASP convencional; a
segunda faz uso da metaheurística Variable Neighbourhood Search (VNS) proposta
por Hansen e Mladenovic (2002); no terceiro método os autores utilizaram uma heurística híbrida, formada pelo GRASP com a heurística Path-relinking proposta por
Glover (1997), a qual aborda estratégias de intensificação, explorando trajetórias
ligadas à solução elite. No quarto método, outra heurística híbrida, formada pela
metaheurística VNS e Path-relinking. Por último, a composição dos três métodos
(GRASP, VNS e Path-relinking), sendo o método que obteve os melhores resultados,
quando comparado com os demais métodos citados.
3.5
Outros problemas relacionados
Além dos três problemas citados por Festa (2007), Lanctot et al. (2003) em seu
trabalho aborda mais outros quatro problemas: Closest Substring Problem, Farthest
Substring Problem, Close to Most String Problem e Distinguishing String Selection
Problem (DSSP). Todos eles reduzem-se à tarefa de encontrar um padrão que, com
algum erro, ocorre em algum conjunto de cadeias de caracteres (Closest Substring
Problem e suas variações) e não ocorrem em outro conjunto (Farthest String Problem
e suas variações). A seguir, outros problemas relacionados por Lanctot et al. (2003).
3.5.1
Closest Substring Problem
Dado um conjunto de seqüências S = {s1 , s2 , ..., sn } com |si | = m para i =
1, 2, ..., n, formadas por um alfabeto A e um número inteiro L, o objetivo é encontrar
uma seqüência (ou string) centro s de comprimento L minimizando d, tal que,
para cada si ∈ S, existe uma subseqüência (substring) ti de comprimento L com
dH (s, ti ) ≤ d .
O Closest Substring Problem é uma versão mais geral do Closest String Problem,
sendo também considerado um problema NP-Difícil. Em aplicações como identificação do alvo de drogas e projetos de teste genético, o raio d geralmente é pequeno.
Segundo Li et al. (2002), quando o raio d é pequeno, a string centro pode ser também
usada como motifs para vários problemas em alinhamento de seqüências, conforme
mostram McClure et al. (1994) e da Fonseca (2003).
3.5.2
Farthest Substring Problem
Dado um conjunto de seqüências Sf = {s1 , s2 , ..., sn } com |si | = m para i =
1, 2, ..., n, formadas por um alfabeto A e um número inteiro K, o objetivo é encontrar uma seqüência centro s de comprimento K maximizando df tal que, para cada
si ∈ Sf existe uma subseqüência ti de comprimento K com a distância de Hamming dH (s, ti ) ≥ df . O Farthest Substring Problem pode também ser formulado
como o Farthest String Problem citado por Festa (2007), é claro fazendo algumas
adaptações. Ambos os problemas são considerados NP-Difícil.
Um outro problema relacionado com subseqüências de caracteres é o Problema da
Maior Subseqüência Comum ou LCS - (Longest Common Subsequence), que possui o
3.6
Caracterização do Problema
24
objetivo de encontrar a subseqüência mais longa, comum a todas as seqüências de um
determinado conjunto. No trabalho de Hirschberg (1975), o autor desenvolveu um
algoritmo para solucionar o LCS em um espaço linear. Partindo de um alinhamento
global, a idéia era encontrar o ponto médio pelo qual passa um alinhamento ótimo.
3.5.3
Close to Most String Problem
Esse problema pode ser melhor explicado com a seguinte consideração, as vezes
é impossível encontrar uma seqüência que está longe ou perto de todas as seqüências
em um conjunto, sendo melhor a seguinte restrição, ser tão longe ou perto de tantas
seqüências desse conjunto, o quanto possível. Isso nos leva a dois tipos de problemas
o Far From Most String Problem(FFMSP) abordado no trabalho de Festa (2007) e
o Close to Most String Problem, que será definido a seguir.
Dado um conjunto Sc de seqüências de dimensão m pertencentes a um alfabeto
A e um limitante Kc > 0. O objetivo é encontrar uma string x de dimensão m
maximizando o número de strings si em Sc , satisfazendo a seguinte restrição da distância de Hamming dH (x, si ) ≤ Kc . Em outras palavras, nesse problema o principal
objetivo a ser alcançado é encontrar o maior número de seqüências possíveis, que
satisfaçam o limite da distância de Hamming, se diferenciando do Close String Problem, no qual, o objetivo é encontrar uma seqüência que se aproxime o mais perto
posssível de todas as demais seqüências do conjunto.
No trabalho de Boucher et al. (2012), os autores alanisam a intratabilidade do
Close to Most String Problem para quando o alfabeto é binário (|Σ| = 2), a partir do
problema abordado nos trabalhos de Ma (2000) e Lanctot et al. (2003). E provam
através de um teorema que tanto o Close to Most String Problem quanto o Far From
Most String Problem são NP-Difícil, para um alfabeto binário.
3.5.4
Distinguishing String Selection Problem (DSSP)
Este problema, também abordado no trabalho de Deng et al. (2002), pode ser
definido como se segue. Dado dois conjuntos Sc e Sf ambos de dimensão m, pertencentes a um alfabeto A e dois números inteiros positivos Kc (raio superior) e Kf
(raio inferior) com Kc ≤ Kf . O objetivo é encontrar uma string x ∈ Am tal que,
para cada string ci ∈ Sc , dH (x, ci ) ≤ Kc , e para cada string fi ∈ Sf , dH (x, fi ) ≥ Kf .
Alguns autores como Gramm et al. (2006) e Deng et al. (2002) distinguem Sc
como um conjunto de ’bad ’ strings e Sf como ’good ’ strings. O DSSP possui mais
dificuldade na resolução do que os outros problemas principalmente por causa dos
dois objetivos na sua descrição, sendo assim considerado NP-Difícil.
O DSSP tem o potencial de ajudar na seleção do alvo de drogas como por exemplo: dado um conjunto de seqüências de genes ortólogos (o mesmo gene em diferentes
organismos) de um grupo de patógenos (micro-organismo específico que causa doenças) intimamente relacionados, e um ’hospedeiro’ (como seres humanos ou animais),
o objetivo seria encontrar uma seqüência essencial que é mais conservada em todas
ou na maioria dos patógenos, mas não tão conservada nos ’hospedeiros’. A proteína
codificada por este fragmento pode ser um alvo para o desenvolvimento de novos
antibióticos. Este problema é melhor abordado no trabalho de Jiang et al. (2000).
3.6
Caracterização do Problema
3.6
25
Problema da Cadeia de Caracteres mais Próxima (PCCP)
No Problema da Cadeia de Caracteres mais Próxima - PCCP, tema desta presente
dissertação, deseja-se encontrar uma seqüência de caracteres t que se aproxime ao
máximo, segundo uma métrica, de todas as seqüências de um dado conjunto, no
qual as cadeias de caracteres possuem a mesma dimensão. Neste trabalho, a idéia
principal é encontrar uma seqüência centro t que se assemelhe, ao máximo, a um
conjunto de cadeias dado, ou seja, o objetivo é minimizar a distância máxima desta
cadeia de caracteres t às demais cadeias do conjunto.
Vários tipos de medidas têm sido propostas para encontrar as similaridades (ou
diferenças) entre as seqüências. A mais utilizada é a distância de Hamming, uma métrica que aparece em vários contextos ((Andronescu e Rastegari, 2003), (Yamamoto,
2004), entre outros). Uma justificativa técnica para o uso freqüente da distância de
Hamming na comparação de seqüências em Biologia Molecular pode ser encontrada
em Li et al. (1999). A distância de Hamming entre duas cadeias de caracteres é a
soma das diferenças de cada caractere de mesma posição, sendo uma delas a solução
corrente e a outra, uma cadeia do conjunto.
De acordo com M. Frances (1997) , o PCCP é conhecido como um problema
NP-difícil, ou seja, tem uma complexidade não-polinomial. Sendo assim, as técnicas
mais comumente empregadas para resolver problemas NP-Difíceis são algoritmos
heurísticos e algoritmos exatos que possuem complexidade não polinomial.
O trabalho de de Souza (2012) apresenta uma aplicação das heurísticas Greedy
Randomized Adaptative Search Procedure (GRASP), Iterated Local Search (ILS) e
Algoritmo Genético (AG), sendo utilizado um alfabeto de quatro caracteres para as
seqüências do conjunto.
O modelo apresentado a seguir está posto em Meneses et al. (2004), sendo também utilizado em Kelsey e Kotthoff (2010), Soleimani-damaneh (2011), dentre outros
trabalhos. Em seu trabalho, Meneses et al. (2004) apresenta outros dois tipos de
formulação com base em Otimização Inteira, mas considera este modelo apresentado
o mais apto para encontrar melhores soluções.
Sejam, então, as variáveis de decisão zki , definidas como:
1, se tk 6= xik ;
i
zk =
(3.15)
0, caso contrário.
O PCCP, assim, é formulado como:
(P CCP )
sujeito a:
n
X
min d
zki ≤ d i = 1, ..., n
(3.16)
(3.17)
k=1
≤ kzki i = 1, ..., n; k = 1, ...m
(3.18)
xik − tk ≤ kzki i = 1, ..., n; k = 1, ...m
(3.19)
zki ∈ {0, 1} i = 1, ..., n; k = 1, ...m
(3.20)
tk −
xik
3.6
Caracterização do Problema
26
d ∈ Z+
(3.21)
tk ∈ Z; k = 1, ...m
(3.22)
Neste modelo, tem-se que:
• k é o tamanho do alfabeto usado;
• d representa a diferença máxima entre t e a cadeia de caracteres testada, e é
o valor a ser minimizado;
• a restrição (3.17) determina o limite inferior para o valor d, que deve ser maior
ou igual ao número total de diferenças para cada cadeia do conjunto;
• as restrições (3.18) e (3.19) determinam os limites inferior e superior para a
diferença entre tk − xik ;
• as restrições (3.20) a (3.22) garantem valores inteiros para a solução.
No início do processo, a distância de Hamming dH recebe o valor zero e, a
cada diferença encontrada entre elementos de uma mesma posição, mas em cadeias
diferentes, é acrescida uma unidade ao valor de dH . O processo se repete até que
todas as cadeias da instância dada sejam comparadas com a cadeia que representa
a solução atual, que deverá ser modificada com a finalidade de minimizar o valor de
dH . Essa distância deverá ser minimizada, mantendo todas as outras abaixo dela.
Desta forma, não basta apenas calcular essa distância na totalidade das cadeias,
mas obter o valor da distância de Hamming individualmente e fazer alterações na
solução que minimize essa distância encontrada. Esse valor poderá se modificar de
uma linha para outra, porém deve diminuir a cada busca. Mais detalhes sobre a
distância de Hamming e sua formulação podem ser encontrados na Seção 3.1.
A seguir um exemplo de como pode ser construída uma seqüência centro t, reduzindo a distância de Hamming entre as cadeias de caracteres de um dado conjunto:
Exemplo 3.2 Dado um conjunto de seqüências S = {s1 , s2 , s3 }, formadas pelo alfabeto Ω = {A, C, T, G}, com s1 = (GAT T G), s2 = (GAT CA) e s3 = (CT CGA). Encontrar uma string centro t, que minimize a maior distância de Hamming (max dH )
em relação às strings do conjunto S.
• Seja t = (GAT T C) a solução inicial para o problema, construída a partir de
algum algoritmo de construção.
• Verificando a dH entre t e s1 , s2 , s3 , tem-se que: dH (s1 , t) = 1, dH (s2 , t) = 2 e
dH (s3 , t) = 5.
Após a comparação da string t, obtida na solução inicial, com as demais cadeias
de caracteres do conjunto S, o objetivo é diminuir o valor max dH , o qual foi encontrado entre t e s3 . Este procedimento pode ser feito através de algum algoritmo de
busca local, fazendo alterações nos caracteres da string t, escolhidos aleatoriamente,
afim de diminuir o max dH computado.
3.6
Caracterização do Problema
27
• Se for trocado o caractere G por C, como uma escolha aleatória dentre os
elementos do alfabeto Ω, na string t obtém-se uma nova string t, que pode ser
chamada de t′ , sendo t′ = (CAT T C).
• Verificando as distâncias em relação a t′ : dH (s1 , t′ ) = 2, dH (s2 , t′ ) = 3 e
dH (s3 , t′ ) = 4. Apesar do dH em relação às strings s1 e s2 terem aumentado,
o objetivo principal é diminuir o valor max dH , o que foi feito em uma unidade.
Então, a string t′ é considerada a melhor solução até o momento.
• Fazendo alterações aleatórias na string t′ para t′′ = (CAT T A), com o objetivo
de encontrar uma solução melhor.
• Então, são encontrados as seguintes distâncias: dH (s1 , t′′ ) = 2, dH (s2 , t′′ ) = 2
e dH (s3 , t′′ ) = 3, com o max dH (dado pela distância entre s3 e t′′ ) diminuindo
em mais uma unidade. Este processo é repetido até que se encontre soluções
melhores, ou até que algum critério de parada seja atingido, como número de
iterações ou tempo limite de processamento.
Como pode-se observar no exemplo, o objetivo do PCCP é encontrar uma seqüência de caracteres que seja a menos distante possível de todos os elementos de um
determinado conjunto. Os conjuntos de cadeias de caracteres utilizados para os experimentos computacionais nesta dissertação serão bem maiores do que o citado no
exemplo anterior, tanto na dimensão do conjunto quanto na dimensão das seqüências, tornando a busca por uma solução ótima ainda mais difícil de ser atingida.
Este processo será feito através de heurísticas computacionais, que deverão fazer
modificações sucessivas na solução inicial, diminuindo a cada passo a maior distância
de Hamming. Nesse processo, deve-se importar apenas com a maior distância, que
a cada processo de modificação irá se aproximando da distância mínima. Por isso,
a seqüência t é chamada de seqüência centro.
Para a solução do PCCP, serão implementadas duas heurísticas, uma com base
no framework do algoritmo BRKGA e outra utilizando a heurística IGS. Este procedimento será melhor descrito no Capitulo 4.
Capítulo 4
Metodologia de Pesquisa
4.1
Visão Geral
Problemas de otimização consistem em determinar a melhor combinação dentre
um conjunto de variáveis para maximizar ou minimizar uma função, geralmente
chamada de função objetivo ou função custo. Esses problemas podem ser divididos
em três categorias: aqueles cujas variáveis assumem valores reais (ou contínuos),
aqueles cujas variáveis assumem valores discretos (ou inteiros) e aqueles em que
há variáveis inteiras e contínuas, classificados, respectivamente, como problemas de
Otimização Contínua, Otimização Combinatória ou Discreta, e Otimização Mista.
O problema estudado nesta dissertação pertence à área de otimização combinatória. É um problema, do ponto de complexidade computacional, da classe NP-Difícil,
segundo Festa (2007). Por essa razão, são propostas aqui heurísticas para a solução do problema. As heurísticas são algoritmos que buscam encontrar uma solução
próxima da ótima, em um tempo computacional razoável.
De acordo com Maes et al. (1991), as heurísticas podem ser classificadas em
dois grupos: o primeiro baseado na teoria de otimização e programação matemática
e o segundo, na intuição de especialistas sobre o problema estudado. O primeiro
grupo tem a vantagem de ser fácil de se obter limitantes, os quais são totalmente
confiáveis. Já o segundo grupo tem como vantagens as observações práticas. Um
grupo particular das heurísticas é composto pelas metaheurísticas. Elas podem ser
definidas como uma estrutura de algoritmo de alto nível que podem ser especializadas
em resolver problemas de otimização. Além disso, é uma estratégia que guia outras
heurísticas na busca por soluções factíveis.
A seguir, são apresentadas heurísticas e metaheurísticas utilizadas para a resolução dos problemas relacionados com seqüências de caracteres. Nas Seções 4.6 e 4.10,
serão apresentados os procedimentos heurísticos implementados nesta dissertação
para a resolução do PCCP.
4.2
Algoritmo MultiStart
Os métodos que fornecem as origens do que se conhece como procedimento MultiStart consistem principalmente em aplicações repetidas de métodos construtivos.
A melhor solução produzida por estas aplicações repetidas normalmente são seleci28
4.2
Metodologia de Pesquisa
29
onadas para execução. As primeiras propostas podem ser encontradas nos domínios
das heurísticas de agendamento (Ciffler (1963) e Crowston et al. (1963)), no problema do caixeiro viajante (Held e Karp (1971) e Lawler et al. (1985)) e no problemas
da mochila (Senju e Toyoda (1968) e Kochenberger et al. (1974)).
A metaheurística MultiStart consiste em duas fases. Na primeira, as soluções
iniciais são geradas aleatoriamente na região viável do problema. Na segunda fase,
estas soluções são refinadas e melhoradas, gerando um ótimo global para o problema.
A solução inicial é gerada de forma aleatória com distribuição uniforme. O procedimento termina quando um critério de parada é atingido, como, por exemplo, número
de iterações, tempo de processamento, iterações sem melhora, dentre outros.
Um dos primeiros trabalhos dedicados ao método MultiStart, foi proposto por
Los e Lardinois (1982). O autor utilizou, como critério de parada, uma função de
distribuição assintótica do mínimo global.
No trabalho de Martí (2003), o autor descreve as principais aplicações e sucessos
do método MultiStart, tanto para problemas combinatórios quanto para otimização
global. Também se encontra um método para o problema Bandwidth Reduction
Problem (BRP).
Gomes et al. (2008) utilizou em seu trabalho o algoritmo MultiStart para resolver o Problema da Cadeia de Caracteres mais Próxima, fazendo modificações na
estrutura geral do método. Foi apresentada uma heurística paralela, combinando
um algoritmo de aproximação e estratégias de busca local, de forma que o primeiro
algoritmo gera soluções viáveis, garantidas a partir de um valor ideal e, então, o
segundo algoritmo faz uma busca local para melhorar as soluções.
O pseudocódigo do algoritmo MultiStart está apresentado na Figura 4.1.
Procedimento MultiStart((f (.), N(.), CriterioP arada, s))
1- f ∗ ← ∞; Valor associado a s∗
2- enquanto (Critério de parada não atendido) faça
3s ← ConstruaSoluo(); Gere uma solução s do espaço de soluções
4s ← BuscaLocal(s); Aplique um procedimento de melhora em s
5Se (f (s) < f (s∗ )) então
6s∗ ← s;
7f ∗ ← f (s);
8fim-Se;
9- fim-enquanto;
10- s ← s∗ ;
11- Retorne s;
Fim MultiStart;
Figura 4.1: Pseudocódigo MultiStart.
O procedimento MultiStart funciona da seguinte maneira: na linha 3, uma solução inicial s é construída. Essa fase é normalmente realizada por algum algoritmo
construtivo. A linha 4 é dedicada a melhorar esta solução s. Isto pode ser feito
aplicando um método simples de busca local, obtendo uma solução melhor s∗ .
4.3
Metodologia de Pesquisa
30
Segundo Martí et al. (2013), os procedimentos da metaheurística MultiStart foram originalmente concebidos como uma maneira de explorar um local ou procedimento de busca de bairro, aplicando-o simplesmente a múltiplas soluções iniciais
aleatórias. Os métodos modernos do Multistart geralmente incorporam uma forma
poderosa de diversificação na geração de soluções para ajudar a superar a otimalidade local. Sem esta diversificação, estes métodos podem tornar-se confinados a
uma pequena região do espaço de solução, tornando-se difícil, se não impossível,
encontrar um ótimo global.
4.3
Greedy Randomized Adaptive Search Procedure
A metaheurística Greedy Randomized Adaptive Search Procedure (GRASP) foi
introduzida por Feo e Resende (1995). É composta por duas fases, uma de construção e outra de busca local, desenvolvidas sequencialmente a cada execução. Na
fase construtiva, consideram-se, inicialmente, elementos previamente ordenados. Os
melhores candidatos são inseridos em uma lista, denominada Lista de Candidatos
Restrita (LCR), conforme uma função adaptativa gulosa que avalia o benefício referente a cada elemento. Os integrantes da lista são selecionados aleatoriamente para
compor a solução inicial.
A cada iteração, a LCR é atualizada, até que todos os elementos sejam alocados
na solução. A melhor solução encontrada, ao longo de todas as iterações GRASP
realizadas, é retornada como resultado ótimo local, a fim de minimizar o problema.
O pseudocódigo de um procedimento GRASP está ilustrado no Algoritmo 1.
Na fase de construção do algoritmo GRASP, uma solução viável é gerada de
forma incremental, inserindo, na solução parcial, um novo elemento a cada passo.
Para seleção destes elementos a serem incorporados na solução, todos os candidatos
são avaliados de acordo com uma função gulosa, que estima o benefício da seleção
de cada um dos elementos, e seleciona-se um subconjunto formado pelos melhores
candidatos para serem inseridos na LCR. O elemento a ser inserido na solução parcial
é selecionado de forma aleatória entre os pertencentes a LCR. Esta escolha aleatória
permite gerar diferentes soluções a cada execução do algoritmo GRASP. A Figura4.2
mostra o pseudocódigo da fase de construção GRASP.
Com o objetivo de solucionar o FFMSP (veja Seção 3.4), Festa (2007) faz o uso
da metaheurística GRASP. Em sua fase de construção, a LCR é composta pelos dois
melhores caracteres, determinados para cada posição do conjunto de seqüências do
banco de dados. A escolha é então feita de forma aleatória para compor a solução
inicial.
No trabalho de Mousavi e Esfahani (2012), é utilizado uma função heurística
(cos(·)) de avaliação, inspirada na teoria das probabilidades, a fim de avaliar e
comparar soluções candidatas na fase de construção GRASP. Esta função, proposta
pelo autor, avalia o benefício de duas ou mais soluções candidatas diferentes que
possuam a mesma distância de Hamming, diminuindo, assim, o custo computacional
do algoritmo.
A busca local é utilizada com frequência para resolver problemas de otimização
combinatória e serve principalmente como estratégia de apoio para outros algoritmos
4.4
Metodologia de Pesquisa
31
Fase-Construtiva GRASP
1- Solucao ← ∅;
2- Avalie o custo incremental dos elementos candidatos;
3- Enquanto Solucao não está completa faça
4Construa a lista de candidatos restrita (LCR);
5Selecione aleatoriamente
[ um elemento s de LCR;
6Solucao ← Solucao
{s};
7Recalcule os custos incrementais;
8- Fim Enquanto
9- Retorne Solucao;
Figura 4.2: Pseudocódigo da Fase-Construtiva GRASP.
como o GRASP e Busca Tabu. Isto se deve ao seu conceito de estratégia iterativa de
melhoria, que consiste em, dado uma solução inicial s, analisar soluções próximas de
s, denominadas vizinhanças de s, dadas por N(s), tendo, como objetivo, encontrar
soluções de melhor valor. Se uma solução melhor for encontrada, então a busca segue
pela vizinhança dessa solução. A busca continua até que não haja uma solução
melhorada, e a solução presente é definida como ótimo local. Outro critério de
parada que pode ser utilizado para a busca local é um número limitado de iterações.
Na Figura 4.3, é ilustrado o pseudocódigo básico da busca de um mínimo local,
avaliado por uma função f (s), em que, a análise da vizinhança será em busca de um
menor valor em relação à solução inicial s. Portanto, assim que não for mais encontrado na vizinhança de s um valor menor, então a solução presente será chamada
de mínimo local.
Busca Local (s)
1- Enquanto s não é um mínimo local faça
2Encontre s′ ǫN(s) tal que f (s′ ) < f (s) e f (s′ ) < f (s′′ ), ∀s′′ ǫN(s);
3s ← s′ ;
4- Fim Enquanto
Figura 4.3: Pseudocódigo da Busca Local GRASP.
Nos problemas de otimização, a busca local é também conhecida como heurística
de refinamento. Em alguns casos, para esta fase do GRASP, são utilizados algoritmos
de melhoria iterada como por exemplo, Best Improvement ou First Improvement.
Para a busca local do GRASP, Mousavi e Esfahani (2012) utiliza o algoritmo
first-move, considerando que seu uso representa melhorias para a solução do seu
problema ao invés do método best-move.
4.4
Metodologia de Pesquisa
32
Algoritmo 1: Pseudocódigo do procedimento GRASP
Procedimento GRASP(f(.),g(.),N(.),GRASPmax,s)
início
f∗ ← ∞
para (Inter = 1,2,...,GRASPmax) faça
Construcao(g(.), α, s)
BuscaLocal(f (.), N(.), s)
se (f (s) < f ∗ ) então
s∗ ← s
f ∗ ← f (s)
fim
fim
s ← s∗
Retorne s
fim
4.4
Iterated Local Search – ILS
A metaheurística Iterated Local Search (ILS), proposta por Lourenço et al. (2002),
consiste em aplicar um procedimento de busca local a uma solução inicial s0 e escapar de ótimos locais por meio de perturbações aplicadas à melhor solução corrente.
O êxito deste método está diretamente associado à definição do procedimento de
busca local, do procedimento de perturbação aplicado à solução atual e do critério
de aceitação das soluções.
O procedimento ILS consiste em um processo iterativo, no qual uma solução é
perturbada, gerando novas soluções de partida para um método de busca local. A
perturbação tem uma influência muito grande. Uma perturbação muito fraca, faz
com que a busca local caia freqüentemente em um ótimo local já visitado; deste
modo, a diversificação torna-se muito limitada. No entanto, com uma perturbação
muito alta, o ILS comporta-se como método Random Restart e há pouca possibilidade de se encontrar boas soluções. O ideal de uma perturbação é ser aleatória ou
semi-determinística, de modo a evitar ciclagem.
O algoritmo ILS inicia-se gerando uma solução inicial (s0 ) qualquer para o problema. Em seguida, é aplicada uma heurística de busca local, que varre o espaço de
busca para obter uma solução de ótimo local s. A partir dessa solução se inicia um
processo iterativo até que algum critério de parada seja satisfeito. Para cada iteração, é realizado um procedimento de perturbação aleatória da solução s, gerando
um novo ponto de partida (s′ ) para a busca local. Então, a heurística de busca local
é aplicada sobre s′ , encontrando uma solução de ótimo local s′′ dessa região. Um
critério de aceitação é aplicado para saber qual dessas soluções a busca continuará.
A definição da solução sobre qual será aplicada a próxima perturbação é feita
pelo critério de aceitação. O critério de aceitação adotado é o de melhorar o valor da
solução corrente s, isto é, uma solução s′′ é aceita para ser a nova solução s corrente
se f (s′′ ) < f (s). Uma forte intensificação é conseguida se somente as melhores
soluções são aceitas. Mas, por outro lado, sempre aceitar a nova solução é uma
forma de diversificar o espaço de busca.
4.5
Metodologia de Pesquisa
33
Segundo Lourenço et al. (2002), na prática, grande parte da complexidade do
ILS está escondida na dependência do histórico. Se acontecer de não ser nenhuma
tal dependência, a busca não tem memória, então a perturbação e o critério de
aceitação não dependem de nenhuma das soluções visitadas anteriormente, durante
a busca local, e aceitar ou não s′′ se torna uma regra fixa. A maioria dos trabalhos
que utilizam o ILS tem sido desta maneira, embora Stützle (1998) mostrou que
incorporar a memória melhora o desempenho do ILS.
Dentre as suas características, vale citar a facilidade de implementação e a flexibilidade com que se comporta em atividades híbridas com outras heurísticas e
metaheurísticas. O pseudocódigo geral da metaheurística ILS é mostrado na Figura 4.4.
Procedimento ILS
1- s0 = SolucaoInicial();
2- s = BuscaLocal(s0 );
3- inter = 0;
4- enquanto (inter < intermax ) faça
5inter = inter + 1;
′
6s = P erturbacao(s, historico);
′′
′
7s = BuscaLocal(s );
′
′′
8s = CriterioAceitacao(s, s , s );
9- fim-enquanto;
10- retorne s;
Fim.
Figura 4.4: Pseudocódigo do Iterated Local Search (ILS).
Com base na heurística ILS, Andronescu e Rastegari (2003) criaram um algoritmo para solucionar problemas relacionados a subseqüências de caracteres. Essas
subseqüências são chamadas pelos autores de motifs, que, em particular, são trechos
de bioseqüências (seqüências de DNA, RNA ou proteínas), que possuem regiões altamente conservadas, isto é, pouco afetadas por mutações, as quais desempenham
funções biológicas específicas. Estes trechos são relativamente curtos, para o DNA,
cerca de 5 a 25 nucleotídeos de comprimento. Para fins de comparação, os autores
implementam também outro tipo de algoritmo com base na metaheurística GRASP.
4.5
Iterated Greedy Search
A heurística de Busca Gulosa Iterativa (Iterated Greedy Search - IGS) parte de
uma solução inicial para um problema de otimização combinatória, para, em seguida,
fazer buscas locais e melhorar diversas vezes a solução inicial encontrada através de
um determinado número de iterações, segundo Gagnaire e Doumith (2007).
Na primeira fase, é feita a desconstrução da solução, através da aplicação de uma
perturbação gulosa em k elementos da solução que serão removidos. Na segunda
fase, é feita a reconstrução da solução, de modo que cada um dos k elementos
4.6
Metodologia de Pesquisa
34
anteriormente removidos são re-inseridos, gerando uma nova ordem de permutação.
Então, é aplicada uma busca local na solução resultante da segunda fase, gerando
uma nova solução candidata. Um critério de aceitação aplicado entre a solução
candidata e a solução inicial decide qual será a nova solução corrente.
A heurística IGS está fortemente relacionada a outros métodos estocásticos de
busca local, em particular à metaheurística ILS (Lourenço et al. (2002)).
No trabalho de Montemanni e Smith (2008), os autores utilizaram o algoritmo
Iterated Greedy Search para encontrar uma seqüência de caracteres viáveis, fazendo
modificações em sua estrutura, respeitando um número fixo de substituições dos
caracteres, denominado (IGSChg) e o tempo máximo de execução do algoritmo
dado por (TimeIGS).
4.6
Heurística IGS-PCCP
motivação para a utilização da metaheurística de Busca Gulosa Iterada baseiase no fato de que, recentemente, foi utilizada com sucesso nos trabalhos de FanjulPeyroa e Ruiz (2010), Framinan e Leisten (2008), Ruiz e Stützle (2007), Garcia et al.
(1998), Montemanni e Smith (2008), citado anteriormente, e em outros problemas
de otimização combinatória.
O funcionamento do IGS-PCCP pode ser ilustrado pela Figura 4.5. A partir de
um ótimo local s∗ , é feita uma perturbação que guia a uma solução intermediária
s′ . Após a aplicação de um método de busca local a s′ é produzido um novo ótimo
′
′
local s∗ . Considerando como critério de aceitação o fato de f (s∗ ) ser melhor que
′
f (s∗ ), então a busca prossegue a partir de s∗ .
Figura 4.5: Funcionamento dos ótimos locais da heurística IGS-PCCP.
O IGS-PCCP gera aleatoriamente uma solução inicial s0 , escolhendo os caracteres a partir de um conjunto Ω com 4, 20 ou 30 caracteres diferentes. Posteriormente,
na solução inicial, é feita uma busca local, utilizando o refinamento iterativo, resultando na solução intermediária s. Em seguida, é aplicada uma perturbação gulosa
em k caracteres de s, removendo uma quantidade de caracteres selecionados aleatoriamente e atribuindo novos caracteres, também selecionados aleatoriamente, em
4.6
Metodologia de Pesquisa
35
suas respectivas posições, gerando, assim, a solução intermediária s′ . Em seguida,
IGS-PCCP calcula a distância de Hamming da nova cadeia de caracteres em relação
às demais cadeias e esta solução é comparada à solução atual. A cada iteração do
IGS-PCCP, a solução com a menor distância máxima de Hamming, ou seja, menor max dH em relação a todas as seqüências do conjunto, é armazenada em s∗ ,
sempre sendo comparada com a solução s′ da iteração atual. A Figura 4.6 exibe o
pseudocódigo da metaheurística IGS-PCCP.
início IGS-PCCP (s′ , Tmax )
1- s, s∗ ← s′ ;
2- Enquanto T empo < Tmax faça
3s′ ← P erturbacao(k, s);
4Se s′ é melhor que s∗ então s∗ ← s′ ;
5Se s′ é melhor que s então s ← s′ ;
6- fim-Enquanto;
7- retorne s∗ ;
fim
Figura 4.6: Pseudocódigo da heurística IGS-PCCP.
Começando a partir da solução inicial s′ gerada aleatoriamente, as soluções ótimas locais s e s∗ são criadas na linha 1. Em seguida, o laço das linhas 2-6 é realizado
até o critério de parada ser satisfeito. Para este caso, o tempo foi limitado em 5
minutos (ou 300 segundos). Novos ótimos locais são obtidos através da aplicação
de uma perturbação gulosa de tamanho k na linha 3. Em seguida, se a solução
resultante é melhor que a solução corrente s∗ , ou seja, se max dH da nova solução for
menor que max dH de s∗ , a solução corrente é atualizada na linha 4. Na seqüência,
a solução s do ótimo local corrente é substituído por uma solução s′ se e somente se
max dH for maior. Então, a solução s′ é aceita se o seu custo for menor que o custo
de s. A melhor solução encontrada por esta heurística é retornada na linha 7.
A seguir um exemplo do funcionamento do IGS-PCCP.
Exemplo 4.1 Dado um conjunto de seqüências S = {s1 , s2 , s3 }, formadas pelo alfabeto Ω = {A, C, T, G}, com s1 = (CAAGT G), s2 = (ACCT GG), s3 = (GCAAT G).
Encontrar uma string centro t, que minimize a maior distância de Hamming (max dH )
em relação às cadeias de caracteres do conjunto S.
• Seja t = (AAT CGT ) a solução inicial para o problema, construída aleatoriamente a partir do alfabeto Ω.
• Em seguida, é verificado d dH entre t e s1 , s2 e s3 . Tem-se, então, que
dH (s1 , t) = 5, dH (s2 , t) = 4, dH (s3 , t) = 6.
Após a comparação da string t, obtida na solução inicial, com as demais cadeias
de caracteres do conjunto S, o objetivo é diminuir max dH encontrado entre t e s3 .
Este procedimento será feito pela perturbação de k = 2 caracteres na solução t, e a
reposição será feita de forma aleatória dentre os elementos de Ω, com o objetivo de
diminuir max dH computado.
4.7
Metodologia de Pesquisa
36
• Fazendo de forma aleatória a perturbação de 2 caracteres em t, obtém-se uma
nova solução t′ = (ACT CGG).
• Verificando as distâncias em relação a t′ : dH (s1 , t′ ) = 5, dH (s2 , t′ ) = 2 e
dH (s3 , t′ ) = 4. Observa-se, então, que a dH entre t e s1 permaneceu a mesma.
No entanto, em relação às seqüências s2 e s3 , houve uma redução em duas
unidades. O principal objetivo era diminuir max dH , o que foi alcançado.
Então, a solução inicial recebe a solução t′ , que é considerada a melhor solução
até o momento.
• Fazendo uma nova perturbação de dois elementos na seqüência t′ , obtém-se
t′′ = (ACACCG). Esta solução é considerada se for uma melhor solução em
relação a t′ .
• Então, são verificadas as seguintes distâncias: dH (s1 , t′′ ) = 4, dH (s2 , t′′ ) = 3 e
dH (s3 , t′′ ) = 3. Como o max dH (dado pela distância entre s1 e t′′ ) diminuiu
em mais uma unidade, então a solução t′′ é aceita. Este processo é repetido
até que o tempo de limite de processamento seja atingido.
Os valores para a perturbação k serão descritos na Seção 5, pois variam de acordo
com a dimensão e composição dos elementos das cadeias de caracteres.
4.7
Algoritmos Genéticos
Algoritmos Genéticos (Genetic Algorithms – AG) são algoritmos inspirados nos
mecanismos da evolução natural e recombinação genética. São baseados no princípio
darwiniano de seleção natural e sobrevivência do mais apto, ou seja, da evolução das
espécies e na genética. Conforme Lacerda e Carvalho (1999), os algoritmos genéticos foram introduzidos por Holland (1975) e por Goldberg e Holland (1988). São
classificados como algoritmos evolucionários, definidos como algoritmos probabilísticos e que fornecem um mecanismo de busca paralela e adaptativa, inspirados nos
conceitos de evolução populacional.
Os princípios da natureza nos quais os algoritmos genéticos se inspiram são
simples. O princípio de seleção privilegia os indivíduos mais aptos com maior longevidade e, portanto, com maior probabilidade de reprodução. Indivíduos com mais
descendentes têm mais chance de perpetuarem seus códigos genéticos nas próximas
gerações. Tais códigos genéticos constituem a identidade de cada indivíduo e estão
representados nos cromossomos.
Estes princípios foram a base para a construção de algoritmos computacionais
que buscam uma melhor solução para um determinado problema, através da evolução de populações de soluções codificadas através de cromossomos artificiais. Em
algoritmos genéticos, um cromossomo é uma estrutura de dados que representa uma
das possíveis soluções do espaço de busca do problema. Cromossomos são então submetidos a um processo evolucionário que envolve avaliação, seleção, recombinação
ou cruzamento (crossover ) e mutação. Após vários ciclos de evolução, a população
deverá conter indivíduos mais aptos.
O algoritmo genético é uma subdivisão do algoritmo evolucionário, classe de algoritmos em que também se encontra a programação evolucionária e a estratégia
4.8
Metodologia de Pesquisa
37
evolucionária. Todos partilham de uma base conceitual comum, que consiste na
simulação da evolução de estruturas individuais, via processo de seleção e os operadores de busca, referidos como operadores genéticos, como mutação e crossover.
Todo o processo depende do grau de adaptação, ou seja, do fitness (aptidão) do
indivíduo frente ao ambiente.
Algumas definições para os algoritmos genéticos são:
• Genoma e Cromossomo: estrutura de dados que codificam uma solução para
o problema, definidos como um ponto no espaço de busca. Um cromossomo
pode ser representado por um vetor, ou por uma cadeia de bits, por exemplo.
• Gene: elemento que compõe o cromossomo. Se este for um vetor ou uma
cadeia de bits, um gene é um componente do vetor ou da cadeia de bits.
• Indivíduo: formado pelo cromossomo e sua aptidão.
• Alelo: os valores que um gene pode assumir. Um alelo terá valor 1 ou 0, se o
cromossomo for uma cadeia de bits.
Como dito anteriormente, nos algoritmos genéticos o espaço de busca é explorado
pelos operadores crossover e mutação. A população é gerada e diversificada pelos
operadores, os quais assumem variações em intervalos pré-estabelecidos. A taxa
de crossover assume valores de 60% a 90% e a taxa de mutação entre 0,1% a 5%.
Pelo fato da mutação destruir informação nos cromossomos, esse percentual assume
pequenos valores, de forma a evitar constantes variações. Estratégia importante
encontrada nos algoritmos genéticos é o Elitismo, que consiste na transferência dos
melhores indivíduos de uma geração para outra, sem que estes sofram modificações.
De acordo com Whitley (1993), o AG é freqüentemente descrito como um método
de busca global, não utilizando gradiente de informação e podendo ser combinado
com outros métodos para refinamento de buscas, quando há aproximação de um
máximo ou mínimo local.
Atualmente, o AG é muito empregado na resolução de problemas de Bioinformática. Como exemplo, a descoberta da estrutura de RNA (Fogel et al. (2002)),
para a predição de non-coding RNA (ncRNA) (Saetrom et al. (2005)), e em diversos problemas ligados a seqüências de DNA, RNA e proteínas, como nos trabalhos
descritos a seguir.
Para elaborar uma seqüência artificial que incorpore a variação da seqüência
encontrada em uma população viral, o algoritmo genético foi utilizado por Mauch H
(2003), com o objetivo de determinar uma homologia dessas seqüências artificiais
com uma solução ideal (ou entre 90% - 95%), para todas as seqüências virais em
uma população, utilizando seqüências de RNA interference e RNA mensageiro.
Uma aplicação mais recente de algoritmo genético, baseado em uma técnica
chamada data-based coding, foi proposta por Julstrom (2009), para solucionar o
Closest String Problem. O autor ainda constrói dois outros algoritmos, também
baseados no AG, para comparar a solução ótima com o data-based coding GA.
Já no trabalho de de Souza (2012), o autor fez a construção de dois algoritmos
híbridos, utilizando o GRASP juntamente com o Algoritmo Genético. A heurística
GRASP é responsável pela construção inicial; já o AG tem a função de fazer uma
varredura do espaço de busca. Neste trabalho, o objetivo é solucionar o PCCP, tema
também da presente dissertação.
4.8
4.8
Metodologia de Pesquisa
38
Random-Key Genetic Algorithm
Random-Key Genetic Algorithm (RKGA) foi desenvolvido por Bean (1994) para
aplicação em problemas de sequenciamento. Neste algoritmo, o cromossomo é gerado
com os valores de seus genes dentro do intervalo real [0, 1] e a população evolui a cada
geração, obedecendo às regras de elitismo, de cruzamento e de mutação específicas
do algoritmo.
De acordo com Gonçalves e Resende (2011), no RKGA o processo de evolução
da população ao longo de sucessivas gerações emprega uma estratégia de elitismo,
que consiste em levar, para a próxima geração, todos os elementos do conjunto
elite. Por outro lado, para garantir diversidade e, assim, escapar de mínimos locais,
alguns novos indivíduos são gerados por meio de mutação, da mesma forma que
os indivíduos da população inicial. A próxima geração é completada por meio do
operador de cruzamento.
O RKGA evolui de uma população de vetores de chaves aleatórias sobre um número de iterações, chamado de gerações. A população inicial é composta de vetores
p de chaves aleatórias. Cada componente do vetor solução é gerado independentemente de forma aleatória no intervalo real [0, 1]. Depois que a fitness de cada
indivíduo é calculada pelo decodificador na geração k, a população é particionada
em dois grupos de indivíduos (ver Figura 4.7): um pequeno grupo pe de indivíduos
elite, ou seja, aqueles com os melhores valores de aptidão, e o restante do conjunto
p − pe , de indivíduos não-elite.
Figura 4.7: A população de soluções p é particionada em um conjunto menor pe de
soluções elite, mais aptos, e um conjunto maior p − pe de soluções não-elite, menos
aptos (Resende (2012)).
Segundo Resende (2012), para evoluir a população, uma nova geração de indivíduos deve ser produzida. A partir da geração k, o processo de evolução copia as
soluções elite pe para a geração k + 1 e adiciona pm mutantes à população da geração k + 1 (Figura 4.8). Um mutante é simplesmente um vetor de chaves aleatórias
geradas na mesma forma que um elemento da população inicial é gerado. Em cada
geração, um pequeno número (pm ) de mutantes é introduzido na população (Figura 4.8). Com os indivíduos elite pe e os mutantes pm contabilizados na população
4.8
Metodologia de Pesquisa
39
k + 1, os indivíduos p − pe − pm adicionais precisam ser produzidos para completar
os indivíduos p que compõem a nova população. Isso é feito pela produção da prole
p − pe − pm através do processo de acasalamento ou crossover. Veja a Figura 4.9.
Figura 4.8: Todas soluções elite pe da população k são copiadas sem alteração para
a população k + 1 e as soluções mutantes pm são geradas na população k + 1 como
vetores de chaves aleatórias (Resende (2012)).
Figura 4.9: Para completar a população k + 1, a prole p − pe − pm é criada pela
combinação de um pai escolhido aleatoriamente do conjunto elite da população k,
com um pai escolhido aleatoriamente do conjunto não-elite também da população
k. Os pais podem ser escolhidos para o crossover mais de uma vez por geração
(Resende (2012)).
4.9
Metodologia de Pesquisa
40
No trabalho de Bean (1994), o autor seleciona dois pais ao acaso de toda a
população para implementar o crossover em um RKGA e também permite um pai
ser selecionado mais de uma vez em uma determinada geração.
O cruzamento é feito com a combinação de um elemento do conjunto elite com
um do conjunto não-elite, gerando um único filho em cada cruzamento. O número
de indivíduos mutantes é gerado aleatoriamente e colocado na população da nova
partição, também chamada de BOT . O restante da população da próxima geração
é completada pelo crossover.
4.9
Biased Random-Key Genetic Algorithm
A formulação de Algoritmo Genético Baseados em Chaves Aleatórias Tendenciosas (Biased Random-Key Genetic Algorithm – BRKGA) foi introduzida por Gonçalves e Almeida (2002) como uma variação dos Algoritmos Genéticos Baseados em
Chaves Aleatórias (Random-Key Genetic Algorithm – RKGA).
A diferença entre o BRKGA e o RKGA está na definição do cromossomo do indivíduo gerado pelo cruzamento. Enquanto no RKGA as probabilidades de influência
dos pais são iguais, no BRKGA a probabilidade de influência do indivíduo elite é
maior que a probabilidade de influência do indivíduo não-elite. Em alguns casos, o
segundo pai é selecionado de toda a população. É permitida a repetição na escolha
de um pai e, portanto, um indivíduo pode produzir mais de um filho, desde que seja
exigido pe < p − pe , ou seja, a probabilidade que um determinado indivíduo elite
ser selecionado para acasalamento (1/pe) seja maior do que a de um determinado
indivíduo não-elite (1/(p − pe)) e, portanto, determinado indivíduo elite tem uma
probabilidade mais elevada de passar suas características para as gerações futuras
do que um determinado indivíduo não elite. Também contribui para este efeito
o operador de cruzamento Parametrized Uniform Crossover, proposto por Spears
e deJong (1991), que é o mecanismo usado para implementar o acasalamento no
BRKGA, além do fato que um pai sempre é selecionado a partir do conjunto elite.
Seja pe > 0, 5 o parâmetro escolhido. Este parâmetro é a probabilidade de uma
prole herdar o alelo de seu pai do conjunto elite. Seja n o número de genes no
cromossomo de um indivíduo, para i = 1, ..., n. O i-ésimo alelo c(i) da prole c
assume o valor do i-ésimo alelo e(i) do pai elite (e) com probabilidade pe , e o valor
do i-ésimo alelo ē(i) do pai não-elite (ē) com probabilidade 1 − pe (Gonçalves e
Resende (2011)). Desta forma, é mais provável que a prole herde características do
pai elite do que aquelas do pai não-elite (sobrevivência do mais apto). Desde que
seja assumido que qualquer vetor de chaves aleatórias pode ser decodificada em uma
solução, então a prole resultante do acasalamento é sempre válida, ou seja, pode ser
decodificada em uma solução de problemas de otimização combinatória.
Exemplo 4.2 A Figura 4.10 ilustra o processo de cruzamento de dois vetores de
chaves aleatórias com quatro genes cada. Cada cromossomo é composto por um vetor
de 4 genes (ou caracteres), que são gerados de forma aleatória, utilizando o alfabeto
Ω = {A, C, T, G} para compor estes vetores. Os alelos dos cromossomos também
são gerados de forma aleatória no intervalo [0, 1]. O cromossomo 1 representa o
indivíduo elite e o cromossomo 2 refere-se ao indivíduo não-elite.
4.10
Metodologia de Pesquisa
41
Neste exemplo, o valor de pe = 0, 7, ou seja, a descendência herda o alelo do pai
elite com probabilidade de 70% e do outro progenitor com probabilidade de 30%.
Figura 4.10: Operador de cruzamento no BRKGA (Gonçalves e Resende (2011)).
Um gerador aleatório no intervalo real [0, 1] simula o sorteio de uma moeda
tendenciosa. Se o resultado for menor ou igual a 0, 7 então o filho herda o alelo do
pai elite; caso contrário, ele herda o alelo do outro pai (não-elite). Neste exemplo,
a prole herda o alelo do pai elite em seu primeiro, terceiro e quarto genes, e do pai
não-elite o segundo gene, assemelhando-se ao pai elite mais do que em relação ao
outro pai.
Quando a próxima população é completada, ou seja, quando se tem p indivíduos,
os valores de aptidão são computados para todos os vetores de chaves aleatórias
recém-criados e a população é particionada em indivíduos elite (T OP ) e não-elite
(REST ) para iniciar uma nova geração. Veja outro esquema na Figura 4.11, em
que a parcela BOT , da nova população gerada, representa os indivíduos mutantes
e a parcela MID representa os indivíduos descendentes do cruzamento.
Em todas as gerações, a população é dividida em dois conjuntos, denominados
T OP e REST . Nos testes computacionais da Seção 5, foram utilizadas populações
com 100, 500 e 1000 indivíduos. O conjunto T OP da população armazena os indivíduos com as melhores soluções. Estes indivíduos são copiados, sem alterações, para
as próximas gerações. O restante da população da nova geração é encontrado pela
aplicação de operadores de cruzamento e mutação.
Na operação de mutação do algoritmo BRKGA, a cada geração um número
fixo de cromossomos mutantes é inserido na população. Para escapar de mínimos
locais, uma parte dos cromossomos menos aptos é substituída por cromossomos
gerados aleatoriamente, de forma semelhante à geração da população inicial. Os
tamanhos das parcelas T OP , REST e BOT são informados através de parâmetros
do algoritmo. A Figura 4.11 mostra a evolução da população do algoritmo genético
entre duas gerações.
4.10
Metodologia de Pesquisa
42
Figura 4.11: Transição entre gerações sucessivas (Noronha et al., 2011).
4.10
Heurística BRKGA-PCCP
O uso de Algoritmo Genéticos Baseados em Chaves Aleatórias Tendenciosas
(BRKGA) na presente dissertação foi motivado pelo sucesso da utilização desta metaheurística para a resolução de problemas em Buriol et al. (2005), Buriol et al.
(2007), Gonçalves e Resende (2004), Gonçalves e Resende (2011), Dias et al. (2011),
Noronha et al. (2011), Reis et al. (2011), assim como em outros problemas de otimização combinatória Arulselvan et al. (2007), Gonçalves et al. (2005), Malve e Uzsoy
(2007), Samanlioglu et al. (2008), Lawrence e Mark (2006).
Os cromossomos no BRKGA-PCCP são compostos por vetores de caracteres.
Cada caractere recebe um número real aleatório entre 0 e 1. Posteriormente, a
população é ordenada em ordem crescente, de acordo com o valor aleatório atribuído à cada caractere. A distância de Hamming entre as cadeias de caracteres
e a seqüência resultante da ordenação dos caracteres é calculada. A distância de
Hamming calculada pelo BRKGA-PCCP é atribuída como valor de de adaptação
do cromossomo.
Em todas as gerações, a população é dividida em dois conjuntos, denominados
T OP e REST . O cruzamento é realizado entre um cromossomo da parcela T OP
com um cromossomo da parcela REST . Cada filho recebe suas chaves, de modo
que ou a chave é herdada da porção mais apta (T OP ) da população, com uma probabilidade de 0, 7, ou a chave é herdada do cromossomo pertencente à população
menos apta (REST ) da população, com probabilidade de 0, 25. Assim, o tamanho
total da população inicial é T OP + REST e a quantidade de cromossomos criados
a cada geração através de cruzamento é REST + BOT cromossomos filhos. Cromossomos mutantes são colocados na parcela BOT (com probabilidade de 0, 05) da
nova população gerada.
O pseudocódigo do algoritmo genético utilizado é descrito na Figura 4.12. Na
linha 2 deste algoritmo, os vetores de chaves são iniciados com valores aleatórios.
Na linha 3, é calculada a distância de Hamming para cada vetor. O laço entre
as linhas 5 e 15 é executado até que o instante de tempo Tmax ou outro critério
de parada seja alcançado. Na linha 6, a população é ordenada de acordo com a
4.10
Metodologia de Pesquisa
43
BRKGA-PCCP (G, R, prec , Tmax )
1- Para cada elemento da cadeia de caracteres faça
2Gerar vetor com chaves aleatórias;
3Avaliar vetor de acordo com a Distância de Hamming;
4- fim-para
5- Enquanto T empo < Tmax faça
6Ordene a população pela Distância de Hamming;
7Divide em T OP , REST e BOT ;
8Copiar para a próxima geração a parcela T OP da população;
9Para n ← 1 até |REST | faça
10Selecione aleatoriamente um elemento da parcela T OP ;
11Selecione aleatoriamente um elemento da parcela REST ∪ BOT ;
12Para cada chave do novo cromossomo faça
13p3 ← Crossover(p1, p2 , prec );
14fim-Para
15fim-Para
16Gerar aleatoriamente parcela BOT da nova população;
17Avaliar cada elemento da população;
18- fim-Enquanto
Figura 4.12: Pseudocódigo do Algoritmo Genético com Chaves Aleatórias Tendencioso para o Problema da Cadeia de Caracteres mais Próxima - BRKGA-PCCP.
distância de Hamming de cada indivíduo. Na linha 8, é realizada a reprodução da
porção T OP da população, que é integralmente copiada para a próxima geração.
Entre as linhas 11 e 13 é realizado o cruzamento, gerando os cromossomos da porção
MID da população. Na linha 16 são gerados os novos elementos da parcela BOT ,
responsáveis pela diversificação da população. Na linha 17, a nova população é
avaliada.
Capítulo 5
Experimentos Computacionais
Neste capítulo são apresentados os resultados computacionais obtidos pelas heurísticas BRKGA-PCCP e IGS-PCCP para a resolução do Problema da Cadeia de
Caracteres mais Próxima (PCCP). Estas duas heurísticas foram comparadas entre si e os melhores resultados foram comparados com os da heurística IntegerProgramming (IP) utilizada por Meneses et al. (2004). Para avaliar os dois métodos
propostos para solucionar o PCCP, foram utilizadas as instâncias do trabalho de
Meneses et al. (2004) e do trabalho de Mousavi e Esfahani (2012), as quais são
freqüentemente usadas por vários autores para fins de comparação. Na Seção 5.1
será apresentado o conjunto de instâncias utilizadas para os devidos experimentos. A Seção 5.2 apresenta os resultados das diferentes perturbações da heurística
IGS-PCCP para todas as instâncias testadas. Na Seção 5.3 serão apresentados os resultados para as diferentes populações p da heurística BRKGA-PCCP. Na Seção 5.4
é feita uma comparação entre os melhores resultados das duas heurísticas propostas
nesta dissertação. Por fim, na Seção 5.5 é feita a comparação entre as heurísticas
BRKGA-PCCP e a solução via Programação Inteira (IP).
As heurísticas BRKGA-PCCP e IGS-PCCP foram codificadas utilizando a linguagem de programação C + + e compiladas com o compilador GNU GCC versão
4.4.3. Os experimentos foram executados em um computador com processador Intel
Core I5, tendo 2.76 GHZ, com 4 GB de memória RAM.
5.1
Instâncias de Teste
Uma parte do conjunto de instâncias utilizadas nesta dissertação para os testes
computacionais foram retiradas do trabalho de Meneses et al. (2004). Neste trabalho, Meneses et al. (2004) teve o objetivo de solucionar o Closest String Problem. A
maioria das instâncias utilizadas em seu trabalho foram geradas aleatoriamente, exceto por um conjunto de 6 instâncias retiradas do trabalho de McClure et al. (1994),
que pertencem ao seguinte conjunto: Σ = 20, n = {6, 10, 12} e m = {98, 100, 141}.
As instâncias aleatórias do trabalho de Meneses et al. (2004) foram geradas por
um processo bem simples, na forma: dados os parâmetros n (número de cadeias de
caracteres do conjunto), m (dimensão de cada cadeia de caracteres) e um alfabeto
(Σ), escolhe-se aleatoriamente um caractere pertencente a Σ para cada posição na
seqüência de caracteres resultante.
44
5.2
Experimentos Computacionais
45
O algoritmo utilizado para a geração de números aleatórios é uma implementação do Linear Congruential Generator, proposto por Park e Miller (1988), com
parâmetros 16, 807 (multiplicador) e 231 − 1 (número primo).
Para os testes dessa dissertação, foram relacionados os seguintes conjuntos de instâncias. O alfabeto utilizado é composto por 4 caracteres, que são representados pela
base nitrogenada do DNA, na forma do alfabeto Ω = {A, C, T, G}; o conjunto de cadeias de caracteres n = {10, 15, 20, 25, 30} representa a quantidade de seqüências de
caracteres que cada cadeia possui; os valores para m = {300, 400, 500, 600, 700, 800}
definem a dimensão que cada seqüência pode possuir, ou seja, o número de caracteres
que cada seqüência pode conter.
A motivação para a utilização das instâncias do trabalho de Meneses et al. (2004)
é devido ao seu uso freqüente por pesquisadores da área, como Pinto et al. (2006),
Festa (2007), Chen et al. (2010) e Chimani et al. (2011), dentre outros trabalhos.
O segundo conjunto de instâncias utilizado para fins de experimentação nesta
dissertação foi retirado do trabalho de Mousavi e Esfahani (2012), com cadeias de
caracteres formadas por um alfabeto Ω = {20, 30}. São dois conjuntos formados por
20 e 30 caracteres diferentes, em que cada conjunto possui n = 10 e m = 500. Estas
instâncias foram retiradas do trabalho de Julstrom (2009), em que foram geradas
aleatoriamente.
5.2
Ajustes para a Perturbação k da Heurística IGSPCCP
Para fins experimentais, foram testadas variações no parâmetro k de perturbações da heurística IGS-PCCP, com o alfabeto Ω = {4} e k dado por valores pertencentes ao conjunto {0, 03; 0, 1; 0, 2; 0, 3; 0, 4; 0, 5; 0, 6; 0, 7}. O parâmetro k indica o
número de caracteres a serem perturbados. Veja Algoritmo 4.6.
A Tabela 5.1 relata os valores encontrados para os valores de k dados por 3%,
10% e 20%. Na Tabela 5.2 são mostrados os resultados para as perturbações de
30%, 40% e 50% e, na Tabela 5.3, são apresentados os resultados com k igual a 60%
e 70% de perturbação dos caracteres de cada instância.
Nestas três tabelas, a primeira coluna (Instâncias) indica o número de seqüências
n e a dimensão m que cada seqüência deste conjunto possui. As colunas Min, Max
e Desv representam, respectivamente, os valores de valor mínimo da distância de
Hamming, valor máximo da distância de Hamming e desvio padrão das distâncias
de Hamming encontrados pelas 5 execuções de cada conjunto de cadeias n × m. Os
valores para o desvio padrão, de todos os testes, foram considerados até a segunda
casa decimal.
Para o conjunto de cadeias de caracteres em que Ω = {20, 30}, sempre com
n = 10 e m = 500, foram testadas variações no parâmetro de perturbação k dadas
por valores pertencentes ao conjunto {0, 1; 0, 2; 0, 3; 0, 4; 0, 5; 0, 6; 0, 7}. A Tabela 5.4
mostra os resultados de variações no parâmetro k do algoritmo IGS-PCCP para as
instâncias com um alfabeto de 20 caracteres diferentes. A Tabela 5.5 apresenta os
resultados de variações no parâmetro k para as instâncias com alfabeto Ω = {30}.
O critério de escolha do melhor valor de k para a perturbação na metaheurística
IGS-PCCP foi a menor média entre os valores mínimos encontrados pelas pertur-
5.4
Experimentos Computacionais
46
bações. Para as instâncias com Ω = {4} (ver tabelas 5.1, 5.2 e 5.3), a perturbação
para k = 0, 5 obteve a menor média dos valores mínimos, tendo valor médio da
distância de Hamming dado por 374, 5. O segundo melhor valor é k = 0, 7, com
valor médio da distância de Hamming dado por 375, 2. Este valor (k = 0, 7) obteve
valores ótimos para a menor distância de Hamming em quatro das vinte instâncias,
empatando com a perturbação k = 0, 5. Como a média dos valores mínimos para
k = 0, 5 foi menor, este foi o escolhido para comparar com os obtidos pela heurística
BRKGA-PCCP.
Para o alfabeto Ω = {20, 30}, a menor média dos valores mínimos encontrados,
para ambos os casos, foi para a perturbação k = 0, 2. Com Ω = {20}, a menor
média da distância mínima de Hamming foi de 462, 2; a menor média mais próxima
foi obtida pela perturbação k = 0, 1, com média = 462, 8, com desvio padrão maior
do que a perturbação k = 0, 2.
Quando Ω = {30}, a menor média encontrada foi de 472, 8 para k = 0, 2. A
menor média mais próxima é com a perturbação k = 0, 3 e média 473. Estas duas
perturbações tiveram uma pequena diferença entre as médias e também no desvio
padrão. Então, os valores ótimos para as instâncias com Ω = {20, 30} são obtidos
pela perturbação k = 0, 2, sendo esses resultados escolhidos para se comparar com
a heurística BRKGA-PCCP.
5.3
Ajustes para a População da Heurística BRKGAPCCP
Os testes experimentais para a heurística BRKGA-PCCP foram realizados para
uma população p de indivíduos tendo valores p tais que p ∈ {100, 500, 1000}.
Quando o alfabeto Ω = {4}, a população com p = 1000 indivíduos superou as
demais instâncias com p = 100 e p = 500, exceto pela instância com n = 25 e
m = 300, em que p = 500 obteve a menor distância de Hamming, ficando uma
unidade abaixo do valor ótimo encontrado pela população com p = 1000 indivíduos,
conforme Tabela 5.6. Em conseqüência, a menor média da distância mínima de
Hamming foi dada pelo experimento com população p = 1000 e média 338, 9.
Para as cadeias de caracteres com Ω = {20} (Tabela 5.7) e Ω = {30} (Tabela 5.8),
os melhores valores foram encontrados para a população com p = 1000 indivíduos,
obtendo a média 403, 6 para Ω = {20} e média 417, 6 para Ω = {30}. Os valores
ótimos da heurística BRKGA-PCCP, para as instâncias com Ω = {4, 20, 30}, são
obtidos pelos testes que utilizam a população com p = 1000 indivíduos, e estes
posteriormente serão comparados com os resultados ótimos obtidos pela heurística
IGS-PCCP.
5.4
Comparação entre as heurísticas
Após ter verificado quais foram os parâmetros que obtiveram os melhores valores
para cada uma das heurística, será apresentada a seguir a comparação entre estes
resultados obtidos pelas heurísticas BRKGA-PCCP e IGS-PCCP.
5.4
Experimentos Computacionais
47
Tabela 5.1: Comparação entre os resultados das perturbações em k da heurística
IGS-PCCP para k = 3%, 10% e 20%.
Instâncias
IGS-PCCP k = 3%
IGS-PCCP k = 10%
IGS-PCCP k = 20%
n
m
Min
Max
Desv
Min
Max
Desv
Min
Max
Desv
10
300
208
245
12,56
209
233
11,07
206
233
12,35
10
500
357
393
12,74
355
382
15,51
354
389
13,79
10
700
506
556
19,25
504
533
16,97
497
533
17,81
15
300
208
244
13,15
209
236
13,38
209
236
15,32
15
500
350
402
20,96
361
389
14,94
353
381
14,12
15
700
492
546
19,82
493
540
21,19
488
540
22,48
20
300
213
242
11,9
210
240
15,08
204
236
15,07
20
500
352
398
17,74
349
388
18,69
351
392
20,04
20
700
493
558
24,91
496
540
22,52
496
536
21,07
25
300
204
243
15,84
209
235
14,23
203
235
15,77
25
500
341
396
20
346
389
20,24
352
391
20,3
25
600
427
487
22,87
428
467
20,82
424
464
21,5
25
700
495
554
23,11
489
540
27,58
500
542
22,39
25
800
568
632
26,67
566
617
26,62
565
616
28,07
30
300
205
244
14,76
207
236
14,38
209
237
14,09
30
400
280
322
17,42
277
315
18,4
279
311
17,28
30
500
356
398
18,01
346
390
20,93
347
392
21,74
30
600
424
476
21,97
418
465
23,59
414
464
21,73
30
700
496
538
23,71
497
537
23,08
495
543
24,73
30
800
566
634
26,44
566
616
22,83
564
616
23,94
Nos experimentos realizados para esta dissertação, foram considerados os seguintes grupos de instâncias: para o conjunto em que n possui quantidades de
cadeias de caracteres na forma n ∈ {10, 15, 20}, m possui as seguintes dimensões
m ∈ {300, 500, 700}. Quando n = 25, tem-se m ∈ {300, 500, 600, 700, 800} e, para
n = 30, tem-se min{300, 400, 500, 600, 700, 800}. Todas estas instâncias são formadas pelo alfabeto Ω = {4}.
As heurísticas BRKGA-PCCP e IGS-PCCP foram codificadas utilizando a linguagem de programação C++ e compiladas com o compilador GNU GCC versão
4.4.3. Os experimentos foram executados em um computador com processador Intel
Core I5, tendo 2.76 GHZ, com 4 GB de memória RAM.
A seguir, na Tabela 5.9, são comparados os resultados das heurísticas BRKGAPCCP e IGS-PCCP, obtidos com cinco execuções para cada instância n × m. A
primeira coluna (Instâncias) indica a composição das cadeias de caracteres, com n
sendo o número de cadeias de caracteres que cada conjunto possui e m a dimensão de
5.4
Experimentos Computacionais
48
Tabela 5.2: Comparação entre os resultados das perturbações em k da heurística
IGS-PCCP para k = 30%, 40% e 50%.
Instâncias
IGS-PCCP k = 30%
IGS-PCCP k = 40%
IGS-PCCP k = 50%
n
m
Min
Max
Desv
Min
Max
Desv
Min
Max
Desv
10
300
212
227
11,42
210
234
12,22
201
234
13,94
10
500
355
387
15,18
347
385
17,84
356
382
14,97
10
700
505
534
17,28
493
526
18,79
499
544
19,89
15
300
204
234
13,31
204
232
14,52
207
230
11,23
15
500
352
386
19,7
347
383
18,5
351
384
17,03
15
700
498
537
21,39
499
531
17,85
492
537
21,48
20
300
204
237
16,49
207
233
13,09
208
233
14,69
20
500
351
392
20,02
346
388
17,56
350
384
19,3
20
700
487
542
23,27
502
536
17,89
497
540
21,64
25
300
345
389
19,86
201
234
14,31
202
234
14,63
25
500
345
389
19,86
356
387
16,63
353
390
20,73
25
600
422
468
22,68
420
461
23,21
414
464
22,79
25
700
502
541
21,87
493
549
26,91
490
539
23,84
25
800
577
616
21,45
574
617
24,95
563
617
24,54
30
300
201
238
16,7
200
237
15,54
203
236
15,71
30
400
277
311
15,27
282
311
15,82
274
311
19,07
30
500
351
391
20,2
347
389
18,56
354
394
19,86
30
600
416
469
23,86
422
463
22,78
422
465
22,36
30
700
497
539
22,8
501
544
25,26
490
542
24,71
30
800
570
617
23,68
567
620
26,76
564
618
28,77
cada seqüência do conjunto. As colunas Min, Média, Max, representam respectivamente os valores mínimos, médios e máximos encontrados da distância de Hamming
para mensurar esses valores.
O tempo de processamento de cada heurística foi limitado em 300 segundos, ou
5 minutos. A Tabela 5.9 apresenta os resultados numéricos para a heurística IGSPCCP, com perturbação k = 50%, e, para o método BRKGA-PCCP, com população
p = 1000 indivíduos. A dimensão dos conjuntos T OP , REST e BOT da heurística
BRKGA-PCCP foi configurada com 0, 25|p|, 0, 70|p| e 0, 05|p| respectivamente, sendo
p o tamanho da população. Os resultados numéricos com valores em negrito indicam
as soluções ótimas encontradas pela respectiva heurística.
Na Tabela 5.9, a heurística BRKGA-PCCP apresentou melhores resultados em
relação à heurística IGS-PCCP em todas as instâncias, seja para os valores mínimos
encontrados, seja quanto aos valores médios e máximos.
A Tabela 5.10 mostra a comparação entre os resultados para as heurísticas
5.5
Experimentos Computacionais
49
Tabela 5.3: Comparação entre os resultados das perturbações em k da heurística
IGS-PCCP para k = 60% e 70%.
Instâncias
IGS-PCCP k = 60%
IGS-PCCP k = 70%
n
m
Min
Max
Desv
Min
Max
Desv
10
300
205
232
12,42
209
234
12,56
10
500
358
388
14,54
349
380
14,4
10
700
505
539
17,04
493
539
19,57
15
300
206
232
14,16
209
234
11,94
15
500
358
383
17,34
350
387
17,8
15
700
501
543
22,89
493
540
20,81
20
300
209
236
12,73
205
233
13,66
20
500
355
387
17,86
344
391
19,63
20
700
483
536
26,31
500
539
21,83
25
300
206
235
15,26
211
233
12,75
25
500
353
386
17,28
348
390
21,39
25
600
425
470
20,92
417
467
22,54
25
700
497
541
21,83
494
534
22,17
25
800
569
616
24,12
579
616
22,48
30
300
204
238
17,38
206
235
14,39
30
400
279
311
18,41
274
312
19,67
30
500
350
392
21,13
351
393
20,56
30
600
414
467
23,58
417
471
24,04
30
700
484
537
22,9
495
547
24,53
30
800
573
617
25,1
560
616
27,86
BRKGA-PCCP e IGS-PCCP, com alfabeto Ω = {20, 30}. A primeira coluna indica o alfabeto Ω que compõe as cadeias de caracteres. As colunas Min, Média e
Max indicam, respectivamente, os valores mínimos, médias e máximos encontrados
pela execução de cinco vezes cada uma das instâncias das duas heurísticas propostas
nesta dissertação. Para todas as instâncias da Tabela 5.10, são utilizadas instâncias
com n = 10 e m = 500. Os resultados em negrito indicam os valores ótimos encontrados em relação às heurísticas BRKGA-PCCP e IGS-PCCP. Novamente, o algoritmo
BRKGA-PCCP obteve melhores resultados para todas as instâncias envolvidas.
5.5
Experimentos Computacionais
50
Tabela 5.4: Comparação entre os resultados das perturbações no parâmetro k da
heurística IGS-PCCP para o alfabeto Ω = {20}, com n = 10 e m = 500.
k = 0, 1
k = 0, 2
k = 0, 3
k = 0, 4
k = 0, 5
k = 0, 6
k = 0, 7
5.5
Min
465
461
464
461
463
Max
478
478
480
482
479
Desv
7,03
Min
461
463
458
465
464
Max
479
479
478
482
478
Desv
9,25
8,35
9,2
8,76 6,93
Min
458
465
467
462
462
Max
4480
477
480
476
479
Desv
9,66
7,22
7,38
7,9
9,01
Min
468
468
464
461
463
Max
479
477
480
480
479
Desv
6,55
6,97
8,82 8,96 7,93
Min
454
467
467
468
460
Max
482
480
481
479
481
Desv
10,9
7,16
8,33 6,06 9,18
Min
463
463
463
464
463
Max
480
478
476
480
479
Desv
8,46
7,88
8,44 9,04
7,2
Min
465
463
466
462
462
Max
481
481
480
478
478
Desv
9,33
7,98
7,92 7,57 8,72
10,02 7,14 10,3 9,53
Comparação entre as heurísticas BRKGA-PCCP
e PI
Na Tabela 5.11 é mostrada a comparação dos resultados obtidos pela heurística
BRKGA-PCCP e pelos resultados de Programação Inteira (PI) apresentados em
Meneses et al. (2004). A escolha da heurística BRKGA-PCCP se deve ao fato desta
ter obtido valores ótimos melhores em comparação com a heurística IGS-PCCP. As
colunas Min, Média, Max e Tempo indicam, respectivamente, os valores mínimos,
médias, máximos e tempo, medido em segundos, para os resultados encontrados
pela distância de Hamming. Os valores numéricos marcados em negrito indicam os
melhores resultados obtidos da comparação entre as heurísticas BRKGA-PCCP e
Programação Inteira.
Os testes da heurística de Meneses et al. (2004) foram realizados com um processador Pentium 4 CPU com 2.80 GHz e 512 MB de RAM, Windows XP. A heurística
foi implementada em linguagem C++ e CPLEX 8.1 (ILOG 2003). Como critério de
5.5
Experimentos Computacionais
51
Tabela 5.5: Comparação entre os resultados das perturbações da heurística IGSPCCP para o alfabeto Ω = {30}, com n = 10 e m = 500.
k = 0, 1
k = 0, 2
k = 0, 3
k = 0, 4
k = 0, 5
k = 0, 6
k = 0, 7
Min
476
474
471
475
474
Max
488
485
485
487
488
Desv
6,1
6,65 7,45 6,52 6,78
Min
473
472
472
474
473
Max
486
487
489
489
486
Desv
6,13 7,32 8,07 7,56 7,63
Min
470
474
472
472
477
Max
488
486
485
486
487
Desv
7,99 7,24
6,9
7,79 5,85
Min
470
476
471
477
475
Max
486
488
486
486
487
Desv
8,03 5,75 6,38 5,86 6,24
Min
470
474
479
474
470
Max
488
488
489
486
486
Desv
7,24 7,11 5,92
7,3
8,06
Min
473
473
470
474
475
Max
485
486
487
486
488
Desv
6,61 6,62 7,42 6,25 5,96
Min
473
475
476
476
474
Max
487
486
486
487
486
Desv
6,58 7,36 5,89 5,59
6,4
parada da heurística Programação Inteira, foi utilizado o número de iterações igual
a 10.000.
Os resultados mostram que a heurística BRKGA-PCCP é fortemente competitiva
frente aos resultados ótimos encontrados pela aplicação da heurística em Programação inteira apresentados em Meneses et al. (2004). Em 8 das 20 instâncias foram
encontrados os valores ótimos apresentados na referência citada.
5.5
Experimentos Computacionais
52
Tabela 5.6: Comparação entre os resultados das populações p = 100, p = 500 e
p = 1000 para a heurística BRKGA-PCCP, com Ω = {4}.
Instâncias
p = 100 indivíduos
p = 500 indivíduos
p = 1000 indivíduos
n
m
Min
Max
Desv
Min
Max
Desv
Min
Max
Desv
10
300
192
198
1,8
176
180
1,3
174
177
1,1
10
500
331
338
2,12
297
302
1,48
292
295
0,94
10
700
466
476
3,49
419
427
2,37
411
414
0,95
15
300
196
206
3,02
183
188
1,89
181
185
1,66
15
500
336
349
3,95
313
319
1,9
306
310
1,51
15
700
485
496
3,41
444
450
2,22
433
438
1,79
20
300
202
210
3,38
189
196
2,28
187
193
2,22
20
500
345
356
3,74
323
330
2,55
315
321
2,26
20
700
489
500
3,71
455
461
2,22
446
452
2,32
25
300
207
215
3,27
192
202
3,16
193
199
2,28
25
500
342
359
5,87
326
336
3,07
323
328
1,81
25
600
408
432
8,22
392
404
3,55
385
394
3,41
25
700
483
508
7,15
463
471
2,9
453
460
2,67
25
800
562
582
6,59
530
539
3,29
519
526
2,54
30
300
196
216
6,31
196
204
3,65
194
200
2,44
30
400
274
289
5,51
265
272
2,98
262
268
2,44
30
500
348
365
6,38
333
343
3,37
323
335
3,74
30
600
426
438
4,63
399
408
3,66
394
402
2,99
30
700
488
508
6,78
465
480
4,79
461
469
2,91
30
800
559
580
7,65
534
548
4,08
526
534
3,16
Tabela 5.7: Comparação entre os resultados das diferentes populações p da heurística
BRKGA-PCCP para o alfabeto Ω = {20}.
p = 100
p = 500
p = 1000
Min
450
449
452
449
449
Max
455
454
457
456
457
Desv
1,48
1,7
1,79 2,55 2,55
Min
417
415
417
415
415
Max
422
418
423
419
422
Desv
1,95 1,25 1,79 1,34 2,16
Min
404
403
404
403
404
Max
406
404
405
405
406
Desv
1,15 1,43 1,17
1,1
1,34
5.5
Experimentos Computacionais
53
Tabela 5.8: Comparação entre os resultados das diferentes populações p da heurística
BRKGA-PCCP para o alfabeto Ω = {30}.
p = 100
p = 500
p = 1000
Min
460
461
462
462
463
Max
469
469
466
468
467
Desv
2,91 2,50 1,47 1,91 1,16
Min
430
430
432
432
432
Max
437
433
435
436
436
Desv
2,57 1,05 0,85 1,37 1,25
Min
419
419
416
417
417
Max
420
420
417
420
419
Desv
1,54 0,94 1,72 1,91 1,83
5.5
Experimentos Computacionais
54
Tabela 5.9: Comparação entre os resultados das heurísticas BRKGA-PCCP e IGSPCCP, para instâncias tendo Ω = {4}; n ∈ {10, 15, 20} e m ∈ {300, 500, 700};
n = 25 e m ∈ {300, 500, 600, 700, 800}; n = 30 e min{300, 400, 500, 600, 700, 800}
Instâncias
BRKGA-PCCP
IGS-PCCP
n
m
Min
Média
Max
Min
Média
Max
10
300
174
174,8
177
201
212,4
234
10
500
292
293,2
295
356
359,4
382
10
700
411
412,2
414
499
508,2
544
15
300
181
181,6
185
207
211,8
230
15
500
306
307,2
310
351
356
384
15
700
433
434,6
438
492
501,4
537
20
300
187
188,8
193
208
211,8
233
20
500
315
316,8
321
350
355,8
384
20
700
446
448,6
452
497
504,4
540
25
300
193
194
199
202
209,4
234
25
500
323
324,2
328
353
355
390
25
600
385
387
394
414
425
464
25
700
453
454,4
460
490
502
539
25
800
519
520,4
526
563
574,8
617
30
300
194
195,6
200
203
208,6
236
30
400
262
263
268
274
279
311
30
500
323
329
335
354
357,2
394
30
600
394
395,8
402
422
427,4
465
30
700
461
463,2
469
490
502,2
542
30
800
526
527,6
534
564
571
618
5.5
Experimentos Computacionais
55
Tabela 5.10: Comparação entre os resultados das heurísticas BRKGA-PCCP e IGSPCCP para o alfabeto Ω = {20, 30}, n = 10 e m = 500.
Alfabeto
BRKGA-PCCP
IGS-PCCP
Ω
Min
Média
Max
Min
Média
Max
20
404
405,2
406
461
465
479
403
403,6
404
463
465,2
479
404
405
405
458
464,8
478
403
404
405
465
467,6
482
404
405,2
406
464
467,8
478
419
420
420
473
477,8
486
419
419,4
420
472
475,6
487
416
417,6
417
472
476
489
417
420
420
474
477,2
489
417
418,6
419
473
475,4
486
30
5.5
Experimentos Computacionais
56
Tabela 5.11: Comparação entre os resultados da heurística BRKGA-PCCP e os
resultados de Programação Inteira apresentados em Meneses et al. (2004).
Instâncias
BRKGA-PCCP
Programação Inteira
n
m
Min
Média
Max
Min
Média
Max
Tempo
10
300
174
174,8
177
174
175.50
177
0,12
10
500
292
293,2
295
288
289.50
292
0,34
10
700
411
412,2
414
405
407.50
410
1,84
15
300
181
181,6
185
183
184.25
187
6,02
15
500
306
307,2
310
306
306.50
307
44,98
15
700
433
434,6
438
426
428.50
432
21.78
20
300
187
188,8
193
190
190.25
191
1.170,98
20
500
315
316,8
321
314
316.25
319
901,44
20
700
446
448,6
452
442
442.75
444
940,21
25
300
193
194
199
195
195.75
196
2.741,15
25
500
323
324,2
328
321
323.25
325
741,62
25
600
385
387
394
387
388.00
389
1.805,16
25
700
453
454,4
460
450
452.25
453
907,61
25
800
519
520,4
526
515
516.75
520
1.254,19
30
300
194
195,6
200
198
198.25
199
3.223,68
30
400
262
263
268
262
263.25
264
1.852,67
30
500
323
329
335
326
329.25
331
2.215,67
30
600
394
395,8
402
393
394.25
395
2.700,30
30
700
461
463,2
469
459
459.75
460
1.803,28
30
800
526
527,6
534
522
523.50
526
2.337,20
Capítulo 6
Considerações Finais
Esta dissertação apresentou o estudo sobre o Problema da Cadeia de Caracteres
Mais Próxima (PCCP), sendo propostas duas heurísticas para a solução deste problema. No PCCP, o objetivo é encontrar uma seqüência centro t, que minimize a
distância desta às demais cadeias de caracteres de um dado conjunto com seqüências
de mesma dimensão.
Para a solução do PCCP, foram implementadas as heurísticas Biased RandomKey Genetic Algorithms (BRKGA) e Iterated Greedy Search (IGS), que foram comparadas entre si. Posteriormente, os melhores resultados, que foram obtidos pela
heurística BRKGA-PCCP, foram comparados com os da heurística Programação
Inteira do trabalho de Meneses et al. (2004). A justificativa para o uso do algoritmos genéticos com chaves aleatórias tendenciosas é pela sua aplicação bem sucedida
em vários problemas de otimização, citados nesta dissertação.
Inicialmente foi apresentada uma introdução mostrando fatores que levaram ao
surgimento do PCCP e suas variações, para resolução de problemas reais da Biologia Molecular. Foram apresentadas também as definições de DNA, RNA e síntese
protéica. No Capítulo 2, foram apresentados os trabalhos mais importantes relacionados ao PCCP, destacando as heurísticas utilizadas e os problemas abordados.
No Capítulo 3, foram apresentadas as característica do PCCP e suas formulações,
como também outros problemas que abordam a comparação e seleção de cadeias
de caracteres. No Capítulo 4, foram apresentados os algoritmos mais usados para
a resolução do PCCP encontrados na literatura, assim como as heurísticas utilizadas para resolução do mesmo nesta dissertação. No Capítulo 5, foram abordadas
as instâncias extraídas do trabalho de Meneses et al. (2004) para a solução deste
problema, bem como os resultados dos experimentos computacionais propostos.
A partir dos resultados apresentados no Capítulo 5, pode-se concluir que os
algoritmos propostos para o Problema da Cadeia de Caracteres Mais Próxima demonstraram eficiência na resolução do problema em questão.
Observou-se que a heurística IGS-PCCP não gerou bons resultados, ficando sempre atrás dos resultados alcançados pela heurística BRKGA-PCCP. O valor mais
próximo que a heurística IGS-PCCP alcançou do BRKGA-PCCP foi para as instâncias n = 25 e n = 30, ambas para m = 300, com nove unidades da distância de
Hamming de diferença.
Analisando as cadeias de caracteres formadas por um alfabeto Ω = {4}, pode-se
verificar que, para valores de n ∈ {15, 10, 25, 30} e m = 300, n = 25 com m =
57
6.0
Considerações Finais
58
600 e n = 30 com m = 500, conseguiu-se superar os valores dos resultados da
heurística Programação Inteira proposta por Meneses et al. (2004). Para valores
de n = 15 com m = 500 e n = 30 com m = 400, os valores foram iguais entre as
heurística (ver Tabela 5.11). Para os valores das demais instâncias, as distâncias de
Hamming obtidas ficaram muito próximas aos da heurística Programação Inteira,
com diferenças que, em alguns casos, chegam a 8 unidades no máximo. Com relação
ao tempo de processamento, a heurística BRKGA-PCCP alcançou, na maioria dos
casos, valores muito abaixo dos encontrados pela heurística de Meneses et al. (2004),
sendo, em alguns resultados, 90% mais rápido e obtendo valores melhores.
Para as cadeias de caracteres com um alfabeto Ω = {20, 30}, a heurística BRKGAPCCP também obteve melhores resultados para a distância mínima de Hamming em
relação à heurística IGS-PCCP. Os testes para as duas heurísticas foram realizadas
com um tempo limite de cinco minutos de processamento.
Conclui-se, então, que a heurística BRKGA-PCCP se mostrou bastante robusta,
obtendo valores próximos do ótimo em um tempo de processamento reduzido.
Como trabalhos futuros, há a necessidade de um melhor ajuste dos parâmetros
das heurísticas, como número de iterações, tempo de processamento, dentre outros
que devem ser feitos através de testes. O desenvolvimento de outras formulações
matemáticas e também a implementação de algoritmos que ainda não foram testados
poderão trazer melhores resultados.
Referências Bibliográficas
Andronescu, Mirela e Rastegari, Baharak. (2003). Motif-grasp and motif-ils: Two
new stochastic local search algorithms for motif finding. Relatório técnico, Computer
Science Department, University of British Columbia, Vancouver, Canada.
Arulselvan, A.; Commander, C. e Pardalos, P. (2007). A random keys based genetic
algorithm for the target visitation problem. Advances in Cooperative Control and
Optimization, volume 369, p. 389–397. Springer.
Avery, O. T.; MacLeod, C. M. e McCarty, M. (1944). Studies on the chemical
nature of the substance inducing transformation of pneumococcal types: Induction
of transformation by a desoxyribonucleic acid fraction isolated from pneumococcus
type iii. Journal of Experimental Medicine, v. 79, n. 2, p. 137–158.
Bean, J. C. (1994). Genetic algorithms and random keys for sequencing and optimization. ORSA Journal on Computing, v. 2, p. 154–160.
Ben-Dor, A.; Lancia, G.; Perone, J. e Ravi, R. (1997). Banishing bias from consensus
sequences. in: Proceedings of the 8th Annual Symposium on Combinatorial Pattern
Matching, v. 247–261.
Boucher, C.; Landau, G. M.; Levy, A.; Pritchard, D. e Weimann, O. (2012). On
approximating string selection problems with outliers. Kärkkäinen, J. e Stoye, J.,
editors, Combinatorial Pattern Matching, volume 7354 of Lecture Notes in Computer
Science, p. 427–438. Springer Berlin Heidelberg.
Buriol, L. S.; Resende, M. G. C.; Ribeiro, C. C. e Thorup, M. (2005). A hybrid
genetic algorithm for the weight setting problem in OSPF/IS-IS routing. Networks,
v. 46, p. 36–56.
Buriol, L. S.; Resende, M. G. C. e Thorup, M. (2007). Survivable IP network design
with OSPF routing. Networks, v. 49, p. 51–64.
Chen, Jing-Chao. (2009). Iterative rounding for the closest string problem. Proceedings of the 5th Conference on Computability in Europe (CiE 2009), p. 89–98,
Heidelberg, Germany.
Chen, Zhi-Zhong; Ma, Bin e Wang, Lusheng. (2010). A three-string approach to
the closest string problem. Journal of Computer and System Sciences, v. 6196, p.
449–458.
59
Referências Bibliográficas
60
Chimani, M.; Woste, M. e Böcker, S. (2011). A closer look at the closest string
and closest substring problem. Müller-Hannemann, M. e Werneck, R. F. F., editors,
Proceedings of the Workshop on Algorithm Engineering and Experiments (ALENEX
2011), p. 13–24, (2011).
Ciffler, B. (1963). Scheduling general production systems using schedule algebra.
Naval Research Logistics Quarterly, v. 10, n. 1, p. 237 – 255.
Crowston, W. B.; Glover, F.; Thompson, G. L. e Trawick, J. D. (1963). Probabilistic
and parametric learning combinations of local job shop scheduling rules. ONR
Research Memorandum 117, Carnegie-Mellon University, Pittsburgh, PA, EUA.
daFonseca, Paulo Gustavo Soares. Índices completos para casamento de padrões e
inferência de motifs. Dissertação de Mestrado, Universidade Federal de Pernambuco,
(2003).
de Souza, J. C. Aplicação de metaheurísticas ao problema da cadeia de caracteres
mais próxima. Dissertação de Mestrado, Centro Federal de Educação Tecnológica
De Minas Gerais (CEFET), (2012).
Deng, Xiaotie; Li, Guojun e Wang, Lusheng. (2002). Center and distinguisher for
strings with unbounded alphabet. Journal of Combinatorial Optimization, v. 6, p.
383–400.
Dias, L. G. S.; Goulart, N.; Noronha, T. F. e deSouza, S. R. (2011). Algoritmo
genético para o problema de instalação de fibras em redes Óticas. XLIII Simpósio
Brasileiro de Pesquisa Operacional, Ubatuba, SP.
Ecker, J. G.; Kupferschmid, M.; Lawrence, C. E.; Reilly, A. A. e Scott, A. C. H.
April(2002). An application of nonlinear optimization in molecular biology. European
Journal of Operational Research, v. 138, n. 2, p. 452–458.
Fanjul-Peyroa, L. e Ruiz, R. (2010). Iterated greedy local search methods for
unrelated parallel machine scheduling. European Journal of Operational Research,
v. 207, p. 55–69.
Faro, Simone e Pappalardo, Elisa. (2010). Ant-csp: An ant colony optimization
algorithm for the closest string problem. SOFSEM 2010: Theory and Practice of
Computer Science, volume 5901 of SOFSEM ’10, p. 370–381, Berlin, Heidelberg.
Springer-Verlag.
Feo, Thomas A. e Resende, Mauricio G.C. (1995). Greedy randomized adaptive
search procedures. Journal of Global Optimization, v. 6, p. 109–133.
Ferone, Daniele; Festa, Paola e Resende, Mauricio G. C. (2013). Hybrid metaheuristics for the far from most string problem. Hybrid Metaheuristics, p. 174 – 188.
Springer Berlin Heidelberg, (2013).
Festa, Paola. (2007). On some optimization problems in molecular biology. Mathematical Biosciences, v. 207, p. 219–234.
Referências Bibliográficas
61
Fogel, Gary B.; Porto, V. William; Weekes, Dana G.; Fogel, David B.; Griffey, Richard H.; McNeil, John A.; Lesnik, Elena; Ecker, David J. e Sampath, Rangarajan.
(2002). Discovery of rna structural elements using evolutionary computation. Nucleic Acids Research, v. 30, p. 5310 – 5317.
Framinan, Jose e Leisten, Rainer. (2008). A multi-objective iterated greedy search
for flowshop scheduling with makespan and flowtime criteria. OR Spectrum, v. 30,
p. 787–804.
Gagnaire, M. e Doumith, E. (2007). An iterative greedy algorithm for scheduled traffic grooming in wdm optical networks. Advanced Networks and Telecommunication
Systems First International Symposium On, (2007).
Garcia, B. L.; Mahey, P. e LeBlanc, L. J. (1998). Iterative improvement methods
for a multiperiod network design. European Journal of Operational Research, v. 110,
p. 150–165.
Gasieniec, Leszek; Jansson, Jesper e Lingas, Andrzej. (1999). Efficient approximation algorithms for the hamming center problem. Proceedings of the tenth annual
ACM-SIAM Symposium on Discrete algorithms, SODA’99, p. 905–906, Philadelphia,
PA, USA. SIAM.
Glover, F. (1997). Tabu search and adaptive memory programing: Advances, applications and challenges. Barr, R. S.; Helgason, R. V. e Kennington, J. L., editors,
Interfaces in Computer Science and Operations Research, volume 7 of Operations
Research/Computer Science Interfaces Series, p. 1–75. Springer US.
Goldberg, D. E. e Holland, J. H. (1988). Genetic algorithms and machine learning.
Machine Learning, v. 3, n. 2-3, p. 95–99.
Gomes, Fernando C.; Meneses, Cláudio N.; Pardalos, Panos M. e Viana, Gerardo
Valdisio R. (2008). A parallel multistart algorithm for the closest string problem.
Computers and Operations Research, v. 35, p. 3636–3643.
Gonçalves, J. F. e Almeida, J. (2002). A hybrid genetic algorithm for assembly line
balancing. Journal of Heuristics, v. 8, p. 629–642.
Gonçalves, J. F.; Mendes, J. J. M. e Resende, M. G. C. (2005). A hybrid genetic
algorithm for the job shop scheduling problem. European Journal of Operational
Research, v. 167, p. 77–95.
Gonçalves, J. F. e Resende, M. G. C. (2004). An evolutionary algorithm for manufacturing cell formation. Computers and Industrial Engineering, v. 47, p. 247–273.
Gonçalves, José Fernando e Resende, Mauricio G. C. (2011). Biased random-key
genetic algorithm for combinatorial optimization. JOURNAL OF HEURISTICS, v.
17, p. 487–525.
Gramm, J.; Niedermeier, R. e Rossmanith, P. (2001). Exact solutions for closest
string and related problems. Algorithms and Computation, v. 2223, p. 441–453.
Referências Bibliográficas
62
Gramm, Jens; Guo, Jiong e Niedermeier, Rolf. (2006). Parameterized intractability
of distinguishing substring selection. Theory of Computing Systems, v. 39, p. 560.
Hansen, Pierre e Mladenovic, Nenad. (2002). Developments of variable neighborhood
search. Operations Research/Computer Science Interfaces Series, v. 15, p. 415 – 439.
Held, M. e Karp, R. M. (1971). The traveling salesman problem and minimum
spanning trees. Mathematical Programming, v. 1, p. 6 – 25.
Hirschberg, D. S. (1975). A linear space algorithm for computing maximal common
subsequences. Magazine Communications of the ACM, v. 18 Issue 6, p. 341 – 343.
Holland, J. H. (1975). Adaptation in natural and artificial systems. University of
Michigan Press, Ann Arbor, MI, EUA.
Hufsky, Franziska; Kuchenbecker, Léon; Jahn, Katharina; Stoye, Jens e Böcker, Sebastian. (2010). Swiftly computing center strings. Moulton, Vincent e Singh, Mona,
editors, Algorithms in Bioinformatics, 10th International Workshop, WABI 2010,
Liverpool, UK, September 6-8, 2010. Proceedings, volume 6293 of Lecture Notes in
Computer Science, p. 325–336. Springer, (2010).
Jain, Kamal. (2001). A factor 2 approximation algorithm for the generalized steiner
network problem. Combinatorica, v. 21, p. 39 – 60.
Jiang, T.; Trendall, C.; Wang, S.; Wareham, T. e Zhang, X. (2000). Drug target
identification using gibbs sampling techniques. Proceedings of Pacific Symposium
on Biocomputing, p. 389 – 400, (2000).
Julstrom, Bryant A. (2009). A data-based coding of candidate strings in the closest
string problem. Proceedings of the 11th Annual Conference Companion on Genetic
and Evolutionary Computation Conference: Late Breaking Papers, GECCO ’09, p.
2053–2058, New York, NY, USA. ACM.
Kelsey, Tom e Kotthoff, Lars. (2010). The exact closest string problem as a constraint
satisfaction problem. Computing Research Repository, v. abs/1005.0089.
Kochenberger, Gary A.; McCarl, Bruce A. e Wyman, F. Paul. (1974). A heuristic
for general integer programming. Decision Sciences, v. 5, p. 36 – 44.
Lacerda, E. G. M. e Carvalho, A. C. P. L. F. (1999). Introdução aos algoritmos
genéticos. Galvão, C. O. e Valença, M. J. S., editors, Sistemas Inteligentes: Aplicações a Recursos Hídricos e Ciências Ambientais, volume 1, p. 99–148. Editora da
Universidade Federal do Rio Grande do Sul, Porto Alegre, RS, 1 edição.
Lanctot, J. K.; Li, M.; Ma, B.; Wang, S. e Zhang, L. (1999). Distinguishing
string selection problems. Proceedings of the tenth annual ACM-SIAM symposium
on Discrete algorithms, p. 633 – 642, (1999).
Lanctot, J. Kevin; Li, Ming; Ma, Bin; Wang, Shaojiu e Zhang, Louxin. (2003).
Distinguishing string selection problems. Information and Computation, v. 185, p.
41 – 55.
Referências Bibliográficas
63
Lawler, E.L.; Lenstra, J.K.; Kan, A.H.G. Rinnooy e Shmoys, D.B. (1985). The
traveling salesman problem. Networks, v. 18, p. 253 – 254.
Lawrence, V. S. e Mark, S. D. (2006). A random-key genetic algorithm for the
generalized traveling salesman problem. European Journal of Operational Research,
v. 174, p. 38–53.
Lesk, A. M. (2008). Introdução à Bioinformática. Artmed, 2 edição.
Li, Ming; Ma, Bin e Wang, Lusheng. (1999). Finding similar regions in many strings.
Proceedings of the Thirty-First Annual ACM Symposium on Theory of computing
(STOC’99), p. 473–482, (1999).
Li, Ming; Ma, Bin e Wang, Lusheng. (2002). On the closest string and substring
problems. Journal of the ACM, v. v. 49, n. 2, p. 157–171.
Liu, X.; Holger, M.; Hao, Z. e Wu, G. (2008). A compounded genetic and simulated
annealing algorithm for the closest string problem. The 2nd International Conference
on Bioinformatics and Biomedical Engineering, 2008 (ICBBE 2008), p. 702 – 705,
(2008).
Liu, Xiaolan; Fu, Keqiang e Shao, Renxiang. (2004). Largest distance decreasing
algo- rithm for the closest string problem. Journal of Information & Computational
Science, v. 1(2), p. 287–292.
Liu, Xiaolan; Liu, Shenghan; Hao, Zhifeng e Mauch, Holger. (2011). Exact algorithm
and heuristic for the closest string problem. Computers &OperationsResearch, v. 38,
p. 1513–1520.
Liu, Xuan; He, Hongmei e Sýkora, Ondrej. July 22-24, 2005(2005). Parallel genetic
algorithm and parallel simulated annealing algorithm for the closest string problem.
Advanced Data Mining and Applications, volume 3584, p. 591–597, Wuhan, China.
Springer Berlin Heidelberg.
Los, M. e Lardinois, C. (1982). Combinatorial programming, statistical optimization
and the optimal transportation network problem. Transportation Research, v. 2, p.
89 – 124.
Lourenço, Helena R.; Martin, Olivier C. e Stützle, Thomas. (2002). Iterated local
search. Handbook of Metaheuristics, volume 57 of International Series in Operations Research and Management Science, p. 321–353. Kluwer Academic Publishers,
(2002).
M. Frances, A. Litman. (1997). On covering problems of codes. Theory Comput.
Syst., v. 30, n. 2, p. 113–119.
Ma, Bin. (2000). A polynomial time approximation scheme for the closest substring
problem. Combinatorial Pattern Matching, v. 1848, p. 99 – 107.
Ma, Bin e Sun, Xiaoming. (2009). More efficient algorithms for closest string and
substring problems. SIAM Journal on Computing, v. 39(4), p. 1432–1443.
Referências Bibliográficas
64
Maes, J.; McClain, J. O. e Wassenhove, L. N. V. (1991). Multilevel capacitated lotsizing complexity and ip-based heuristics. European Journal Of Operational Research,
v. 53, p. 131 – 148.
Malve, S. e Uzsoy, R. (2007). A genetic algorithm for minimizing maximum lateness on parallel identical batch processing machines with dynamic job arrivals and
incompatible job families. Computers and Operations Research, v. 34, p. 3016–3028.
Martí, R. (2003). Multi-start methods. Glover, F. e Kochenberger, G., editors,
Handbook of Metaheuristics, volume 57, p. 355–368. Springer.
Martí, Rafael; Resende, Mauricio G.C. e Ribeiro, Celso C. (2013). Multi-start
methods for combinatorial optimization. European Journal of Operational Research,
v. 226, n. 1, p. 1 – 8.
Mauch H, Hu JSMelzer MJ. (2003). Genetic algorithm approach for the closest
string problem. Proceedings of the 2003 IEEE Computer Society Conference on
Bioinformatics (CSB’03), p. 560–561, (2003).
McClure, Marcella A.; Vasi, Taha K. e Fitch, Walter M. (1994). Comparative
analysis of multiple protein- sequence alignment methods. Molecular Biology and
Evolution, v. 1994, p. 571–592.
Meneses, C. N.; Oliveira, C. A. S. e Pardalos, P. M. (2005). Optimization techniques
for string selection and comparison problems in genomics. Engineering in Medicine
and Biology Magazine, IEEE, v. 24, p. 81 – 87.
Meneses, Cláudio N.; Lu, Zhaosong; Oliveira, Carlos A. S. e Pardalos, Panos M.
(2004). Optimal solutions for the closest-string problem via integer programming.
INFORMS Journal of Computing, v. 16, n. 4, p. 419–429.
Montemanni, Roberto e Smith, Derek. (2008). Construction of constant gc-content
dna codes via a variable neighbourhood search algorithm. Journal of Mathematical
Modelling and Algorithms, Vol. 7, No. 3. (2008), pp. 311-326, v. 7, n. 3, p. 311–326.
Mousavi, Sayyed Rasoul e Esfahani, Navid Nasr. (2012). A grasp algorithm for
the closest string problem using a probability-based heuristic. Comput. Operations
Research, v. 39, n. 2, p. 238–248.
Noronha, T. F.; Resende, M. G. C. e Ribeiro, C. C. (2011). A biased randomkey genetic algorithm for routing and wavelength assignment. Journal of Global
Optimization, v. 50, p. 503–518.
Pappalardo, E. Combinatorial Optimization Methods for Problems in Genomics.
Phd thesis, University of Catania, Department of Mathematics and Computer Science, University of Catania, (2012).
Park, S. K. e Miller, K. W. (1988). Random number generators: good ones are hard
to find. Communications of the ACM, v. 31, p. 1192 – 1201.
Pasternak, J. J. (2002). Genética molecular humana: mecanismos das doenças
hereditárias. Editora Manole Ltda.
Referências Bibliográficas
65
Pinto, Eduardo Ribas; dosAnjos Formiga Cabral, Lucídio e Macambira, Elder Magalhães. (2006). Metaheurística grasp na resolução do problema da cadeia de caracteres
mais próxima. XXXVIII SBPO, (2006).
Prosdocimi, F.; Cerqueira, G.C.; Binneck, E.; Silva, A. N.A. F.and Reis; Junqueira, A. C.M.; Santos, A. C. F.; Júnior, A. N.; Wust, C. I.; Filho, F. C.; Kessedjian, J. L.; Petretski, J. H.; Camargo, L. P.; Ferreira, R. G. M.; Lima, R. P.;
Pereira, R. M.; Jardim, S.; Sampaio, V. S. e Folgueras-flatschart, A. V. Novembro/
Dezembro(2002). Bioinformática: Manual do usuário. Biotecnologia, Ciência &
Desenvolvimento, v. 5, n. 29, p. 12–25.
Reis, R.; Ritt, M.; Buriol, L. S. e Resende, M. G. C. (2011). A biased randomkey genetic algorithm for ospf and deft routing to minimize network congestion.
International Transactions in Operational Research, v. 18, p. 401–423.
Resende, Mauricio G. C. (2012). Biased random-key genetic algorithms with applications in telecommunications. TOP: An Official Journal of the Spanish Society of
Statistics and Operations Research, v. 20, n. 1, p. 130–153.
Roman, S. (1992). Coding and information theory. Graduate Texts in Mathematics,
Springer-Verlag, v. 134.
Ruiz, R. e Stützle, T. (2007). A simple and effective iterated greedy algorithm
for the permutation flowshop scheduling problem. European Journal of Operational
Research, v. 177, p. 2033–2049.
Saetrom, P.; Sneve, R.; Kristiansen, K.I.; Snøve, O.; Grünfeld, T.; Rognes, T. e
Seeberg, E. (2005). Predicting non-coding rna genes in escherichia coli with boosted
genetic programming. Nucleic Acids Res, v. 33, n. 10, p. 3263 – 3270.
Samanlioglu, F.; Ferrell, W. G.Jr. e Kurz, M. E. (2008). A memetic randomkey genetic algorithm for a symmetric multi-objective traveling salesman problem.
Computers and Industrial Engineering, v. 55, p. 439–449.
Senju, Shizuo e Toyoda, Yoshiaki. (1968). An approach to linear programming with
0 - 1 variables. Management Science, v. 15, p. 196 – 207.
Soleimani-damaneh, M. (2011). An optimization modelling for string selection in
molecular biology using pareto optimality. Applied Mathematical Modelling, v. 35,
n. 8, p. 3887–3892.
Spears, W. e deJong, K. (1991). On the virtues of parameterized uniform crossover.
Proceedings of the Fourth International Conference on Genetic Algorithms, p. 230–
236, San Mateo.
Stützle, T. Local Search Algorithms for Combinatorial Problems - Analysis, Improvements, and New Applications. PhD thesis, Darmstadt University of Technology,
Department of Computer Science, (1998).
Tanaka, Shunji. (2012). A heuristic algorithm based on lagrangian relaxation for
the closest string problem. Computers & Operations Research, v. v. 39, n. 3, p.
709–717.
Referências Bibliográficas
66
Watson, J. D. e Crick, F. H. (1953). Molecular Structure of Nucleic Acids; a
Structure for Deoxyribose Nucleic Acid. Nature, v. 171, n. 4356, p. 737–738.
Whitley, Darrell. (1993). A genetic algorithm tutorial. Statistics and Computing, v.
4, p. 65 – 85.
Yamamoto, Keity. Arredondamento randômico e o problema da sequência mais
próxima. Dissertação de Mestrado, Universidade Federal Fluminense, (2004).
Zörnig, Peter. (2011). Improved optimization modelling for the closest string and
related problems. Applied Mathematical Modelling, v. 35, n. 12, p. 5609–5617.
Download

heurísticas para o problema da cadeia de caracteres mais próxima