• Nenhum resultado encontrado

Universidade Federal do ABC Centro de Matemática, Computação e Cognição (CMCC) Omar Latorre Vilca

N/A
N/A
Protected

Academic year: 2021

Share "Universidade Federal do ABC Centro de Matemática, Computação e Cognição (CMCC) Omar Latorre Vilca"

Copied!
38
0
0

Texto

(1)

Universidade Federal do ABC

Centro de Matem´atica, Computa¸c˜ao e Cogni¸c˜ao (CMCC) P´os-Gradua¸c˜ao em Ciˆencia da Computa¸c˜ao

Omar Latorre Vilca

M´ETODOS PARA PROBLEMAS DE SELE ¸C ˜AO DE CADEIAS DE CARACTERES

Disserta¸c˜ao de Mestrado

(2)

Omar Latorre Vilca

M´ETODOS PARA PROBLEMAS DE SELE ¸C ˜AO DE CADEIAS DE CARACTERES

Disserta¸c˜ao de Mestrado

Disserta¸c˜ao de Mestrado apresentada ao Curso de P´os-Gradua¸c˜ao da Universidade Federal do ABC como requisito parcial para obten¸c˜ao do grau de Mestre em Ciˆencia da

Computa¸c˜ao

Orientador: Prof. Dr. Cl´audio Nogueira de Meneses

(3)

Ficha Catalogr´afica

Vilca, Omar Latorre.

M´etodos para Problemas de Sele¸c˜ao de Cadeias de Caracteres / Omar Latorre Vilca.

Santo Andr´e, SP: UFABC, 2013.

(4)
(5)

Omar Latorre Vilca

M´ETODOS PARA PROBLEMAS DE SELE ¸C ˜AO DE CADEIAS DE CARACTERES

Essa Disserta¸c˜ao de Mestrado foi julgada e aprovada para a obten¸c˜ao do grau de Mestre em Ciˆencia da Computa¸c˜ao no curso de P´os-Gradua¸c˜ao em Ciˆencia da

Computa¸c˜ao da Universidade Federal do ABC.

Santo Andr´e - SP - 2013

Prof. Dr. Ronaldo Cristiano Prati Coordenador do Curso

BANCA EXAMINADORA

Prof. Dr. Cl´audio Nogueira de Meneses

Prof. Dr. Jo˜ao Paulo Gois

Profa. Dra. Maristela Oliveira dos Santos

(6)

AGRADECIMENTOS

`

A DEUS, por ter me dado condi¸c˜oes de lutar e alcan¸car os objetivos pretendidos. Ao Prof. Dr. Ronaldo Cristiano Prati, coordenador do Programa de P´os-Gradua¸c˜ao em Ciˆencia da Computa¸c˜ao, pelo esfor¸co e dedica¸c˜ao e por estar sempre presente e sempre disposto a resolver os problemas com os quais tivemos que vivenciar.

Ao Prof. Dr. Claudio Nogueira de Meneses, ogrigado pela oportunidade, pela orien-ta¸c˜ao, pelos ensinamentos, ajuda e colabora¸c˜ao com o meu trabalho e pelas conversas e conselhos ao longo do per´ıodo do mestrado.

Ao Centro de Matem´atica, Computa¸c˜ao e Cogni¸c˜ao (CMCC) da Universidade Federal do ABC (UFABC), pelo apoio na realiza¸c˜ao deste trabalho.

Agrade¸co a CAPES e UFABC pelos financiamentos, em bolsas, para o desenvolvimento desta pesquisa.

(7)

Este trabalho contou com o aux´ılio financeiro das seguintes entidades:

• Universidade Federal do ABC - UFABC (bolsa de mestrado, institucional), de feve-reiro/2011 a outubro/2011;

(8)

Resumo

Nesta pesquisa propomos m´etodos para resolver um problema de sele¸c˜ao de cadeias de caracteres (strings) que surge na ´area de bioinform´atica. Este problema ´e conhecido pelo nome Closest String Problem (CSP) e pode ser definido assim: dado um conjunto finito S = {s1, s2, · · · , sn} com n strings, todas de mesmo tamanho m, sobre um alfabeto A,

deseja-se encontrar uma string x, de tamanho m, sobre A que minimiza o valor de d tal que para cada string si ∈ S tem-se dH(x, si) ≤ d. Por dH(x, s) queremos dizer a distˆancia

de Hamming entre as strings x e s e ela ´e calculada tendo em conta o n´umero de posi¸c˜oes em que as duas strings diferem. Por exemplo, se x = AT T e s = AT C, ent˜ao dH(x, s) = 1,

pois x e s diferem apenas na ´ultima posi¸c˜ao. O CSP pertence a classe de complexidade computacional NP-dif´ıcil e s˜ao conhecidos algoritmos de aproxima¸c˜ao e m´etodos exatos para resolver esse problema. Como objetivo principal da pesquisa, desejamos desenvolver m´etodos exatos baseados em programa¸c˜ao linear inteira.

(9)

Abstract

In this work we design methods to solve a string selection problem that arises in bioin-formatics. This problem is called Closest String Problem (CSP) and is defined as: given a finite set S = {s1, · · · , sn} with n strings, every string of size m, over an alphabet A,

we want to find a string x, of size m, over A that minimizes the value d such that for each string si ∈ S we have d

H(x, si) ≤ d. By dH(x, s) we mean the Hamming distance

between the strings x and s and it represents the number of positions the two strings differ. For example, if x = AT T and s = AT C then dH(x, s) = 1, since x and s differ at the

last position. The CSP is NP-hard and several methods have been proposed to solve the problem. Our main goal in this work is to design exact methods based on integer linear programming.

(10)

Sum´

ario

1 Introdu¸c˜ao 4

2 Defini¸c˜oes e Conceitos B´asicos 6

2.1 Problemas de Sele¸c˜ao de Strings . . . 6

2.2 Distˆancia de Hamming . . . 9

2.3 Conceitos B´asicos em Programa¸c˜ao Linear . . . 9

2.4 Programa¸c˜ao Linear Inteira (PLI) . . . 10

2.4.1 Algoritmo de Cutting Planes . . . 11

2.4.2 Algoritmo de Branch-and-Bound . . . 11

2.4.3 Algoritmo de Branch-and-Cut . . . 12

3 Trabalhos Anteriores 14 3.1 Heur´ıstica para o CSP . . . 14

4 Estudo em Combinat´oria Poli´edrica 16 4.1 Formula¸c˜ao em Programa¸c˜ao Inteira . . . 16

4.2 Nova Classe de Planos de Corte e sua Separa¸c˜ao . . . 18

4.3 Limitante Inferior Combinat´orio . . . 21

5 Resultados Computacionais 23 5.1 Ambiente dos Experimentos . . . 23

5.2 Instˆancias de Teste . . . 23

5.3 An´alise dos Resultados . . . 23

(11)

Cap´ıtulo 1

Introdu¸

ao

Robert E. Bixby, em [2], define um problema de otimiza¸c˜ao combinat´oria como: Sejam E um conjunto finito, S uma fam´ılia de subconjuntos de E e w ∈ R|E| uma fun¸c˜ao peso de valores reais definida sobre os elementos de E. O problema de otimiza¸c˜ao combinat´oria associado ´e encontrar um conjunto S∗ ∈ S tal que

w(S∗) = max

S∈S w(S)

onde w(S) =P

e∈Sw(e).

Nesta pesquisa desenvolveu-se m´etodos para resolver um problema de sele¸c˜ao de strings (cadeia de caracteres), conhecido por Closest String Problem (CSP). O CSP ´e um rele-vante problema de otimiza¸c˜ao combinat´oria da ´area de bioinform´atica e tem aplica¸c˜oes no desenvolvimento de rem´edios, conforme [5].

A defini¸c˜ao do CSP ´e baseada no conceito de distˆancia de Hamming: Dadas duas strings quaisquer, s e t, de mesmo tamanho (n´umero de caracteres), a distˆancia de Ham-ming, denotada por dH(s, t), mede o n´umero de posi¸c˜oes em que s e t diferem. Por

exemplo, se s =CCACT e t =TACCA, ent˜ao dH(s, t) = 4.

O CSP consiste em: dado um conjunto finito S ={s1, s2, · · · , sn} com n strings, todas

de mesmo tamanho m, sobre um alfabeto A, deseja-se encontrar uma string x, de tamanho m, sobre A, que minimiza o valor de d tal que para cada string si ∈ S tenha dH(x, si) ≤ d.

Em outras palavras, desejou-se encontrar uma string x que ´e mais pr´oxima a todas as strings em S, considerando como medida de proximidade a distˆancia Hamming.

(12)

Em [7] s˜ao apresentados modelos matem´aticos para problemas de sele¸c˜ao de strings, que mantˆem uma estreita liga¸c˜ao com o CSP. Estes problemas s˜ao definidos formalmente na subse¸c˜ao2.1. Decidimos estudar o CSP porque:

• Ele ´e um problema que surge durante o processo de cria¸c˜ao de certos rem´edios; • M´etodos desenvolvidos para resolver o CSP podem ajudar na compreens˜ao de como

resolver os problemas listados na subse¸c˜ao2.1;

• Acredita-se que ´e poss´ıvel desenvolver um m´etodo exato que ´e melhor do que o atualmente melhor m´etodo ([8]) para o CSP.

As contribui¸c˜oes com esta pesquisa s˜ao as seguintes:

• Identificou-se uma classe de inequa¸c˜oes v´alidas (cortes) para o poliedro apresentado em [8]. Criou-se um algoritmo de tempo polinomial em n, que separa essas ine-qua¸c˜oes;

• Criou-se uma f´ormula para o c´alculo de limitante inferior no valor de uma solu¸c˜ao ´

otima.

(13)

Cap´ıtulo 2

Defini¸

oes e Conceitos B´

asicos

Neste cap´ıtulo define-se cinco problemas associados ao Closest String Problem e m´etodos que podem ser utilizados para resolvˆe-los. Al´em disso, s˜ao lembrados v´arios conceitos e t´ecnicas usadas para solucionar problemas de otimiza¸c˜ao combinat´oria.

2.1

Problemas de Sele¸

ao de Strings

Nesta se¸c˜ao define-se formalmente cinco problemas de sele¸c˜ao de strings associados ao CSP, cujas vers˜oes de decis˜ao pertencem a classe de complexidade NP-Completo, conforme provado em [5]. Cada problema ´e exemplificado por uma instˆancia e uma solu¸c˜ao. Como ficar´a claro no pr´oximo cap´ıtulo, o estudo realizado para resolver instˆancias do CSP ´e ´util para resolver instˆancias daqueles problemas. As defini¸c˜oes formais desses problemas s˜ao as seguintes:

Farthest String Problem (FSP)

Dado um conjunto finito S ={s1, s2, · · · , sn} com n strings, cada uma de tamanho

m, sobre um alfabeto A, deseja-se encontrar uma string x de tamanho m sobre A, que maximiza d tal que para qualquer string si ∈ S, tem-se d

H(x, si) ≥ d.

Como exemplo de uma instˆancia do Farthest String Problem considere o conjunto de strings S = {AAACA,GTCTA,AATGC,CTTAC}. Uma solu¸c˜ao ´otima ´e dada pela string x =TCGAG com d = 4.

Closest Substring Problem (CSubSP)

Dado um conjunto finito S = {s1, s2, · · · , sn} com strings de tamanho no m´ınimo m sobre um alfabeto A, deseja-se encontrar uma string x de tamanho m sobre A, que minimiza d tal que para toda string si in S, a rela¸c˜ao d

H(x, y) ≤ d ´e verdadeira para

(14)

Como exemplo considere S = {AAT,CCAA,CCTA,TCA}. Uma solu¸c˜ao vi´avel ´e dada pela string ACA com d = 2.

Farthest Substring Problem (FSubSP)

Dado um conjunto finito S ={s1, s2, . . . , sn} com strings de tamanho no m´ınimo m sobre um alfabeto A, deseja-se encontrar uma string x de tamanho m sobre A, que maximiza d tal que para toda string si in S e toda substring y, de tamanho m, de si, tem-se dH(x, y) ≥ d.

Como exemplo considere S = {AAT,CCAA,CCTA,TCA}. Uma solu¸c˜ao vi´avel ´e a string ACA com d = 1.

Close to Most String Problem (CMSP)

Dado um conjunto finito S = {s1, s2, . . . , sn} com strings de tamanho m sobre um alfabeto A e um limiar k > 0, deseja-se encontrar uma string x de tamanho m sobre A, que maximiza o n´umero de strings si ∈ S tal que dH(x, si) ≤ k.

Como exemplo considere S = {AATCC,CCAAT,CCTAC,TCACC}. Se k = 3, ent˜ao uma solu¸c˜ao ´otima ´e CCTCT com quatro strings satisfazendo dH(x, si) ≤ 3. Se k = 2,

ent˜ao uma solu¸c˜ao ´otimza ´e ACAAC e trˆes strings respeitam dH(x, si) ≤ 2.

Distinguishing String Selection Problem (DSSP)

Dados dois conjuntos finitos de strings Sce Sf, todas as strings de tamanho no m´ınimo

m, sobre um alfabeto A, e dois n´umeros inteiros positivo kce kf, deseja-se encontrar uma

string x de tamanho m sobre A tal que para cada string sc∈ Sc, existe alguma substring

yc, de tamanho m, de scsatisfazendo dH(x, yc) ≤ kc, e para toda substring yf, de tamanho

m, de sf ∈ Sf tem-se dH(x, yf) ≥ kf.

Como exemplo, considere Sc = {AATCC,CCAAT,CCTAC,TCACC} e o conjunto

Sf = {AATAA,CCACT,GGTAC,TCAAC}. Se kc = 3 e kf = 2, ent˜ao ACACC ´e uma

solu¸c˜ao vi´avel.

Observe que os quatro primeiros problemas acima s˜ao problemas de otimiza¸c˜ao, en-quanto o ´ultimo ´e um problema de decis˜ao. Como dito no in´ıcio deste cap´ıtulo, estes cinco problemas mantˆem estreita rela¸c˜ao com o CSP.

A figura a seguir mostra as rela¸c˜oes entre os problemas, em termos das redu¸c˜oes, e consequentes complexidades computacionais. Por 2SAT, 3SAT e ISP queremos indicar os problemas 2-satisfatibilidade, 3-satisfatibilidade e Independent Set Problem, respecti-vamente. Lembre que ´e conhecido um algoritmo determin´ıstico de tempo polinomial para o 2SAT e que os problemas 3SAT e ISP pertencem a classe NP-Completo.

(15)

3SAT FSP DSSP FSubSP CSP CSubSP DSSP [5] [5] [5] [5] [5] [5] ISP FFMSP CMSP 2SAT [3] [3] [3]

(16)

2.2

Distˆ

ancia de Hamming

Uma m´etrica em um conjunto X ´e uma fun¸c˜ao, chamada fun¸c˜ao de distˆancia ou simples-mente distˆancia, dada por:

d : X × X → <,

onde < ´e o conjunto dos n´umeros reais. Para todo x, y, z ∈ X, esta fun¸c˜ao precisa satisfazer as seguintes condi¸c˜oes:

1. d(x, y) ≥ 0 (n˜ao-negatividade)

2. d(x, y) = 0 se e somente se x = y (identidade) 3. d(x, y) = d(y, x) (simetria)

4. d(x, z) ≤ d(x, y) + d(y, z) (desigualdade triangular).

Seja (Fm)no conjunto de todas as n-tuplas ordenadas a = a1a2...anonde cada ai ∈ Fm.

Fm ´e um alfabeto, o m-´esimo elemento ´e obtido do conjunto de sequˆencias de s´ımbolos

onde cada s´ımbolo ´e escolhido do conjunto Fm = {λ1, λ2, ..., λm} de m elementos

diferen-tes. A distˆancia de Hamming entre dois vetores x e y de (Fm)n ´e o n´umero de posi¸c˜oes

nas quais eles diferem. Isto ´e denotado por dH(x, y). Por exemplo, no (F2)5 temos

dH(00111, 11001) = 4, enquanto em (F3)4 obtemos dH(0122, 1220) = 3.

A distˆancia de Hamming ´e uma fun¸c˜ao distˆancia leg´ıtima ou uma m´etrica que deve satis-fazer as seguintes condi¸c˜oes, para todo x, y, z ∈ (Fm)n:

(i) dH(x, y) ≥ 0

(ii) dH(x, y) = 0 se e somente se x = y

(iii) dH(x, y) = dH(y, x)

(iv) dH(x, z) ≤ dH(x, y) + dH(y, z).

2.3

Conceitos B´

asicos em Programa¸

ao Linear

Como ´e pretendido resolver instˆancias do CSP utilizando uma abordagem baseada em combinat´oria poli´edrica, esta se¸c˜ao relembra alguns conceitos b´asicos em Programa¸c˜ao Linear. Os teoremas e defini¸c˜oes abaixo foram compilados de [4, 9,12].

(17)

de inequa¸c˜oes e equa¸c˜oes lineares. Os pontos nesta regi˜ao formam o conjunto de solu¸c˜oes vi´aveis do problema PL. Tal problema pode ser escrito na forma de matriz como:

min {cx : Ax ≥ b, x ∈ Rn+},

onde c ∈ Rn, A ´e uma matriz m × n de constantes reais e b ∈ Rm.

Teorema 2.1. O conjunto de solu¸c˜oes vi´aveis X = {x : Ax ≥ b, x ∈ Rn

+} para o problema

´e um conjunto convexo, i.e., qualquer ponto, exceto um v´ertice, em X ´e uma combina¸c˜ao linear convexa de outros dois pontos em X .

Defini¸c˜ao 2.1. O conjunto convexo X = {x : Ax ≥ b, x ∈ Rn+} ´e denominado poliedro. Se X ´e limitado, i.e., X ⊆ {x : −w ≤ xj ≤ w, ∀ j ∈ {1, 2, · · · , n}} para algum w ∈ R+,

ent˜ao X ´e chamado de politopo.

Defini¸c˜ao 2.2. Um v´ertice de um poliedro X ´e qualquer ponto x ∈ X o qual n˜ao pode ser expresso como uma combina¸c˜ao convexa de outros pontos de X \{x}.

Teorema 2.2. Se o valor ´otimo de uma fun¸c˜ao linear num poliedro X ⊆ Rn´e finito, ent˜ao

ele ´e atingido em pelo menos um v´ertice. Se este for obtido em mais que um v´ertice, ent˜ao pode ser obtido tamb´em por qualquer ponto que seja uma combina¸c˜ao linear convexa destes v´ertices.

Teorema 2.3. Um problema de PL pode ser resolvido em tempo polinomial sobre n, m e θ, onde n ´e o n´umero de vari´aveis do problema, m ´e o n´umero de restri¸c˜oes, e θ ´e o maior coeficiente da matriz A.

2.4

Programa¸

ao Linear Inteira (PLI)

Nesta se¸c˜ao discutimos alguns m´etodos normalmente utilizados na resolu¸c˜ao de problemas, que admitem uma formula¸c˜ao em programa¸c˜ao linear, onde exige-se solu¸c˜oes inteiras. Os conceitos discutidos nesta se¸c˜ao foram compilados de [4, 10,13].

Considere o problema de programa¸c˜ao linear abaixo: min {cx : Ax ≥ b, x ∈ Rn+},

onde c ∈ Rn, A ´e uma matriz m × n de constantes reais e b ∈ Rm.

(18)

Geralmente problemas PLI 0-1 pertencem a classe NP-dif´ıcil. Uma maneira de resolver estes problemas ´e utilizando suas relaxa¸c˜oes lineares. Numa relaxa¸c˜ao linear as restri¸c˜oes de integralidade s˜ao substitu´ıdas por restri¸c˜oes lineares. Existem duas abordagens cl´ as-sicas para resolver problemas PLI 0-1 utilizando relaxa¸c˜oes lineares: (a) algoritmo de Cutting Planes Fracion´ario (ACPF) e o algoritmo de branch-and-bound ou (b) enumera-¸c˜ao impl´ıcita. Denotaremos por S o conjunto de solu¸c˜oes vi´aveis de um problema PLI 0-1.

2.4.1

Algoritmo de Cutting Planes

ACPF s˜ao baseados no uso de inequa¸c˜oes v´alidas (cortes) para S, i.e, inequa¸c˜oes que s˜ao satisfeitas por todos os pontos de S.

A cada itera¸c˜ao i de ACPF, uma relaxa¸c˜ao LPi do problema P LI ´e resolvida. Seja

xi uma solu¸c˜ao ´otima obtida ao se resolver a relaxa¸c˜ao linear LPi. Se xi est´a em S, o

algoritmo p´ara, retornando xi como uma solu¸c˜ao ´otima do problema P LI. Caso contr´ario,

a relaxa¸c˜ao deve ser melhorada. Para isto, encontra-se uma desigualdade v´alida πx ≥ π0

para S que ´e violada por xi. Uma nova itera¸c˜ao ´e executada para a relaxa¸c˜ao LPi+1,

obtida de LPi incluindo-se a desigualdade πx ≥ π 0.

Sejam zi e zi+1 os valores das solu¸c˜oes ´otimas de LPi e LPi+1 respectivamente, isto ´e, zi = cxi e zi = cxi+1. Assumindo que o P LI ´e um problema de minimiza¸c˜ao, tem-se

que zi+1 ≥ zi, ou seja, o limitante inferior fornecido pelo valor ´otimo da relaxa¸c˜ao linear

cresce monotonicamente a cada itera¸c˜ao, aproximando-se do valor ´otimo do P LI.

O estudo inicial de adi¸c˜ao de desigualdades v´alidas para problemas PLI gerais foi feito por Gomory na d´ecada de 50. Embora o algoritmo proposto por ele sempre termine em tempo finito, as desigualdades que ele sugeriu para adicionar `a formula¸c˜ao (cortes de Gomory) n˜ao eram eficientes na pr´atica, pois o algoritmo torna-se muito lento.

Mais tarde, percebeu-se que o motivo do insucesso obtido pela aplica¸c˜ao dos cortes de Gomory, era decorrente do seu excesso de generalidade. Independente do problema P LI que se esteja resolvendo, sempre ´e poss´ıvel gerar um corte de Gomory que elimina uma solu¸c˜ao cont´ınua. No entanto, esse corte pode n˜ao ser suficiente para capturar a estrutura da envolt´oria convexa das solu¸c˜oes inteiras do P LI. Cortes com essa propriedade s˜ao o objeto de estudo da Combinat´oria Poli´edrica que fez ressurgir, principalmente a partir da d´ecada de 80, o interesse pelos algoritmos de corte.

2.4.2

Algoritmo de Branch-and-Bound

(19)

A primeira ´e a decomposi¸c˜ao do problema original em subproblemas. A segunda opera¸c˜ao envolve o c´alculo de limites inferiores (ou superiores) ao valor da fun¸c˜ao objetivo. O prop´osito ´e acelerar o processo de descarte de subproblemas que n˜ao podem gerar solu¸c˜oes promissoras, diminuindo, consequentemente, a enumera¸c˜ao.

Normalmente, a decomposi¸c˜ao ´e constru´ıda recursivamente. Isto permite uma repre-senta¸c˜ao gr´afica de todo o processo em termos de uma ´arvore de enumera¸c˜ao. Nesta representa¸c˜ao, os filhos de um dado n´o formam a decomposi¸c˜ao da regi˜ao vi´avel de seu pai.

Em geral, para problemas P LI 0-1, a ´arvore de enumera¸c˜ao ´e uma ´arvore bin´aria. Cada n´o i da ´arvore corresponde a uma relaxa¸c˜ao linear LPi do problema P LI definido em um subconjunto Si de S. Seja xi uma solu¸c˜ao ´otima encontrada para LPi e zi = cxi. Dependendo do valor de zi (bound), o n´o i pode ser expandido (branching) para outros dois

n´os (seus filhos) ou pode ser cortado (ou podado), i.e, o subconjunto de solu¸c˜oes vi´aveis do n´o i ´e particionado em dois novos subconjuntos ou ele n˜ao ser´a mais particionado durante os passos seguintes do algoritmo. O algoritmo termina quando todos os n´os estiverem podados. Retorna-se como solu¸c˜ao do P LI, a solu¸c˜ao inteira do n´o da ´arvore com menor valor (para um problema de minimiza¸c˜ao) de fun¸c˜ao objetivo.

2.4.3

Algoritmo de Branch-and-Cut

Seja Conv(S) a envolt´oria convexa do conjunto vi´avel S. A envolt´oria convexa de S ´e um poliedro e portanto, pode ser descrita por um sistema de desigualdades e igualdades lineares. Se o sistema linear que descreve completamente Conv(S) est´a dispon´ıvel, o problema P LI pode, em princ´ıpio, ser resolvido eficientemente por programa¸c˜ao linear, visto que todos os pontos extremos s˜ao solu¸c˜oes vi´aveis inteiras em S (veja defini¸c˜ao2.2 e teorema2.3). Infelizmente, para problemas que pertencem a classe N P -dif´ıcil, geralmente o n´umero de desigualdades de tal sistema ´e exponencial, no tamanho da entrada, e somente algumas desigualdades da descri¸c˜ao de Conv(S) s˜ao conhecidas.

Assuma, portanto que uma certa classe F de desigualdades v´alidas para Conv(S) s˜ao conhecidas. Al´em disso, dado um ponto qualquer x ∈ Rn

+ assuma que disp˜oe-se de um

algoritmo que procura por uma desigualdade em F que ´e violada por x. Tal algoritmo ´e chamado uma rotina de separa¸c˜ao para F .

Branch-and-Cut ´e um m´etodo para resolver problemas PLI, que incorpora uma fase de cutting plane ao algoritmo de branch-and-bound. Na fase de cutting plane o algortimo s´o ir´a gerar desigualdades que perten¸cam `a classe F , definida anteriormente.

Para cada n´o i da ´arvore de enumera¸c˜ao, Pi = {x ∈ Rm+n : Aix ≥ b, 0 ≤ x ≤ 1} ´e o

(20)

linear e ela tem vari´aveis fracion´arias, a rotina de separa¸c˜ao ´e chamada para procurar uma desigualdade violada em F . Se a rotina de separa¸c˜ao retorna uma desigualdade πx ≥ π0, esta desigualdade ´e inclu´ıda no sistema de desigualdades definindo Pi, e LPi ´e

resolvido novamente. Continuamos fazendo isto at´e xi ser inteiro ou zi ser maior do que o atual upper bound dispon´ıvel, ou a rotina de separa¸c˜ao falhar em produzir uma nova desigualdade em F que corte o ponto xi. Neste ´ultimo caso, uma vari´avel ´e escolhida para fazer um branching.

(21)

Cap´ıtulo 3

Trabalhos Anteriores

Neste cap´ıtulo descrevemos um trabalho encontrado na literatura cient´ıfica que trata o CSP. Este trabalho prop˜oe uma heur´ıstica e trˆes modelos matem´aticos para o CSP e mostra v´arios resultados computacionais.

3.1

Heur´ıstica para o CSP

A heur´ıstica proposta em [8] gera solu¸c˜oes iniciais vi´aveis para o CSP e realiza uma busca local nessas solu¸c˜oes. Verifica-se que o algoritmo1gera resultados iniciais e posteriormente no algoritmo2constroem-se as solu¸c˜oes a partir da solu¸c˜ao inicial. Impressionantemente, este algoritmo ´e capaz de produzir resultados de excelente qualidade, conforme comprovam os experimentos computacionais mostrados no cap´ıtulo5.

O algoritmo1seleciona uma das strings em S e a modifica at´e que uma solu¸c˜ao local-mente ´otima seja encontrada. Conforme provado em [8], o algoritmo1tem complexidade de tempo O(nmN ), para N ≥ n.

No primeiro passo, o algoritmo procura por uma solu¸c˜ao s ∈ S que seja a mais pr´oxima a todas as demais strings em S. No segundo passo, as distˆancias d entre s e o resto das strings s˜ao calculadas. No ´ultimo passo do algoritmo um procedimento de busca local ´e aplicado como segue:

• Seja r uma string em S tal que para dH(r, si), onde i ∈ {1, · · · , n}, seja a m´axima,

e seja s uma solu¸c˜ao atual. Logo, para i ∈ {0, ..., m}, se si 6= ri ent˜ao trocamos os

valores si por ri cuja solu¸c˜ao s tende a melhorar. A seguir tal troca ´e efetuada e a

distˆancia Hamming entre s e as demais strings em S s˜ao atualizadas.

(22)

Input: Instˆancia S = {s1, · · · , sn}

Output: String s, distˆancia d s ← {y ∈ S | minsi∈SdH(y, si)}

d ← maxi∈{1,...,n}dH(s, si)

Melhora Solu¸c˜ao(s, d, N )

Algoritmo 1: Gera solu¸c˜oes vi´aveis para o CSP

Input: instˆancia S, solu¸c˜ao corrente s, distˆancia d e parˆametro N (n´umero de itera¸c˜oes)

Output: solu¸c˜ao resultante s e distˆancia d for k ← 1 to n do

d0k ← dk← dH(sk, s)

end

for i ← 1 to N do

b ← i tal que dH(si, s) = d /* resolva o empate aleatoriamente */

for j ← 1 to m tal que sb

j 6= sj do

max ← −1

for k ← 1 to n tal que k 6= b do

if (sj = skj) e (sbj 6= skj) then dk ← dk+ 1

else if (sj 6= skj) e (sbj = skj) then dk← dk− 1

if (max < dk) then max ← dk

end

if d ≥ max /* n˜ao ´e pior */ then d ← max; tj ← sbj for k ← 1 to n do d0k ← dk else for k ← 1 to n do dk ← d0k end end end

Algoritmo 2: Terceiro passo do Algoritmo 1: Melhora Solu¸c˜ao

(23)

Cap´ıtulo 4

Estudo em Combinat´

oria Poli´

edrica

Focados no estudo poli´edrico do Closest String Problem (CSP), alcan¸camos os seguintes resultados:

(a) Uma classe de inequa¸c˜oes v´alidas para uma formula¸c˜ao proposta em [8] e

(b) Um algoritmo de complexidade polinomial que separa as inequa¸c˜oes daquela classe.

Os resultados mostrados neste cap´ıtulo fazem parte de uma colabora¸c˜ao com o Prof. Giuseppe Lancia, que trabalha no Department of Mathematical and Computer Science, University of Udine, Italy.

Come¸camos o estudo relembrando uma formula¸c˜ao em programa¸c˜ao Linear Inteira 0-1 (PLI 0-1) para o CSP, descrita em [8], em seguida apresentamos uma nova classe de planos de corte e ent˜ao um algoritmo de branch-and-cut.

4.1

Formula¸

ao em Programa¸

ao Inteira

Em [8] s˜ao apresentadas trˆes formula¸c˜oes em PLI 0-1 para o CSP. A terceira delas ´e base-ada no teorema a seguir, que reduz o espa¸co das solu¸c˜oes vi´aveis para qualquer instˆancia do CSP.

Teorema 4.1. [8] Dada uma instˆancia do Closest String Problem, existe uma solu¸c˜ao ´

otima onde o caracter ´otimo na posi¸c˜ao k est´a tamb´em na posi¸c˜ao k em uma das strings no conjunto S = {s1, s2, . . . , sn} de strings.

Exemplo 4.1. Seja S = {AATCC,CCAAT,CCTAC,TCACC}. Defina Vk = ∪ni=1{sik}

para k = 1, . . . , m. Ent˜ao os conjuntos Vk s˜ao: V1 = {A, C, T }, V2 = {A, C}, V3 =

(24)

´

otima, x = (x1, x2, x3, x4, x5), ´e suficiente atribuir ao componente xk, um elemento do

conjunto Vk para j = 1, . . . , 5. Assim, x =ACTAT ´e, por exemplo, uma solu¸c˜ao vi´avel. 

A partir da seguinte defini¸c˜ao para as vari´aveis bin´arias xj,k

xj,k =

(

1 se o caracter j ´e usado na posi¸c˜ao k em uma solu¸c˜ao 0 caso contr´ario

os autores em [8] propuseram a formula¸c˜ao:

min d (4.1) s.a.: X j∈Vk xj,k = 1 k = 1, . . . , m (4.2) d ≥ m − m X k=1 xsi k,k i = 1, . . . , n (4.3) xj,k ∈ {0, 1} j ∈ Vk; k = 1, . . . , m (4.4) d ≥ 0 e inteiro (4.5)

Note que esta formula¸c˜ao tem m + n restri¸c˜oes e 1 +Pm

k=1|Vk| vari´aveis de decis˜ao. A

restri¸c˜ao (4.2) faz com que cada vetor solu¸c˜ao x tenha na posi¸c˜ao k um dos caracteres em Vk. A restri¸c˜ao (4.3) calcula a distˆancia de Hamming entre o vetor solu¸c˜ao x e as strings

em S. A restri¸c˜ao (4.4) faz com que as vari´aveis xj,k assumam valores 0 ou 1, enquanto

que a restri¸c˜ao (4.5) garante que a vari´avel d seja um n´umero inteiro n˜ao negativo. Por motivo ´obvios, desejamos minimizar o valor de d.

Conforme relatado em [8], a formula¸c˜ao mostrada acima ´e muito forte. Isto ´e, os valores das relaxa¸c˜oes lineares, para as v´arias instˆancias testadas, tiveram valores muito pr´oximos aos valores das solu¸c˜oes ´otimas encontradas.

Os resultados descritos naquela referˆencia mostraram evidˆencias de que o m´etodo branch-and-bound, l´a utilizado, teve mais dificuldades para resolver instˆancias com alfa-betos com poucos caracteres. Por exemplo, instˆancias com alfabeto bin´ario mostraram-se mais dif´ıceis, para o branch-and-bound, do que instˆancias cujo alfabeto tinha quatro ca-racteres. Esta rela¸c˜ao ´e investigada no cap´ıtulo 5, Experimentos Computacionais.

(25)

4.2

Nova Classe de Planos de Corte e sua Separa¸

ao

Considere o Programa Linear (PL) obtido a partir da relaxa¸c˜ao da formula¸c˜ao descrita na se¸c˜ao anterior. Isto ´e, considere

P L :                min d s.a.: P j∈Vkxj,k = 1 k = 1, . . . , m d ≥ m −Pm k=1xsi k,k i = 1, . . . , n 0 ≤ xj,k ≤ 1 j ∈ Vk; k = 1, . . . , m d ≥ 0

Note os dom´ınios das vari´aveis xj,k e d no programa linear acima.

Assuma que temos uma solu¸c˜ao vi´avel, de valor D, para uma instˆancia do CSP. Possi-velmente uma boa solu¸c˜ao vi´avel, assim que D ´e provavelmente ´otimo. Esta boa solu¸c˜ao vi´avel poderia, por exemplo, ser obtida utilizando um procedimento de arredondamento a partir da solu¸c˜ao da relaxa¸c˜ao linear da formula¸c˜ao acima ou a heur´ıstica descrita na se¸c˜ao3.1.

Seja S = {s1, s2, ..., sn}, com |si| = m para i = 1, . . . , n. Tome qualquer string si ∈ S

e considere qualquer subconjunto B de si consistindo de D caracteres. Comparando-se

as correspondentes posi¸c˜oes de B em si, tem-se que uma solu¸c˜ao ´otima para S n˜ao pode

ser diferente em todos os caracteres em B, caso contr´ario esta solu¸c˜ao teria valor maior ou igual a D. Como j´a tem-se uma solu¸c˜ao de valor D, ent˜ao procura-se por uma solu¸c˜ao de valor menor ou igual D − 1. Portanto, conclu´ı-se que

X

k∈Ind(B)

xsi

k,k ≥ 1 (4.6)

´e uma inequa¸c˜ao v´alida (corte) para o PL, onde Ind(B) ´e o conjunto das ´ındices de B em si.

Exemplo 4.2. Seja S = {s1, s2, s3}, onde s1 = ACT , s2 = CCG e s3 = T CA.

Conside-rando o resultado no Teorema 4.1, tem-se que uma solu¸c˜ao ´otima x = (x1, x2, x3) para S

satisfaz x1 ∈ V1 = {A, C, T }, x2 ∈ V2 = {C} e x3 ∈ V3 = {A, G, T }. Observe que a string

x = ACG ´e uma solu¸c˜ao vi´avel e tem valor 2.

(26)

s˜ao:

xA,1+ xC,2 ≥ 1

xA,1+ xT ,3 ≥ 1

xC,2+ xT ,3 ≥ 1

Aplicando-se a mesma ideia para s2 = CCG, obtemos os cojuntos de ´ındices Ind(CC) =

{1, 2}, Ind(CG) = {1, 3} e Ind(CG) = {2, 3} e portanto os cortes: xC,1+ xC,2≥ 1

xC,1+ xG,3≥ 1

xC,2+ xG,3≥ 1

Finalmente, para s3 = T CA obtem-se os cojuntos de ´ındices Ind(T C) = {1, 2}, Ind(T A) =

{1, 3} e Ind(CA) = {2, 3} e portanto os cortes: xT ,1+ xC,2 ≥ 1

xT ,1+ xA,3 ≥ 1

xC,2+ xA,3 ≥ 1

Com isto conclu´ı-se o exemplo. 

Existem n × mD inequa¸c˜oes poss´ıveis (isto ´e um n´umero exponencial, visto que D pode ser proporcional a m). Agora mostra-se como encontrar um corte violado (se ele existe) em tempo polinomial.

Teorema 4.2. Inequa¸c˜oes (4.6) podem ser separadas em tempo polinomial, nominalmente em O(nm log m).

Demonstra¸c˜ao. Suponha que x∗ ´e uma solu¸c˜ao fracion´aria ´otima obtida pela relaxa¸c˜ao linear. Considere cada string si ∈ S, uma por vez. Para k = 1, . . . , m defina

aj = x∗si k,k

Por exemplo, para s1 temos

a1 = x∗s1 1,1, a2 = x ∗ s1 2,2, a3 = x ∗ s1 3,3, . . . , am−1 = x ∗ s1 m−1,m−1, am = x ∗ s1 m,m.

Considerando o Exemplo4.2, temos para s1 = ACT : a1 = x∗A,1, a2 = x∗C,2, a3 = x∗T ,3.

Agora ordene os aj em ordem n˜ao decrescente, ap(1) ≤ ... ≤ ap(m), e denote por B o

(27)

B alcan¸ca a m´ınima soma poss´ıvel de x∗ com rela¸c˜ao a si. Se esta soma for menor que 1,

ent˜ao teremos encontramos uma inequa¸c˜ao (4.6) violada; caso contr´ario n˜ao h´a inequa¸c˜oes violadas para si, e ent˜ao passamos para a an´alise de si+1. Ou seja, sePD

k=1ap(k) < 1 ent˜ao

a inequa¸c˜ao PD

k=1xsi[p(k)],p(k) ≥ 1 precisa ser inclu´ıda no modelo linear.

Para mostrar como ocorre o funcionamento do algoritmo considere o seguinte exemplo. Exemplo 4.3. Seja S = {AT T GGA, CT GAT G, CT GACT, AGT CGA, GCCT GT } uma instˆancia do CSP. A partir do conjunto S contrua os conjuntos Vi da seguinte maneira:

V1 = {A, C, G}, V2 = {C, G, T }, V3 = {C, G, T }, V4 = {A, C, G, T }, v5 = {C, G, T } e

v6 = {C, G, T }. O correspondente modelo em programa¸c˜ao linear ´e:

min d s.a. : xA,1+ xC,1+ xG,1= 1 xC,2+ xG,2+ xT ,2 = 1 xC,3+ xG,3+ xT ,3 = 1 xA,4+ xC,4+ xG,4+ xT ,4= 1 xC,5+ xG,5+ xT ,5 = 1 xA,6+ xG,6+ xT ,6= 1 d + xA,1+ xT ,2+ xT ,3+ xG,4+ xG,5+ xA,6 ≥ 6 d + xC,1+ xT ,2+ xG,3+ xA,4+ xT ,5+ xG,6≥ 6 d + xC,1+ xT ,2+ xG,3+ xA,4+ xC,5+ xT,6 ≥ 6 d + xA,1+ xG,2+ xT ,3+ xC,4+ xG,5+ xA,6≥ 6 d + xG,1+ xC,2+ xC,3+ xT ,4+ xG,5+ xT ,6 ≥ 6 0 ≤ xj,k ≤ 1 j ∈ Vk; k = 1, . . . , 6 d ≥ 0

Uma solu¸c˜ao ´otima para o programa linear acima ´e dada por: d = 3.666667, xA,1 =

0.75, xC,1 = 0.25, xT,2 = 0.583333, xG,2 = 0.416667, xG,3 = 1.0, xC,4 = 0.166667, xT ,4 =

0.833333, xG,5 = 1.0, xG,6 = 0.5, xT ,6 = 0.5 e todas as outras vari´aveis tˆem valores iguais

a zero. Sendo d = 3.666667 segue que, em uma solu¸c˜ao ´otima inteira, o valor de d precisa ser maior ou igual a 4. Adicionando o plano de corte d ≥ 4 ao programa linear e resolvendo-o novamente, obtemos a solu¸c˜ao: d = 4.0, xA,1 = 0.5, xC,1 = 0.5, xT,2 = 0.5,

xG,2 = 0.5, xG,3 = 1.0, xT ,4 = 1.0, xG,5 = 1.0, xG,6 = 1.0 e todas as outras vari´aveis tˆem

valores iguais a zero.

(28)

Hamming de x para as strings em S s˜ao: d(x, s1) = d(AT T GGA, AT GT CG) = 4 d(x, s2) = d(CT GAT G, AT GT CG) = 3 d(x, s3) = d(CT GACT, AT GT CG) = 3 d(x, s4) = d(AGT CGA, AT GT CG) = 5 d(x, s5) = d(GCCT GT, AT GT CG) = 5

Consideramos agora a classe de cortes (4.6): para D = 5 as seguintes inequa¸c˜oes s˜ao violadas:

xG,2+ xT ,3+ xC,4+ xG,5+ xA,6 ≥ 1 (4.7)

xG,1+ xC,2+ xC,3+ xG,5+ xT,6 ≥ 1 (4.8)

As inequa¸c˜oes (4.7) e (4.8) foram determinadas a partir de s4 e s5, respectivamente. Incluindo estas inequa¸c˜oes no programa linear, junto com d ≥ 4, e resolvendo o programa linear novamente obtemos uma solu¸c˜ao ´otima inteira dada por x = CT CCGG e d = 4. Comparando x com as strings em S vemos:

d(x, s1) = d(AT T GGA, CT CCGG) = 4 d(x, s2) = d(CT GAT G, CT CCGG) = 3 d(x, s3) = d(CT GACT, CT CCGG) = 4 d(x, s4) = d(AGT CGA, CT CCGG) = 3 d(x, s5) = d(GCCT GT, CT CCGG) = 4 

4.3

Limitante Inferior Combinat´

orio

Agora estabelece-se um limite inferior no valor de qualquer solu¸c˜ao ´otima para qualquer instˆancia do CSP. Para cada posi¸c˜ao j da string si ∈ S, denote por Sα

j o subconjunto de

strings de S que tˆem o caracter α na posi¸c˜ao j. Defina djα= n − |Sjα|. Em palavras, djα

(29)

Lema 4.1. L ´e um limitante inferior v´alido para o CSP.

Demonstra¸c˜ao. Independentemente de qual caracter aparece na posi¸c˜ao j em uma solu¸c˜ao, ele entrar´a em conflito com no m´ınimo dj strings naquela posi¸c˜ao. Somando sobre todas

as posi¸c˜oes, este ´e o n´umero total de conflitos (i.e., a soma das distˆancias de Hamming) da solu¸c˜ao com rela¸c˜ao as strings da instˆancia, e dividindo por n obtemos que a m´edia da distˆancia de Hamming de qualquer solu¸c˜ao precisa ser no m´ınimo d

Pm j=1dj

n e. Mas como o

m´aximo ´e no m´ınimo a m´edia (e podemos tamb´em arredondar para o primeiro n´umero inteiro), obtemos o lema.

(30)

Cap´ıtulo 5

Resultados Computacionais

Neste cap´ıtulo apresentamos os experimentos computacionais realizados sobre instˆancias do CSP.

5.1

Ambiente dos Experimentos

Todas as implementa¸c˜oes foram desenvolvidas em C++ e utilizou-se o compilador Gnu C++ sem otimiza¸c˜oes. Os testes foram realizados em um computador com a seguinte configura¸c˜ao: Dell processador Intel Core I5 3.33 Ghz com 4 GB de mem´oria RAM e sistema operacional Linux Ubuntu 11.04 com endere¸camento de 32 bits. O solver IBM ILOG CPLEX vers˜ao 12.4 foi utilizado para resolver relaxa¸c˜oes lineares e na implemen-ta¸c˜ao do branch-and-cut. Deste ponto em diante do texto trata-se por CPLEX o solver IBM ILOG CPLEX vers˜ao 12.4.

5.2

Instˆ

ancias de Teste

Noventa e uma instˆancias do CSP foram geradas utilizando o gerador de instˆancias des-crito na referˆencia [8]. Estas instˆancias consideram alfabetos com dois, quatro e vinte caracteres.

5.3

An´

alise dos Resultados

(31)

seja, o modelo de programa¸c˜ao linear correspondente a uma instˆancia ´e resolvido e caso a sua solu¸c˜ao seja fracion´aria, ent˜ao s˜ao gerados todos os cortes v´alidos para esta solu¸c˜ao.

Utilizando a classe de inequa¸c˜oes, discutida no cap´ıtulo anterior, para aquela solu¸c˜ao, cortes s˜ao inseridos no modelo de programa¸c˜ao linear, e a relaxa¸c˜ao linerar ´e novamente computada. Caso a nova solu¸c˜ao seja inteira o m´etodo para, caso contr´ario novos cortes s˜ao inseridos ao modelo e o processo ´e repetido.

A segunda abordagem ´e simplesmente resolver os modelos de programa¸c˜ao linear in-teira correspondentes `as instˆancias, utilizando o CPLEX.

Os resultados obtidos com as implementa¸c˜oes s˜ao apresentados nas Tabelas5.1 a 5.4. Os cabe¸calhos nas tabelas indicam:

• Instˆancia: o tamanho da instˆancia (n, m) e a semente utilizada para ger´a-la;

• Relaxa¸c˜ao linear: (OPT: valor ´otimo, CPU: tempo de CPU, em horas, minutos e segundos, para calcular a relaxa¸c˜ao linear);

• Plano de Cortes: (M´etodo padr˜ao de planos de cortes), informando o n´umero de planos de cortes inseridos no n´o raiz da ´arvore de enumera¸c˜ao, o valor de uma solu¸c˜ao ´otima obtido com esta t´ecnica e o tempo de CPU, e

• Programa¸c˜ao Inteira: (OPT: valor ´otimo, CPU: tempo de CPU, em horas, minutos e segundos, para encontrar uma solu¸c˜ao ´otima inteira).

Foram realizados diversos experimentos com instˆancias de diferentes tamanhos. Dos resultados mostrados nas tabelas conclui-se:

(a) O modelo em programa¸c˜ao linear fornece excelentes limitantes inferiores aos valores de solu¸c˜oes ´otimas inteiras;

(b) Foram encontradas relativamente muitas inequa¸c˜oes violadas no n´o raiz da ´arvore de eumera¸c˜ao do branch-and-cut;

(32)

Tabela 5.1: Instˆancias do CSP considerando um alfabeto com dois caracteres

Instˆancia Relaxa¸c˜ao linear Planos de Corte Programa¸c˜ao Inteira

n m Semente OPT CPU NumPC OPT CPU OPT CPU

10 1000 543 375,9 < 1s 0 377 < 1s 377 1s 10 1250 65743 473 < 1s 0 474 < 1s 474 1s 10 1500 65743 566,4 < 1s 10 567 < 1s 567 < 1s 10 1750 4432 650,8 < 1s 0 652 1s 652 2s 10 2000 543 750,8 < 1s 0 752 < 1s 752 1s 10 2500 344 945,1 < 1s 20 946 < 1s 946 < 1s 10 3000 34567 1128 < 1s 0 1129 < 1s 1129 1s 10 3500 344 1309,8 < 1s 16 1311 1s 1311 2s 10 4000 4432 1516 < 1s 0 1517 < 1s 1517 1s 10 4500 543 1696,6 < 1s 0 1697 < 1s 1697 < 1s 10 5000 34567 1892,6 < 1s 20 1893 1s 1893 1s 15 1000 344 396,6 < 1s 231 397 6s 397 12s 15 1250 543 498,7 < 1s 282 500 13s 500 14s 15 1500 34567 591,6 < 1s 335 592 7s 592 13s 15 1750 4432 690,2 < 1s 414 691 6s 691 6s 15 2000 344 797,9 < 1s 796 799 31s 799 34s 15 2500 65743 987,7 < 1s 889 989 1m17s 989 1m19s 15 3000 34567 1186,5 < 1s 710 1187 32s 1187 38s 15 3500 4432 1381,1 < 1s 1208 1382 1m13s 1382 1m14s 15 4000 34567 1588 < 1s 1057 1589 2m13s 1589 2m15s 15 4500 344 1779 < 1s 6125 1780 30m56s 1780 31m3s 15 5000 543 1985,5 < 1s 4232 1986 20m35s 1986 20m42s

(33)

Tabela 5.2: Instˆancias do CSP considerando um alfabeto com quatro caracteres

Instˆancia Relaxa¸c˜ao Linear Planos de Corte Programa¸c˜ao Inteira

n m Semente OPT CPU NumPC OPT CPU OPT CPU

(34)

Tabela 5.3: Instˆancias do CSP considerando um alfabeto com quatro caracteres

Instˆancia Relaxa¸c˜ao Linear Planos de Corte Programa¸c˜ao Inteira

n m Semente OPT CPU NumPC OPT CPU OPT CPU

(35)

Tabela 5.4: Instˆancias do CSP considerando um alfabeto com vinte caracteres

Instˆancia Relaxa¸c˜ao linear Planos de Corte Programa¸c˜ao Inteira

n m Semente OPT CPU NumPC OPT CPU OPT CPU

(36)

Cap´ıtulo 6

Coment´

arios Finais

Esta disserta¸c˜ao ´e a respeito do Closest String Problem (CSP), um problema de otimiza¸c˜ao combinat´oria que aparece na ´area de Biologia Computacional. Dada a sua importˆancia, dezenas de artigos foram publicados sobre este problema. O CSP pertence a classe de com-plexidade NP-dif´ıcil e diversas t´ecnicas foram aplicadas para desenvolver algoritmos para o mesmo. S˜ao tamb´em conhecidos algoritmos de aproxima¸c˜ao, heur´ısticas sem comprova-¸c˜ao de garantia de otimalidade e m´etodos exatos (branch-and-cut) para resolver instˆancias do problema.

Na referˆencia [8] foram propostos trˆes formula¸c˜oes em programa¸c˜ao linear inteira para o CSP. Nesta disserta¸c˜ao continuou-se o trabalho iniciado em [8] e propomos uma classe de inequa¸c˜oes v´alidas (planos de corte) juntamente com um algoritmo de separa¸c˜ao destas. Provou-se que embora o n´umero destas inequa¸c˜oes seja exponencial em n e m, respectiva-mente n´umero de strings e o tamanho destas strings, o problema de separa¸c˜ao ´e resolvido em tempo polinomial em n e m. Este ´e um importante resultado te´orico e pr´atico alcan-¸cado.

Com o intuito de verificar o qu˜ao ´util ´e a nova classe de planos de corte, foram re-alizados experimentos computacionais com a implementa¸c˜ao de um branch-and-cut. A implementa¸c˜ao utilizou o solver IBM ILOG CPLEX 12.4 para calcular as relaxa¸c˜oes li-neares dos modelos. Como j´a era esperado o modelo matem´atico descrito em [8] fornece excelentes limites inferiores nos valores de solu¸c˜oes ´otimas.

Os experimentos computacionais, obtidos com a implementa¸c˜ao de um branch-and-cut, d˜ao evidˆencias claras de que esta implementa¸c˜ao ´e mais r´apida quanto maior for o n´umero de planos de corte gerados.

(37)

Referˆ

encias Bibliogr´

aficas

[1] A. Ben-Dor, G. Lancia, J. Perone, and R. Ravi, Banishing bias from consensus se-quences, Proceedings of the 8th Annual Symposium on Combinatorial Pattern Mat-ching (Aarhus, Denmark) (A. Apostolico and J. Hein, eds.), Lecture notes in com-puter science, no. 1264, Springer-Verlag, 1997, pp. 247–261.

[2] R. E. Bixby, Notes on combinatorial optimization, Tech. report, Rice University, Department of Computational and Applied Mathematics, 1987.

[3] C. Boucher, G. M. Landau, A. Levy, D. Pritchard, and O. Weimann, On approxima-ting string selection problems with outliers, CoRR abs/1202.2820 (2012), 427–438. [4] C. C. de Souza, The graph equipartition problem: Optimal solutions, extensions and

applications, Ph.D. thesis, Universit´e Catholique de Louvain, 1993.

[5] K. Lanctot, M. Li, B. Ma, S. Wang, and L. Zhang, Distinguishing string selection problems, Information and Computation 185 (2003), no. 1, 41–55.

[6] M. Li, B. Ma, and L. Wang, On the closest string and substring problems, Journal of the ACM 49 (2002), no. 2, 157–171.

[7] C. N. Meneses, P. M. Pardalos, M. G. C. Resende, and A. Vazacopoulos, Modeling and solving string selection problems, BIOMAT 2005 International Symposium on Mathematical and Computational Biology – Selected Contributed Papers, 2005. [8] C.N. Meneses, Z. Lu, C.A.S. Oliveira, and P.M. Pardalos, Optimal solutions for the

closest string problem via integer programming, INFORMS Journal on Computing 16 (2004), no. 4, 419–429.

[9] M. Minoux, Mathematical programming: Theory and algorithms, Wiley-Interscience, 1986.

(38)

[11] M. W. Padberg and M. Gr¨otschel, Polyhedral computations, John Wiley and Sons, 1985.

[12] A. Schrijver, Theory of linear and integer programming, John Wiley and Sons, 1986. [13] H. A. Taha, Operations research - an introduction, fourth edition, Macmillan

Referências

Documentos relacionados

Os citˆometros de fluxo atuais utilizam um fluido l´ıquido para conduzir a c´elula at´e a regi˜ao de medi¸c˜ao e baseiam-se no princ´ıpio da focaliza¸c˜ao

Por´em, como veremos no exemplo discutido em detalhe ` a p´ agina 1205, n˜ ao basta que um grupo de Lie seja conexo para que todos os seus elementos possam ser escritos

Vamos na presente se¸c˜ ao (cuja leitura ´e dispens´ avel para o desenvolvimento da teoria de integra¸c˜ ao de Lebesgue que se lhe segue) aprofundar um pouco mais a teoria

Com o mesmo objetivo de evitar o uso de descri¸c˜oes microsc´opicas em situa¸c˜oes de de- sacoplamento intercelular total, foi apresentada no Cap´ıtulo 4 uma nova t´ecnica

Exerc´ıcio 41: Mostre que se dois lados de um triˆangulo n˜ao s˜ao congru- entes, ent˜ao os dois ˆangulos opostos a estes lados tamb´em n˜ao s˜ao congru- entes.. Mostre que o

4 Demonstraremos, mais adiante que somente com os axiomas anteriormente enunciados, n˜ ao podemos demonstrara a existˆ encia de nenhum conjunto infinito.... Ou seja, S define a fun¸

Se por mapas estratégicos, de eficácia comprovada, como ferramenta de gestão estratégica, ou por outro método de indicadores, se faz necessário um modelo de gestão

De acordo com o Instituto Ethos (2013), a GRI foi criada com o objetivo de aumentar o nível de qualidade dos relatórios de sustentabilidade. O conjunto de diretrizes e indicadores da