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

Tamanho: px
Começar a partir da página:

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

Transcrição

1 Universidade Federal do ABC Centro de Matemática, Computação e Cognição (CMCC) Pós-Graduação em Ciência da Computação Omar Latorre Vilca MÉTODOS PARA PROBLEMAS DE SELEÇÃO DE CADEIAS DE CARACTERES Dissertação de Mestrado Santo André - SP 2013

2 Omar Latorre Vilca MÉTODOS PARA PROBLEMAS DE SELEÇÃO DE CADEIAS DE CARACTERES Dissertação de Mestrado Dissertação de Mestrado apresentada ao Curso de Pós-Graduação da Universidade Federal do ABC como requisito parcial para obtenção do grau de Mestre em Ciência da Computação Orientador: Prof. Dr. Cláudio Nogueira de Meneses Santo André - SP 2013

3 Ficha Catalográfica Vilca, Omar Latorre. Métodos para Problemas de Seleção de Cadeias de Caracteres / Omar Latorre Vilca. Santo André, SP: UFABC, p.

4

5 Omar Latorre Vilca MÉTODOS PARA PROBLEMAS DE SELEÇÃO DE CADEIAS DE CARACTERES Essa Dissertação de Mestrado foi julgada e aprovada para a obtenção do grau de Mestre em Ciência da Computação no curso de Pós-Graduação em Ciência da Computação da Universidade Federal do ABC. Santo André - SP Prof. Dr. Ronaldo Cristiano Prati Coordenador do Curso BANCA EXAMINADORA Prof. Dr. Cláudio Nogueira de Meneses Profa. Dra. Maristela Oliveira dos Santos Prof. Dr. João Paulo Gois Prof. Dr. Ronaldo Cristiano Prati

6 AGRADECIMENTOS À DEUS, por ter me dado condições de lutar e alcançar os objetivos pretendidos. Ao Prof. Dr. Ronaldo Cristiano Prati, coordenador do Programa de Pós-Graduação em Ciência da Computação, pelo esforço e dedicação 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 orientação, pelos ensinamentos, ajuda e colaboração com o meu trabalho e pelas conversas e conselhos ao longo do período do mestrado. Ao Centro de Matemática, Computação e Cognição (CMCC) da Universidade Federal do ABC (UFABC), pelo apoio na realização deste trabalho. Agradeço a CAPES e UFABC pelos financiamentos, em bolsas, para o desenvolvimento desta pesquisa. E por fim, agradeço a todos que um dia acreditaram em mim.

7 Este trabalho contou com o auxílio financeiro das seguintes entidades: Universidade Federal do ABC - UFABC (bolsa de mestrado, institucional), de fevereiro/2011 a outubro/2011; Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPES (bolsa de mestrado, demanda social), de novembro/2011 a fevereiro/2013.

8 Resumo Nesta pesquisa propomos métodos para resolver um problema de seleção de cadeias de caracteres (strings) que surge na área de bioinformática. Este problema é conhecido pelo nome Closest String Problem (CSP) e pode ser definido assim: dado um conjunto finito S = {s 1, s 2,, s n } 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 s i S tem-se d H (x, s i ) d. Por d H (x, s) queremos dizer a distância de Hamming entre as strings x e s e ela é calculada tendo em conta o número de posições em que as duas strings diferem. Por exemplo, se x = AT T e s = AT C, então d H (x, s) = 1, pois x e s diferem apenas na última posição. O CSP pertence a classe de complexidade computacional NP-difícil e são conhecidos algoritmos de aproximação e métodos exatos para resolver esse problema. Como objetivo principal da pesquisa, desejamos desenvolver métodos exatos baseados em programação linear inteira. Palavras-chave: seleção de cadeias de caracteres, programação linear inteira, branchand-cut 1

9 Abstract In this work we design methods to solve a string selection problem that arises in bioinformatics. This problem is called Closest String Problem (CSP) and is defined as: given a finite set S = {s 1,, s n } 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 s i S we have d H (x, s i ) d. By d H (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 d H (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. Keywords: string selection, integer linear programming, branch-and-cut 2

10 Sumário 1 Introdução 4 2 Definições e Conceitos Básicos Problemas de Seleção de Strings Distância de Hamming Conceitos Básicos em Programação Linear Programação Linear Inteira (PLI) Algoritmo de Cutting Planes Algoritmo de Branch-and-Bound Algoritmo de Branch-and-Cut Trabalhos Anteriores Heurística para o CSP Estudo em Combinatória Poliédrica Formulação em Programação Inteira Nova Classe de Planos de Corte e sua Separação Limitante Inferior Combinatório Resultados Computacionais Ambiente dos Experimentos Instâncias de Teste Análise dos Resultados Comentários Finais 29 3

11 Capítulo 1 Introdução Robert E. Bixby, em [2], define um problema de otimização combinatória como: Sejam E um conjunto finito, S uma família de subconjuntos de E e w R E uma função peso de valores reais definida sobre os elementos de E. O problema de otimização combinatória associado é encontrar um conjunto S S tal que w(s ) = max S S w(s) onde w(s) = e S w(e). Nesta pesquisa desenvolveu-se métodos para resolver um problema de seleção de strings (cadeia de caracteres), conhecido por Closest String Problem (CSP). O CSP é um relevante problema de otimização combinatória da área de bioinformática e tem aplicações no desenvolvimento de remédios, conforme [5]. A definição do CSP é baseada no conceito de distância de Hamming: Dadas duas strings quaisquer, s e t, de mesmo tamanho (número de caracteres), a distância de Hamming, denotada por d H (s, t), mede o número de posições em que s e t diferem. Por exemplo, se s =CCACT e t =TACCA, então d H (s, t) = 4. O CSP consiste em: dado um conjunto finito S ={s 1, s 2,, s n } 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 s i S tenha d H (x, s i ) d. Em outras palavras, desejou-se encontrar uma string x que é mais próxima a todas as strings em S, considerando como medida de proximidade a distância Hamming. Em termos de complexidade computacional, o CSP pertence a classe N P-difícil, conforme provado na referência [5]. Existem alguns algoritmos de aproximação para resolver o CSP, que podem ser vistos nas referências [1, 5, 6]. Em termos de resolução exata do CSP, é do nosso conhecimento que existe apenas a abordagem descrita na referência [8], que usa programação linear inteira. 4

12 Em [7] são apresentados modelos matemáticos para problemas de seleção de strings, que mantêm uma estreita ligação com o CSP. Estes problemas são definidos formalmente na subseção 2.1. Decidimos estudar o CSP porque: Ele é um problema que surge durante o processo de criação de certos remédios; Métodos desenvolvidos para resolver o CSP podem ajudar na compreensão de como resolver os problemas listados na subseção 2.1; Acredita-se que é possível desenvolver um método exato que é melhor do que o atualmente melhor método ([8]) para o CSP. As contribuições com esta pesquisa são as seguintes: Identificou-se uma classe de inequações válidas (cortes) para o poliedro apresentado em [8]. Criou-se um algoritmo de tempo polinomial em n, que separa essas inequações; Criou-se uma fórmula para o cálculo de limitante inferior no valor de uma solução ótima. No capítulo 2 definimos alguns problemas associados ao CSP e conceitos básicos sobre programação linear inteira. No capítulo 4 é apresentada uma formulação em programação linear inteira para o CSP, tal como descrita em [8], bem como uma nova classe de inequações e uma rotina de separação destas inequações. No capítulo 5 mostramos experimentos computacionais. No capítulo 6 apresentamos os comentários finais desta pesquisa. 5

13 Capítulo 2 Definições e Conceitos Básicos Neste capítulo define-se cinco problemas associados ao Closest String Problem e métodos que podem ser utilizados para resolvê-los. Além disso, são lembrados vários conceitos e técnicas usadas para solucionar problemas de otimização combinatória. 2.1 Problemas de Seleção de Strings Nesta seção define-se formalmente cinco problemas de seleção de strings associados ao CSP, cujas versões de decisão pertencem a classe de complexidade NP-Completo, conforme provado em [5]. Cada problema é exemplificado por uma instância e uma solução. Como ficará claro no próximo capítulo, o estudo realizado para resolver instâncias do CSP é útil para resolver instâncias daqueles problemas. As definições formais desses problemas são as seguintes: Farthest String Problem (FSP) Dado um conjunto finito S ={s 1, s 2,, s n } 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 s i S, tem-se d H (x, s i ) d. Como exemplo de uma instância do Farthest String Problem considere o conjunto de strings S = {AAACA,GTCTA,AATGC,CTTAC}. Uma solução ótima é dada pela string x =TCGAG com d = 4. Closest Substring Problem (CSubSP) Dado um conjunto finito S = {s 1, s 2,, s n } 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 s i in S, a relação d H (x, y) d é verdadeira para alguma substring y, de tamanho m, de s i. 6

14 Como exemplo considere S = {AAT,CCAA,CCTA,TCA}. Uma solução viável é dada pela string ACA com d = 2. Farthest Substring Problem (FSubSP) Dado um conjunto finito S ={s 1, s 2,..., s n } 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 s i in S e toda substring y, de tamanho m, de s i, tem-se d H (x, y) d. Como exemplo considere S = {AAT,CCAA,CCTA,TCA}. Uma solução viável é a string ACA com d = 1. Close to Most String Problem (CMSP) Dado um conjunto finito S = {s 1, s 2,..., s n } 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úmero de strings s i S tal que d H (x, s i ) k. Como exemplo considere S = {AATCC,CCAAT,CCTAC,TCACC}. Se k = 3, então uma solução ótima é CCTCT com quatro strings satisfazendo d H (x, s i ) 3. Se k = 2, então uma solução ótimza é ACAAC e três strings respeitam d H (x, s i ) 2. Distinguishing String Selection Problem (DSSP) Dados dois conjuntos finitos de strings S c e S f, todas as strings de tamanho no mínimo m, sobre um alfabeto A, e dois números inteiros positivo k c e k f, deseja-se encontrar uma string x de tamanho m sobre A tal que para cada string s c S c, existe alguma substring y c, de tamanho m, de s c satisfazendo d H (x, y c ) k c, e para toda substring y f, de tamanho m, de s f S f tem-se d H (x, y f ) k f. Como exemplo, considere S c = {AATCC,CCAAT,CCTAC,TCACC} e o conjunto S f = {AATAA,CCACT,GGTAC,TCAAC}. Se k c = 3 e k f = 2, então ACACC é uma solução viável. Observe que os quatro primeiros problemas acima são problemas de otimização, enquanto o último é um problema de decisão. Como dito no início deste capítulo, estes cinco problemas mantêm estreita relação com o CSP. A figura a seguir mostra as relações entre os problemas, em termos das reduções, e consequentes complexidades computacionais. Por 2SAT, 3SAT e ISP queremos indicar os problemas 2-satisfatibilidade, 3-satisfatibilidade e Independent Set Problem, respectivamente. Lembre que é conhecido um algoritmo determinístico de tempo polinomial para o 2SAT e que os problemas 3SAT e ISP pertencem a classe NP-Completo. 7

15 3SAT [5] DSSP [5] FSP [5] [5] FSubSP CSP [5] CSubSP [5] DSSP ISP [3] FFMSP [3] 2SAT [3] CMSP Figura 2.1: Reduções entre problemas definidos nesta seção e problemas clássicos de otimização combinatória 8

16 2.2 Distância de Hamming Uma métrica em um conjunto X é uma função, chamada função de distância ou simplesmente distância, dada por: d : X X R, onde R é o conjunto dos números reais. satisfazer as seguintes condições: Para todo x, y, z X, esta função precisa 1. d(x, y) 0 (não-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 (F m ) n o conjunto de todas as n-tuplas ordenadas a = a 1 a 2...a n onde cada a i F m. F m é um alfabeto, o m-ésimo elemento é obtido do conjunto de sequências de símbolos onde cada símbolo é escolhido do conjunto F m = {λ 1, λ 2,..., λ m } de m elementos diferentes. A distância de Hamming entre dois vetores x e y de (F m ) n é o número de posições nas quais eles diferem. Isto é denotado por d H (x, y). Por exemplo, no (F 2 ) 5 temos d H (00111, 11001) = 4, enquanto em (F 3 ) 4 obtemos d H (0122, 1220) = 3. A distância de Hamming é uma função distância legítima ou uma métrica que deve satisfazer as seguintes condições, para todo x, y, z (F m ) n : (i) d H (x, y) 0 (ii) d H (x, y) = 0 se e somente se x = y (iii) d H (x, y) = d H (y, x) (iv) d H (x, z) d H (x, y) + d H (y, z). 2.3 Conceitos Básicos em Programação Linear Como é pretendido resolver instâncias do CSP utilizando uma abordagem baseada em combinatória poliédrica, esta seção relembra alguns conceitos básicos em Programação Linear. Os teoremas e definições abaixo foram compilados de [4, 9, 12]. Um problema de Programação Linear (PL) pode ser definido como o problema de maximizar ou minimizar uma função linear sobre uma região descrita por um conjunto 9

17 de inequações e equações lineares. Os pontos nesta região formam o conjunto de soluções viáveis do problema PL. Tal problema pode ser escrito na forma de matriz como: min {cx : Ax b, x R n +}, onde c R n, A é uma matriz m n de constantes reais e b R m. Teorema 2.1. O conjunto de soluções viáveis X = {x : Ax b, x R n +} para o problema é um conjunto convexo, i.e., qualquer ponto, exceto um vértice, em X é uma combinação linear convexa de outros dois pontos em X. Definição 2.1. O conjunto convexo X = {x : Ax b, x R n +} é denominado poliedro. Se X é limitado, i.e., X {x : w x j w, j {1, 2,, n}} para algum w R +, então X é chamado de politopo. Definição 2.2. Um vértice de um poliedro X é qualquer ponto x X o qual não pode ser expresso como uma combinação convexa de outros pontos de X \{x}. Teorema 2.2. Se o valor ótimo de uma função linear num poliedro X R n é finito, então ele é atingido em pelo menos um vértice. Se este for obtido em mais que um vértice, então pode ser obtido também por qualquer ponto que seja uma combinação linear convexa destes vértices. Teorema 2.3. Um problema de PL pode ser resolvido em tempo polinomial sobre n, m e θ, onde n é o número de variáveis do problema, m é o número de restrições, e θ é o maior coeficiente da matriz A. 2.4 Programação Linear Inteira (PLI) Nesta seção discutimos alguns métodos normalmente utilizados na resolução de problemas, que admitem uma formulação em programação linear, onde exige-se soluções inteiras. Os conceitos discutidos nesta seção foram compilados de [4, 10, 13]. Considere o problema de programação linear abaixo: min {cx : Ax b, x R n +}, onde c R n, A é uma matriz m n de constantes reais e b R m. Se as variáveis são restritas a inteiros, x Z n +, ao invés de x R n +, o problema é chamado de problema de Programação Linear Inteira. Além disso, se as variáveis são restritas a valores 0 ou 1, temos um problema PLI 0-1. As soluções do problema PLI 0-1 são pontos em {0, 1} n satisfazendo o sistema linear Ax b. 10

18 Geralmente problemas PLI 0-1 pertencem a classe NP-difícil. Uma maneira de resolver estes problemas é utilizando suas relaxações lineares. Numa relaxação linear as restrições de integralidade são substituídas por restrições lineares. Existem duas abordagens clássicas para resolver problemas PLI 0-1 utilizando relaxações lineares: (a) algoritmo de Cutting Planes Fracionário (ACPF) e o algoritmo de branch-and-bound ou (b) enumeração implícita. Denotaremos por S o conjunto de soluções viáveis de um problema PLI Algoritmo de Cutting Planes ACPF são baseados no uso de inequações válidas (cortes) para S, i.e, inequações que são satisfeitas por todos os pontos de S. A cada iteração i de ACPF, uma relaxação LP i do problema P LI é resolvida. Seja x i uma solução ótima obtida ao se resolver a relaxação linear LP i. Se x i está em S, o algoritmo pára, retornando x i como uma solução ótima do problema P LI. Caso contrário, a relaxação deve ser melhorada. Para isto, encontra-se uma desigualdade válida πx π 0 para S que é violada por x i. Uma nova iteração é executada para a relaxação LP i+1, obtida de LP i incluindo-se a desigualdade πx π 0. Sejam z i e z i+1 os valores das soluções ótimas de LP i e LP i+1 respectivamente, isto é, z i = cx i e z i = cx i+1. Assumindo que o P LI é um problema de minimização, tem-se que z i+1 z i, ou seja, o limitante inferior fornecido pelo valor ótimo da relaxação linear cresce monotonicamente a cada iteração, aproximando-se do valor ótimo do P LI. O estudo inicial de adição de desigualdades válidas para problemas PLI gerais foi feito por Gomory na década de 50. Embora o algoritmo proposto por ele sempre termine em tempo finito, as desigualdades que ele sugeriu para adicionar à formulação (cortes de Gomory) não eram eficientes na prática, pois o algoritmo torna-se muito lento. Mais tarde, percebeu-se que o motivo do insucesso obtido pela aplicação dos cortes de Gomory, era decorrente do seu excesso de generalidade. Independente do problema P LI que se esteja resolvendo, sempre é possível gerar um corte de Gomory que elimina uma solução contínua. No entanto, esse corte pode não ser suficiente para capturar a estrutura da envoltória convexa das soluções inteiras do P LI. Cortes com essa propriedade são o objeto de estudo da Combinatória Poliédrica que fez ressurgir, principalmente a partir da década de 80, o interesse pelos algoritmos de corte Algoritmo de Branch-and-Bound Branch-and-Bound são esquemas enumerativos fundamentados em duas operações básicas. 11

19 A primeira é a decomposição do problema original em subproblemas. A segunda operação envolve o cálculo de limites inferiores (ou superiores) ao valor da função objetivo. O propósito é acelerar o processo de descarte de subproblemas que não podem gerar soluções promissoras, diminuindo, consequentemente, a enumeração. Normalmente, a decomposição é construída recursivamente. Isto permite uma representação gráfica de todo o processo em termos de uma árvore de enumeração. Nesta representação, os filhos de um dado nó formam a decomposição da região viável de seu pai. Em geral, para problemas P LI 0-1, a árvore de enumeração é uma árvore binária. Cada nó i da árvore corresponde a uma relaxação linear LP i do problema P LI definido em um subconjunto S i de S. Seja x i uma solução ótima encontrada para LP i e z i = cx i. Dependendo do valor de z i (bound), o nó i pode ser expandido (branching) para outros dois nós (seus filhos) ou pode ser cortado (ou podado), i.e, o subconjunto de soluções viáveis do nó i é particionado em dois novos subconjuntos ou ele não será mais particionado durante os passos seguintes do algoritmo. O algoritmo termina quando todos os nós estiverem podados. Retorna-se como solução do P LI, a solução inteira do nó da árvore com menor valor (para um problema de minimização) de função objetivo Algoritmo de Branch-and-Cut Seja Conv(S) a envoltória convexa do conjunto viável S. A envoltória convexa de S é 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á disponível, o problema P LI pode, em princípio, ser resolvido eficientemente por programação linear, visto que todos os pontos extremos são soluções viáveis inteiras em S (veja definição 2.2 e teorema 2.3). Infelizmente, para problemas que pertencem a classe N P -difícil, geralmente o número de desigualdades de tal sistema é exponencial, no tamanho da entrada, e somente algumas desigualdades da descrição de Conv(S) são conhecidas. Assuma, portanto que uma certa classe F de desigualdades válidas para Conv(S) são conhecidas. Além disso, dado um ponto qualquer x R n + assuma que dispõe-se de um algoritmo que procura por uma desigualdade em F que é violada por x. Tal algoritmo é chamado uma rotina de separação para F. Branch-and-Cut é um método 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ó irá gerar desigualdades que pertençam à classe F, definida anteriormente. Para cada nó i da árvore de enumeração, P i = {x R m+n : A i x b, 0 x 1} é o politopo correspondente a relaxação linear LP i. Se x i é a solução ótima desta relaxação 12

20 linear e ela tem variáveis fracionárias, a rotina de separação é chamada para procurar uma desigualdade violada em F. Se a rotina de separação retorna uma desigualdade πx π 0, esta desigualdade é incluída no sistema de desigualdades definindo P i, e LP i é resolvido novamente. Continuamos fazendo isto até x i ser inteiro ou z i ser maior do que o atual upper bound disponível, ou a rotina de separação falhar em produzir uma nova desigualdade em F que corte o ponto x i. Neste último caso, uma variável é escolhida para fazer um branching. Uma aplicação bem sucedida de método de branch-and-cut para resolver problemas difíceis de P LI 0-1 é a relatada em [11], neste caso para o Traveling Salesman Problem. O sucesso de algoritmos de branch-and-cut depende muito do conhecimento da estrutura de Conv(S). 13

21 Capítulo 3 Trabalhos Anteriores Neste capítulo descrevemos um trabalho encontrado na literatura científica que trata o CSP. Este trabalho propõe uma heurística e três modelos matemáticos para o CSP e mostra vários resultados computacionais. 3.1 Heurística para o CSP A heurística proposta em [8] gera soluções iniciais viáveis para o CSP e realiza uma busca local nessas soluções. Verifica-se que o algoritmo 1 gera resultados iniciais e posteriormente no algoritmo 2 constroem-se as soluções a partir da solução inicial. Impressionantemente, este algoritmo é capaz de produzir resultados de excelente qualidade, conforme comprovam os experimentos computacionais mostrados no capítulo 5. O algoritmo 1 seleciona uma das strings em S e a modifica até que uma solução localmente ótima seja encontrada. Conforme provado em [8], o algoritmo 1 tem complexidade de tempo O(nmN), para N n. No primeiro passo, o algoritmo procura por uma solução s S que seja a mais próxima a todas as demais strings em S. No segundo passo, as distâncias d entre s e o resto das strings são calculadas. No último passo do algoritmo um procedimento de busca local é aplicado como segue: Seja r uma string em S tal que para d H (r, s i ), onde i {1,, n}, seja a máxima, e seja s uma solução atual. Logo, para i {0,..., m}, se s i r i então trocamos os valores s i por r i cuja solução s tende a melhorar. A seguir tal troca é efetuada e a distância Hamming entre s e as demais strings em S são atualizadas. Após analisar as m posições, uma nova string r é selecionada entre as strings em S, que é a mais afastada das s soluções atuais logo, 14

22 Input: Instância S = {s 1,, s n } Output: String s, distância d s {y S min s i S d H (y, s i )} d max i {1,...,n} d H (s, s i ) Melhora Solução(s, d, N) Algoritmo 1: Gera soluções viáveis para o CSP Input: instância S, solução corrente s, distância d e parâmetro N (número de iterações) Output: solução resultante s e distância d for k 1 to n do d k d k d H (s k, s) end for i 1 to N do b i tal que d H (s i, s) = d /* resolva o empate aleatoriamente */ for j 1 to m tal que s b j s j do max 1 for k 1 to n tal que k b do if (s j = s k j ) e (s b j s k j ) then d k d k + 1 else if (s j s k j ) e (s b j = s k j ) then d k d k 1 if (max < d k ) then max d k end if d max /* não é pior */ then d max; t j s b j for k 1 to n do d k d k else for k 1 to n do d k d k end end end Algoritmo 2: Terceiro passo do Algoritmo 1: Melhora Solução O processo se repete continuamente. O número de repetições é controlado pelo parâmetro N. Os passos em detalhe da busca local são apresentados no algoritmo 2 15

23 Capítulo 4 Estudo em Combinatória Poliédrica Focados no estudo poliédrico do Closest String Problem (CSP), alcançamos os seguintes resultados: (a) Uma classe de inequações válidas para uma formulação proposta em [8] e (b) Um algoritmo de complexidade polinomial que separa as inequações daquela classe. Os resultados mostrados neste capítulo fazem parte de uma colaboração com o Prof. Giuseppe Lancia, que trabalha no Department of Mathematical and Computer Science, University of Udine, Italy. Começamos o estudo relembrando uma formulação em programação 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ão um algoritmo de branch-and-cut. 4.1 Formulação em Programação Inteira Em [8] são apresentadas três formulações em PLI 0-1 para o CSP. A terceira delas é baseada no teorema a seguir, que reduz o espaço das soluções viáveis para qualquer instância do CSP. Teorema 4.1. [8] Dada uma instância do Closest String Problem, existe uma solução ótima onde o caracter ótimo na posição k está também na posição k em uma das strings no conjunto S = {s 1, s 2,..., s n } de strings. Exemplo 4.1. Seja S = {AATCC,CCAAT,CCTAC,TCACC}. Defina V k = n i=1{s i k } para k = 1,..., m. Então os conjuntos V k são: V 1 = {A, C, T }, V 2 = {A, C}, V 3 = {A, T }, V 4 = {A, C}, V 5 = {C, T }. O Teorema 4.1 garante que para encontrar uma solução 16

24 ótima, x = (x 1, x 2, x 3, x 4, x 5 ), é suficiente atribuir ao componente x k, um elemento do conjunto V k para j = 1,..., 5. Assim, x =ACTAT é, por exemplo, uma solução viável. A partir da seguinte definição para as variáveis binárias x j,k { 1 se o caracter j é usado na posição k em uma solução x j,k = 0 caso contrário os autores em [8] propuseram a formulação: min s.a.: d (4.1) x j,k = 1 k = 1,..., m (4.2) j V k m d m x s i k,k i = 1,..., n (4.3) k=1 x j,k {0, 1} j V k ; k = 1,..., m (4.4) d 0 e inteiro (4.5) Note que esta formulação tem m + n restrições e 1 + m k=1 V k variáveis de decisão. A restrição (4.2) faz com que cada vetor solução x tenha na posição k um dos caracteres em V k. A restrição (4.3) calcula a distância de Hamming entre o vetor solução x e as strings em S. A restrição (4.4) faz com que as variáveis x j,k assumam valores 0 ou 1, enquanto que a restrição (4.5) garante que a variável d seja um número inteiro não negativo. Por motivo óbvios, desejamos minimizar o valor de d. Conforme relatado em [8], a formulação mostrada acima é muito forte. Isto é, os valores das relaxações lineares, para as várias instâncias testadas, tiveram valores muito próximos aos valores das soluções ótimas encontradas. Os resultados descritos naquela referência mostraram evidências de que o método branch-and-bound, lá utilizado, teve mais dificuldades para resolver instâncias com alfabetos com poucos caracteres. Por exemplo, instâncias com alfabeto binário mostraram-se mais difíceis, para o branch-and-bound, do que instâncias cujo alfabeto tinha quatro caracteres. Esta relação é investigada no capítulo 5, Experimentos Computacionais. Com o intuito de melhorar ainda mais a formulação descrita acima, decidimos procurar por novas classes de cortes. Na seção a seguir propõe-se uma classe de cortes e um algoritmo que tem complexidade de tempo polinomial em n e m. Ressalta-se que esta é a principal contribuição do nosso trabalho. 17

25 4.2 Nova Classe de Planos de Corte e sua Separação Considere o Programa Linear (PL) obtido a partir da relaxação da formulação descrita na seção anterior. Isto é, considere min s.a.: P L : d j V k x j,k = 1 k = 1,..., m d m m k=1 x s i k,k i = 1,..., n 0 x j,k 1 j V k ; k = 1,..., m d 0 Note os domínios das variáveis x j,k e d no programa linear acima. Assuma que temos uma solução viável, de valor D, para uma instância do CSP. Possivelmente uma boa solução viável, assim que D é provavelmente ótimo. Esta boa solução viável poderia, por exemplo, ser obtida utilizando um procedimento de arredondamento a partir da solução da relaxação linear da formulação acima ou a heurística descrita na seção 3.1. Seja S = {s 1, s 2,..., s n }, com s i = m para i = 1,..., n. Tome qualquer string s i S e considere qualquer subconjunto B de s i consistindo de D caracteres. Comparando-se as correspondentes posições de B em s i, tem-se que uma solução ótima para S não pode ser diferente em todos os caracteres em B, caso contrário esta solução teria valor maior ou igual a D. Como já tem-se uma solução de valor D, então procura-se por uma solução de valor menor ou igual D 1. Portanto, concluí-se que k Ind(B) x s i k,k 1 (4.6) é uma inequação válida (corte) para o PL, onde Ind(B) é o conjunto das índices de B em s i. Exemplo 4.2. Seja S = {s 1, s 2, s 3 }, onde s 1 = ACT, s 2 = CCG e s 3 = T CA. Considerando o resultado no Teorema 4.1, tem-se que uma solução ótima x = (x 1, x 2, x 3 ) para S satisfaz x 1 V 1 = {A, C, T }, x 2 V 2 = {C} e x 3 V 3 = {A, G, T }. Observe que a string x = ACG é uma solução viável e tem valor 2. Para s 1 = ACT, as subsequências de comprimento dois são AC, AT, CT. A partir destas subsequências, obtemos os seguintes conjuntos de índices Ind(AC) = {1, 2}, Ind(AT ) = {1, 3} e Ind(CT ) = {2, 3}. Assim, os cortes obtidos ao considerar s 1 = ACT 18

26 são: x A,1 + x C,2 1 x A,1 + x T,3 1 x C,2 + x T,3 1 Aplicando-se a mesma ideia para s 2 = CCG, obtemos os cojuntos de índices Ind(CC) = {1, 2}, Ind(CG) = {1, 3} e Ind(CG) = {2, 3} e portanto os cortes: x C,1 + x C,2 1 x C,1 + x G,3 1 x C,2 + x G,3 1 Finalmente, para s 3 = 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: x T,1 + x C,2 1 x T,1 + x A,3 1 x C,2 + x A,3 1 Com isto concluí-se o exemplo. Existem n ( m D) inequações possíveis (isto é um número 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ções (4.6) podem ser separadas em tempo polinomial, nominalmente em O(nm log m). Demonstração. Suponha que x é uma solução fracionária ótima obtida pela relaxação linear. Considere cada string s i S, uma por vez. Para k = 1,..., m defina a j = x s i k,k Por exemplo, para s 1 temos a 1 = x s 1 1,1, a 2 = x s 1 2,2, a 3 = x s 1 3,3,..., a m 1 = x s 1 m 1,m 1, a m = x s 1 m,m. Considerando o Exemplo 4.2, temos para s 1 = ACT : a 1 = x A,1, a 2 = x C,2, a 3 = x T,3. Agora ordene os a j em ordem não decrescente, a p(1)... a p(m), e denote por B o conjunto dos primeiros D valores nesta ordem dos a j (isto é, B = {p(1),..., p(d)}). Então 19

27 B alcança a mínima soma possível de x com relação a s i. Se esta soma for menor que 1, então teremos encontramos uma inequação (4.6) violada; caso contrário não há inequações violadas para s i, e então passamos para a análise de s i+1. Ou seja, se D k=1 a p(k) < 1 então a inequação D k=1 x s i [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ância do CSP. A partir do conjunto S contrua os conjuntos V i da seguinte maneira: V 1 = {A, C, G}, V 2 = {C, G, T }, V 3 = {C, G, T }, V 4 = {A, C, G, T }, v 5 = {C, G, T } e v 6 = {C, G, T }. O correspondente modelo em programação linear é: min d s.a. : x A,1 + x C,1 + x G,1 = 1 x C,2 + x G,2 + x T,2 = 1 x C,3 + x G,3 + x T,3 = 1 x A,4 + x C,4 + x G,4 + x T,4 = 1 x C,5 + x G,5 + x T,5 = 1 x A,6 + x G,6 + x T,6 = 1 d + x A,1 + x T,2 + x T,3 + x G,4 + x G,5 + x A,6 6 d + x C,1 + x T,2 + x G,3 + x A,4 + x T,5 + x G,6 6 d + x C,1 + x T,2 + x G,3 + x A,4 + x C,5 + x T,6 6 d + x A,1 + x G,2 + x T,3 + x C,4 + x G,5 + x A,6 6 d + x G,1 + x C,2 + x C,3 + x T,4 + x G,5 + x T,6 6 0 x j,k 1 j V k ; k = 1,..., 6 d 0 Uma solução ótima para o programa linear acima é dada por: d = , x A,1 = 0.75, x C,1 = 0.25, x T,2 = , x G,2 = , x G,3 = 1.0, x C,4 = , x T,4 = , x G,5 = 1.0, x G,6 = 0.5, x T,6 = 0.5 e todas as outras variáveis têm valores iguais a zero. Sendo d = segue que, em uma solução ótima 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ção: d = 4.0, x A,1 = 0.5, x C,1 = 0.5, x T,2 = 0.5, x G,2 = 0.5, x G,3 = 1.0, x T,4 = 1.0, x G,5 = 1.0, x G,6 = 1.0 e todas as outras variáveis têm valores iguais a zero. Precisamos encontrar uma solução viável com D = 5. Pode-se fazer isto por tentativa e erro. Considere a seguinte solução para S, x = AT GT CG. Assim, as distâncias de 20

28 Hamming de x para as strings em S são: d(x, s 1 ) = d(at T GGA, AT GT CG) = 4 d(x, s 2 ) = d(ct GAT G, AT GT CG) = 3 d(x, s 3 ) = d(ct GACT, AT GT CG) = 3 d(x, s 4 ) = d(agt CGA, AT GT CG) = 5 d(x, s 5 ) = d(gcct GT, AT GT CG) = 5 Consideramos agora a classe de cortes (4.6): para D = 5 as seguintes inequações são violadas: x G,2 + x T,3 + x C,4 + x G,5 + x A,6 1 (4.7) x G,1 + x C,2 + x C,3 + x G,5 + x T,6 1 (4.8) As inequações (4.7) e (4.8) foram determinadas a partir de s 4 e s 5, respectivamente. Incluindo estas inequações no programa linear, junto com d 4, e resolvendo o programa linear novamente obtemos uma solução ótima inteira dada por x = CT CCGG e d = 4. Comparando x com as strings em S vemos: d(x, s 1 ) = d(at T GGA, CT CCGG) = 4 d(x, s 2 ) = d(ct GAT G, CT CCGG) = 3 d(x, s 3 ) = d(ct GACT, CT CCGG) = 4 d(x, s 4 ) = d(agt CGA, CT CCGG) = 3 d(x, s 5 ) = d(gcct GT, CT CCGG) = Limitante Inferior Combinatório Agora estabelece-se um limite inferior no valor de qualquer solução ótima para qualquer instância do CSP. Para cada posição j da string s i S, denote por S α j o subconjunto de strings de S que têm o caracter α na posição j. Defina d jα = n S α j. Em palavras, d jα é o número de símbolos diferentes de α na posição j nas strings de S. Defina para cada posição j e Então obtemos d j = min α A d jα m j=1 L = d j n 21

29 Lema 4.1. L é um limitante inferior válido para o CSP. Demonstração. Independentemente de qual caracter aparece na posição j em uma solução, ele entrará em conflito com no mínimo d j strings naquela posição. Somando sobre todas as posições, este é o número total de conflitos (i.e., a soma das distâncias de Hamming) da solução com relação as strings da instância, e dividindo por n obtemos que a média da distância de Hamming de qualquer solução precisa ser no mínimo m j=1 d j n. Mas como o máximo é no mínimo a média (e podemos também arredondar para o primeiro número inteiro), obtemos o lema. No próximo capítulo, de resultados computacionais, mostra-se os resultados dos experimentos são realizados com uma implementação de um branch-and-cut. Testa-se esta implementação em dois cenários: com o uso da classe de cortes e sem o seu uso. Após realizar diversos experimentos com esta implementação, percebe-se que há uma redução no tempo de execução da implementação quando a classe de cortes é utilizada. 22

30 Capítulo 5 Resultados Computacionais Neste capítulo apresentamos os experimentos computacionais realizados sobre instâncias do CSP. 5.1 Ambiente dos Experimentos Todas as implementações foram desenvolvidas em C++ e utilizou-se o compilador Gnu C++ sem otimizações. Os testes foram realizados em um computador com a seguinte configuração: Dell processador Intel Core I Ghz com 4 GB de memória RAM e sistema operacional Linux Ubuntu com endereçamento de 32 bits. O solver IBM ILOG CPLEX versão 12.4 foi utilizado para resolver relaxações lineares e na implementação do branch-and-cut. Deste ponto em diante do texto trata-se por CPLEX o solver IBM ILOG CPLEX versão Instâncias de Teste Noventa e uma instâncias do CSP foram geradas utilizando o gerador de instâncias descrito na referência [8]. Estas instâncias consideram alfabetos com dois, quatro e vinte caracteres. 5.3 Análise dos Resultados Testou-se duas abordagens para solucionar as 91 instâncias do CSP. A primeira abordagem é um método padrão de Planos de Cortes com um branch-and-bound, onde todos os planos de cortes são gerados somente no nó raiz da árvore de enumerção do branch-and-cut. Ou 23

31 seja, o modelo de programação linear correspondente a uma instância é resolvido e caso a sua solução seja fracionária, então são gerados todos os cortes válidos para esta solução. Utilizando a classe de inequações, discutida no capítulo anterior, para aquela solução, cortes são inseridos no modelo de programação linear, e a relaxação linerar é novamente computada. Caso a nova solução seja inteira o método para, caso contrário novos cortes são inseridos ao modelo e o processo é repetido. A segunda abordagem é simplesmente resolver os modelos de programação linear inteira correspondentes às instâncias, utilizando o CPLEX. Os resultados obtidos com as implementações são apresentados nas Tabelas 5.1 a 5.4. Os cabeçalhos nas tabelas indicam: Instância: o tamanho da instância (n, m) e a semente utilizada para gerá-la; Relaxação linear: (OPT: valor ótimo, CPU: tempo de CPU, em horas, minutos e segundos, para calcular a relaxação linear); Plano de Cortes: (Método padrão de planos de cortes), informando o número de planos de cortes inseridos no nó raiz da árvore de enumeração, o valor de uma solução ótima obtido com esta técnica e o tempo de CPU, e Programação Inteira: (OPT: valor ótimo, CPU: tempo de CPU, em horas, minutos e segundos, para encontrar uma solução ótima inteira). Foram realizados diversos experimentos com instâncias de diferentes tamanhos. Dos resultados mostrados nas tabelas conclui-se: (a) O modelo em programação linear fornece excelentes limitantes inferiores aos valores de soluções ótimas inteiras; (b) Foram encontradas relativamente muitas inequações violadas no nó raiz da árvore de eumeração do branch-and-cut; (c) Devido o modelo ser muito forte, todas as instâncias testadas puderam ser resolvidas em pouco tempo (menos de duas horas de tempo de CPU). 24

32 Tabela 5.1: Instâncias do CSP considerando um alfabeto com dois caracteres Instância Relaxação linear Planos de Corte Programação Inteira n m Semente OPT CPU NumPC OPT CPU OPT CPU ,9 < 1s < 1s 377 1s < 1s < 1s 474 1s ,4 < 1s < 1s 567 < 1s ,8 < 1s s 652 2s ,8 < 1s < 1s 752 1s ,1 < 1s < 1s 946 < 1s < 1s < 1s s ,8 < 1s s s < 1s < 1s s ,6 < 1s < 1s 1697 < 1s ,6 < 1s s s ,6 < 1s s s ,7 < 1s s s ,6 < 1s s s ,2 < 1s s 691 6s ,9 < 1s s s ,7 < 1s m17s 989 1m19s ,5 < 1s s s ,1 < 1s m13s m14s < 1s m13s m15s < 1s m56s m3s ,5 < 1s m35s m42s Figura 5.1: Gráficos das diferenças dos tempos de CPU, mostrados nas Tabelas 5.1 a 5.4, considerando as duas abordagens testadas. 25

33 Tabela 5.2: Instâncias do CSP considerando um alfabeto com quatro caracteres Instância Relaxação Linear Planos de Corte Programação Inteira n m Semente OPT CPU NumPC OPT CPU OPT CPU ,3 < 1s < 1s 59 < 1s ,7 < 1s < 1s 115 < 1s ,3 < 1s < 1s 173 < 1s ,4 < 1s < 1s 231 < 1s ,7 < 1s s 291 1s ,5 < 1s < 1s 62 < 1s ,4 < 1s < 1s 125 < 1s ,2 < 1s s 182 1s ,9 < 1s s 246 9s ,7 < 1s s 306 1s ,7 < 1s m1s 65 2m29s ,5 < 1s < 1s 127 6s ,6 < 1s s s ,4 < 1s < 1s 254 1s ,5 < 1s s 318 2s ,9 < 1s s 67 36s ,0 < 1s < 1s 130 < 1s ,3 < 1s < 1s 195 < 1s ,9 < 1s s s ,4 < 1s m32s 325 2m34s ,8 < 1s s 67 9s ,8 < 1s m27s 132 2m50s ,2 < 1s s 197 1m30s ,0 < 1s < 1s 265 1s ,9 < 1s s 327 3s 26

34 Tabela 5.3: Instâncias do CSP considerando um alfabeto com quatro caracteres Instância Relaxação Linear Planos de Corte Programação Inteira n m Semente OPT CPU NumPC OPT CPU OPT CPU ,6 < 1s s 578 4s ,8 < 1s s s ,9 < 1s s s ,8 < 1s s s ,9 < 1s s s ,7 < 1s s s < 1s s s ,3 < 1s m10s m13s ,2 < 1s s s < 1s s s < 1s s s ,7 < 1s s s ,0 < 1s s 766 9s ,7 < 1s s 916 5s ,9 < 1s s s ,9 < 1s s s ,6 < 1s s s ,8 < 1s s s < 1s s s ,6 < 1s s s ,1 < 1s s s ,1 < 1s s s 27

35 Tabela 5.4: Instâncias do CSP considerando um alfabeto com vinte caracteres Instância Relaxação linear Planos de Corte Programação Inteira n m Semente OPT CPU NumPC OPT CPU OPT CPU < 1s s 780 5s ,7 < 1s s 976 6s ,7 < 1s s s ,6 < 1s s s ,7 < 1s s s ,2 < 1s s s ,2 < 1s s s ,6 < 1s s s ,3 1s s s ,7 1s s s ,2 1s s s ,1 < 1s m54s 820 2m55s ,0 < 1s s s ,7 < 1s s s ,4 < 1s m51s m55s ,8 < 1s s s ,9 1s m2s m8s ,0 1s m5s m12s ,4 1s m17s m24s ,3 1s m7s m14s s h16m21s h16m31s ,2 2s m39s m47s 28

36 Capítulo 6 Comentários Finais Esta dissertação é a respeito do Closest String Problem (CSP), um problema de otimização combinatória que aparece na área de Biologia Computacional. Dada a sua importância, dezenas de artigos foram publicados sobre este problema. O CSP pertence a classe de complexidade NP-difícil e diversas técnicas foram aplicadas para desenvolver algoritmos para o mesmo. São também conhecidos algoritmos de aproximação, heurísticas sem comprovação de garantia de otimalidade e métodos exatos (branch-and-cut) para resolver instâncias do problema. Na referência [8] foram propostos três formulações em programação linear inteira para o CSP. Nesta dissertação continuou-se o trabalho iniciado em [8] e propomos uma classe de inequações válidas (planos de corte) juntamente com um algoritmo de separação destas. Provou-se que embora o número destas inequações seja exponencial em n e m, respectivamente número de strings e o tamanho destas strings, o problema de separação é resolvido em tempo polinomial em n e m. Este é um importante resultado teórico e prático alcançado. Com o intuito de verificar o quão útil é a nova classe de planos de corte, foram realizados experimentos computacionais com a implementação de um branch-and-cut. A implementação utilizou o solver IBM ILOG CPLEX 12.4 para calcular as relaxações lineares dos modelos. Como já era esperado o modelo matemático descrito em [8] fornece excelentes limites inferiores nos valores de soluções ótimas. Os experimentos computacionais, obtidos com a implementação de um branch-andcut, dão evidências claras de que esta implementação é mais rápida quanto maior for o número de planos de corte gerados. Ainda como resultado desta pesquisa, criamos uma fórmula para calcular limites inferiores nos valores de soluções ótimas. Essas contribuições serão utilizadas em pesquisas futuras. 29

37 Referências Bibliográficas [1] A. Ben-Dor, G. Lancia, J. Perone, and R. Ravi, Banishing bias from consensus sequences, Proceedings of the 8th Annual Symposium on Combinatorial Pattern Matching (Aarhus, Denmark) (A. Apostolico and J. Hein, eds.), Lecture notes in computer science, no. 1264, Springer-Verlag, 1997, pp [2] R. E. Bixby, Notes on combinatorial optimization, Tech. report, Rice University, Department of Computational and Applied Mathematics, [3] C. Boucher, G. M. Landau, A. Levy, D. Pritchard, and O. Weimann, On approximating string selection problems with outliers, CoRR abs/ (2012), [4] C. C. de Souza, The graph equipartition problem: Optimal solutions, extensions and applications, Ph.D. thesis, Université Catholique de Louvain, [5] K. Lanctot, M. Li, B. Ma, S. Wang, and L. Zhang, Distinguishing string selection problems, Information and Computation 185 (2003), no. 1, [6] M. Li, B. Ma, and L. Wang, On the closest string and substring problems, Journal of the ACM 49 (2002), no. 2, [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, [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, [9] M. Minoux, Mathematical programming: Theory and algorithms, Wiley-Interscience, [10] G. L. Nemhauser and L. A. Wolsey, Integer and combinatorial optimization, John Wiley and Sons, New York,

38 [11] M. W. Padberg and M. Grötschel, Polyhedral computations, John Wiley and Sons, [12] A. Schrijver, Theory of linear and integer programming, John Wiley and Sons, [13] H. A. Taha, Operations research - an introduction, fourth edition, Macmillan Publishing Company,

Otimização Combinatória - Parte 4

Otimização Combinatória - Parte 4 Graduação em Matemática Industrial Otimização Combinatória - Parte 4 Prof. Thiago Alves de Queiroz Departamento de Matemática - CAC/UFG 2/2014 Thiago Queiroz (DM) Parte 4 2/2014 1 / 33 Complexidade Computacional

Leia mais

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 41

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 41 4 Resolução de IPs A teoria de programação linear foi proposta na década de 40 e logo foi observado que seria desejável a resolução de problemas que apresentavam variáveis do tipo inteiro [37]. Isto levou

Leia mais

Omar Latorre Vilca Universidade Federal do ABC (UFABC) Rua Santa Adélia, 166. Bairro Bangu. Santo André - SP - Brasil omar.vilca@ufabc.edu.

Omar Latorre Vilca Universidade Federal do ABC (UFABC) Rua Santa Adélia, 166. Bairro Bangu. Santo André - SP - Brasil omar.vilca@ufabc.edu. PLANOS DE CORTE E HEURÍSTICAS PARA O CLOSEST STRING PROBLEM Omar Latorre Vilca Universidade Federal do ABC (UFABC) Rua Santa Adélia, 166. Bairro Bangu. Santo André - SP - Brasil omar.vilca@ufabc.edu.br

Leia mais

Aula 13: Branch-and-bound

Aula 13: Branch-and-bound Aula 13: Branch-and-bound Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464/PCC174 2018/2 Departamento de Computação UFOP Previously... Modelagem em PI / Problemas Combinatórios

Leia mais

Métodos Exatos para PI - Parte 1: Branch-and-Bound

Métodos Exatos para PI - Parte 1: Branch-and-Bound Introdução à Otimização Combinatória Métodos Exatos para PI - Parte 1: Professora: Rosiane de Freitas (rosiane@icomp.ufam.edu.br) Bruno Raphael Cardoso Dias Prof. Estágio em Docência (bruno.dias@icomp.ufam.edu.br)

Leia mais

3. Resolução de problemas por meio de busca

3. Resolução de problemas por meio de busca Inteligência Artificial - IBM1024 3. Resolução de problemas por meio de busca Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Resolução de problemas por

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 1 de novembro de 2018 Marco Antonio

Leia mais

Aula 12: Programação Inteira

Aula 12: Programação Inteira Aula 12: Programação Inteira Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464/PCC174 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Programação Inteira: A Formulação

Leia mais

O problema da subsequência comum máxima sem repetições

O problema da subsequência comum máxima sem repetições O problema da subsequência comum máxima sem repetições Carlos E. Ferreira 1, Christian Tjandraatmadja 1 1 Instituto de Matemática e Estatística, Universidade de São Paulo, Brasil Abstract. We study the

Leia mais

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos Teobaldo L. Bulhões Júnior a a Instituto de Computação, Universidade Federal Fluminense, Niterói, RJ, Brazil

Leia mais

Algoritmos Exatos 3.1. Relaxação Lagrangeana

Algoritmos Exatos 3.1. Relaxação Lagrangeana 3 Algoritmos Exatos Nesse capítulo, apresenta-se alguns algoritmos exatos para o CVRP que são baseados em diferentes técnicas e formulações para a obtenção de limites inferiores para a solução ótima do

Leia mais

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464 / PCC174 Departamento de Computação - UFOP Breve Revisão Programação Linear vs Programação Inteira Modelagem

Leia mais

Método de Eliminação de Fourier-Motzkin

Método de Eliminação de Fourier-Motzkin ERMAC 200: I ENCONTRO REGIONAL DE MATEMÁTICA APLICADA E COMPUTACIONAL - 3 de Novembro de 200, São João del-rei, MG; pg 258-26 258 Método de Eliminação de Fourier-Motzkin André Rodrigues Monticeli, Cristiano

Leia mais

MÉTODOS EXATOS E HEURÍSTICOS PARA O PROBLEMA DA SEQUÊNCIA MAIS PRÓXIMA

MÉTODOS EXATOS E HEURÍSTICOS PARA O PROBLEMA DA SEQUÊNCIA MAIS PRÓXIMA MÉTODOS EXATOS E HEURÍSTICOS PARA O PROBLEMA DA SEQUÊNCIA MAIS PRÓXIMA Adria Lyra Universidade Federal Rural do Rio de Janeiro (UFRRJ) Av. Governador Amaral Peixoto, s/n. Centro, Nova Iguaçu/ RJ. Brasil.

Leia mais

3 Reformulação de IPs

3 Reformulação de IPs 3 Reformulação de IPs O desenvolvimento de métodos de resolução de problemas lineares que explorem a estrutura particular de determinado problema foi sugerido inicialmente por Ford e Fulkerson [46]. Este

Leia mais

Método Simplex. Marina Andretta ICMC-USP. 19 de outubro de 2016

Método Simplex. Marina Andretta ICMC-USP. 19 de outubro de 2016 Método Simplex Marina Andretta ICMC-USP 19 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211 - Otimização linear

Leia mais

Aula 19: Lifting e matrizes ideais

Aula 19: Lifting e matrizes ideais Aula 19: Lifting e matrizes ideais Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464/PCC174 2018/2 Departamento de Computação UFOP Previously... Branch-and-bound Formulações

Leia mais

Os Problemas de Optimização Combinatória e a Teoria da Complexidade

Os Problemas de Optimização Combinatória e a Teoria da Complexidade Metodologias de Apoio à Decisão Os Problemas de Optimização Combinatória e a Teoria da Complexidade Programação Inteira Mista Programação Linear Programação Binária Mista Programação Inteira Slide Fluxos

Leia mais

3 Extensões dos modelos matemáticos

3 Extensões dos modelos matemáticos 3 Extensões dos modelos matemáticos Os modelos matemáticos definidos por (2-1) (2-6) e (2-7) (2-13), propostos por Achuthan e Caccetta e apresentados no Capítulo 2, são reforçados neste trabalho através

Leia mais

Notas. Notas. encontrem a solução ótima em tempo polinomial para qualquer instância do problema que estamos trabalhando 2 / 19.

Notas. Notas. encontrem a solução ótima em tempo polinomial para qualquer instância do problema que estamos trabalhando 2 / 19. Projeto e Análise de Algoritmos Algoritmos Aproximados Haroldo Gambini Santos Universidade Federal de Ouro Preto - UFOP 2 de maio de 2013 1 / 19 Situação Ideal Desejamos algoritmos que: encontrem a solução

Leia mais

Aula 17: Planos de Corte

Aula 17: Planos de Corte Aula 17: Planos de Corte Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464/PCC174 2018/2 Departamento de Computação UFOP Previously... Branch-and-bound em programação inteira

Leia mais

Branch-and-Bound para problemas de Otimização Combinatória

Branch-and-Bound para problemas de Otimização Combinatória para problemas de Otimização Combinatória Rafael Antônio Marques Gomes Orientador: Haroldo Gambini Santos Departamento de Computação UFOP 26 de julho de 2011 Rafael Antônio Marques Gomes BB para problemas

Leia mais

Parte II. Aplicações em Roteamento de Veículos

Parte II. Aplicações em Roteamento de Veículos Parte II Aplicações em Roteamento de Veículos 5 Problema de Roteamento de Veículos com Restrição de Capacidade O problema de roteamento de veículos com restrição de capacidade, mais conhecido pela sua

Leia mais

Resolvendo algebricamente um PPL

Resolvendo algebricamente um PPL Capítulo 6 Resolvendo algebricamente um PPL 6.1 O método algébrico para solução de um modelo linear A solução de problemas de programação linear com mais de duas variáveis, não pode ser obtida utilizando-se

Leia mais

Prática 00. Total 04. Pré-requisitos. No. De Créditos 04

Prática 00. Total 04. Pré-requisitos. No. De Créditos 04 Disciplina Otimização Combinatória Departamento Carga Horária Semanal MINISTÉRIO DA EDUCAÇÃO E CULTURA PRÓ-REITORIA DE GRADUAÇÃO 1 PROGRAMA DE DISCIPLINA Departamento de Computação Teórica Pré-requisitos

Leia mais

Otimização. Conceitos Fundamentais. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2

Otimização. Conceitos Fundamentais. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2 Otimização Conceitos Fundamentais Paulo Henrique Ribeiro Gabriel phrg@ufu.br Faculdade de Computação Universidade Federal de Uberlândia 2016/2 Paulo H. R. Gabriel (FACOM/UFU) GSI027 2016/2 1 / 30 Agradecimentos

Leia mais

Programação Linear - Parte 5

Programação Linear - Parte 5 Matemática Industrial - RC/UFG Programação Linear - Parte 5 Prof. Thiago Alves de Queiroz 1/2016 Thiago Queiroz (IMTec) Parte 5 1/2016 1 / 29 Dualidade Os parâmetros de entrada são dados de acordo com

Leia mais

Algoritmo Branch-and-Price para o Problema de Corte de Estoque Não-Guilhotinado

Algoritmo Branch-and-Price para o Problema de Corte de Estoque Não-Guilhotinado Algoritmo Branch-and-Price para o Problema de Corte de Estoque Não-Guilhotinado Vinícius Loti de Lima e Thiago Alves de Queiroz Unidade de Matemática e Tecnologia - UFG/Regional Catalão, Av. Dr. Lamartine

Leia mais

Codificação de Huffman

Codificação de Huffman Codificação de Huffman Bruna Gregory Palm 11 de setembro de 2017 A codificação de Huffman é um método de compressão que considera as probabilidades de ocorrência de cada símbolo no conjunto de dados a

Leia mais

DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA

DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA unesp UNIVERSIDADE ESTADUAL PAULISTA Instituto de Biociências, Letras e Ciências Exatas DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Reformulação e Inequações Válidas para um Problema Integrado

Leia mais

5 VNS com Filtro e Reconexão por Caminhos

5 VNS com Filtro e Reconexão por Caminhos 5 VNS com Filtro e Reconexão por Caminhos A metaheurística VNS (Variable Neighborhood Search) foi proposta por Mladenović e Hansen [40] e possui como idéia básica a mudança de vizinhanças realizada da

Leia mais

Otimização Aplicada à Engenharia de Processos

Otimização Aplicada à Engenharia de Processos Otimização Aplicada à Engenharia de Processos Aula 4: Programação Linear Felipe Campelo http://www.cpdee.ufmg.br/~fcampelo Programa de Pós-Graduação em Engenharia Elétrica Belo Horizonte Março de 2013

Leia mais

6 Experimentos realizados

6 Experimentos realizados 6 Experimentos realizados 6.1 Considerações iniciais Resolvemos os modelos de PLIM utilizando o resolvedor CPLEX, baseado no método de branch-and-bound. Resolvemos as relaxações lineares dos mesmos modelos

Leia mais

Problemas de otimização

Problemas de otimização Problemas de otimização Problemas de decisão: Existe uma solução satisfazendo certa propriedade? Resultado: sim ou não Problemas de otimização: Entre todas as soluções satisfazendo determinada propriedade,

Leia mais

Algoritmos Combinatórios: Introdução

Algoritmos Combinatórios: Introdução lucia@site.uottawa.ca UFSC, Fevereiro, 2010 Estruturas e Problemas Combinatórios Introdução a Algoritmos Combinatórios O que são: Estruturas Combinatórias? Algoritmos Combinatórios? Problemas Combinatórios?

Leia mais

Programação Linear M É T O D O S : E S T A T Í S T I C A E M A T E M Á T I C A A P L I C A D A S D e 1 1 d e m a r ç o a 2 9 d e a b r i l d e

Programação Linear M É T O D O S : E S T A T Í S T I C A E M A T E M Á T I C A A P L I C A D A S D e 1 1 d e m a r ç o a 2 9 d e a b r i l d e Programação Linear A otimização é o processo de encontrar a melhor solução (ou solução ótima) para um problema. Existe um conjunto particular de problemas nos quais é decisivo a aplicação de um procedimento

Leia mais

Programação Linear Inteira. C. Requejo (UA) Métodos de Investigação Operacional MIO / 30

Programação Linear Inteira. C. Requejo (UA) Métodos de Investigação Operacional MIO / 30 Programação Linear Inteira Programação Linear Inteira C. Requejo (UA) Métodos de Investigação Operacional MIO 2016 1 / 30 Programação Linear Inteira Programação Linear Inteira Resolução de problemas de

Leia mais

4 Implementação Computacional

4 Implementação Computacional 4 Implementação Computacional 4.1. Introdução Neste capítulo é apresentada a formulação matemática do problema de otimização da disposição das linhas de ancoragem para minimizar os deslocamentos (offsets)

Leia mais

Problemas Intratáveis ou computação eficiente X computação ineficiente

Problemas Intratáveis ou computação eficiente X computação ineficiente Problemas Intratáveis ou computação eficiente X computação ineficiente Problemas Tratáveis Os problemas que podem ser resolvidos em tempo polinomial em um computador típico são exatamente os mesmos problemas

Leia mais

Quinta-feira, 11 de abril

Quinta-feira, 11 de abril 15.053 Quinta-feira, 11 de abril Mais alguns exemplos de programação inteira Técnicas de planos de corte para obter melhores limitações Entregar: Observações de Aula 1 Exemplo: Localização do corpo de

Leia mais

Teoria da Computação. Complexidade computacional classes de problemas

Teoria da Computação. Complexidade computacional classes de problemas Teoria da Computação Complexidade computacional classes de problemas 1 Universo de problemas Problemas indecidíveis ou não-computáveis Não admitem algoritmos Problemas intratáveis Não admitem algoritmos

Leia mais

Programação Matemática

Programação Matemática Programação Matemática Docentes: Ana Paula, Franklina e Maristela Instituto de Ciências Matemáticas e de Computação - ICMC Universidade de São Paulo USP (Material Elaborado por Aline Leão modificado por

Leia mais

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS Rosiana da Silva Lopes Danilo César Rodrigues Azevedo rosianalopes16@gmail.com danilo.azevedo@ufpi.edu.br.com

Leia mais

Pontos extremos, vértices e soluções básicas viáveis

Pontos extremos, vértices e soluções básicas viáveis Pontos extremos, vértices e soluções básicas viáveis Marina Andretta ICMC-USP 19 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta

Leia mais

Aulas 6 / 05 de setembro

Aulas 6 / 05 de setembro Gabriel Coutinho DCC5 - Pesquisa Operacional - 7. Simplex Ei-lo. Aulas 6 / 5 de setembro Método Simplex Input: Uma PL e uma base viável de colunas B. Output: Uma solução ótima, ou um certificado de que

Leia mais

Optimização de um Plano de Marketing Directo para o Sector da Banca Daniel Barata

Optimização de um Plano de Marketing Directo para o Sector da Banca Daniel Barata Optimização de um Plano de Marketing Directo para o Sector da Banca Daniel Barata, Fernando Bação, Victor Lobo Agenda Introdução Justificação do Tema Formulação usada Métodos de Resolução Exacto Guloso

Leia mais

Uma heurística GRASP para o Problema da Sequência mais Próxima

Uma heurística GRASP para o Problema da Sequência mais Próxima Uma heurística GRASP para o Problema da Sequência mais Próxima Válber Laux 1, Adria Lyra 1 1 Universidade Federal Rural do Rio de Janeiro (UFRRJ) Av. Governador Roberto Silveira, Centro, Nova Iguaçu -

Leia mais

Combinando inequações lineares

Combinando inequações lineares Combinando inequações lineares A multiplicação por um número > 0 não altera uma inequação 2x x 5 4x 2x 10 1 2 1 2 A soma de duas inequações (com o mesmo sentido) produz uma inequação válida x 3x x 3 1

Leia mais

Combinando inequações lineares

Combinando inequações lineares Combinando inequações lineares A multiplicação por um número > 0 não altera uma inequação 2x x 5 4x 2x 0 2 2 A soma de duas inequações (com o mesmo sentido) produz uma inequação válida x 3x + x 3 2 + 5x

Leia mais

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana Otimização Linear Profª : Adriana Departamento de Matemática adriana@fc.unesp.br wwwp.fc.unesp.br/~adriana Forma geral de um problema Em vários problemas que formulamos, obtivemos: Um objetivo de otimização

Leia mais

Um estudo computacional de dois algoritmos de programação dinâmica com utilização eficiente de cache

Um estudo computacional de dois algoritmos de programação dinâmica com utilização eficiente de cache Um estudo computacional de dois algoritmos de programação dinâmica com utilização eficiente de cache Guilherme S. Ribeiro 1, Marcus Ritt 1, Luciana S. Buriol 1 1 Instituto de Informática Universidade Federal

Leia mais

Um algoritmo pseudo-periférico genérico para a heurística de Snay

Um algoritmo pseudo-periférico genérico para a heurística de Snay Trabalho apresentado no CNMAC, Gramado - RS, 2016. Proceeding Series of the Brazilian Society of Computational and Applied Mathematics Um algoritmo pseudo-periférico genérico para a heurística de Snay

Leia mais

CAPÍTULO IV PROGRAMAÇÃO LINEAR INTEIRA (PLI)

CAPÍTULO IV PROGRAMAÇÃO LINEAR INTEIRA (PLI) CAPÍTULO IV PROGRAMAÇÃO LINEAR INTEIRA (PLI) Prof. Gilson Fernandes da Silva Departamento de Ciências Florestais e da Madeira (DCFM) Programa de Pós-graduação em Ciências Florestais (PPGCF) Universidade

Leia mais

Programação Inteira Resolução por Branch and Bound

Programação Inteira Resolução por Branch and Bound Programação Inteira Resolução por Branch and Bound Transparências de apoio à lecionação de aulas teóricas Versão 2.3 c 2012, 2010, 2009, 2001 Maria Antónia Carravilla José Fernando Oliveira FEUP Técnicas

Leia mais

Problema do Arranjo Linear Mínimo

Problema do Arranjo Linear Mínimo Problema do Arranjo Linear Mínimo Rafael Castro de Andrade Departamento de Estatística e Matemática Aplicada - Universidade Federal do Ceará Campus do Pici, Bloco 910. CEP 0.455-900 - Fortaleza, Ceará

Leia mais

4 Resolução exata do PAG

4 Resolução exata do PAG 4 Resolução exata do PAG No capítulo anterior foram apresentadas duas formulações para o Problema de Alocação Generalizada, (PAG-C) e (PAG-Exp). Uma aplicação da primeira destas formulações para a resolução

Leia mais

Programação Linear/Inteira

Programação Linear/Inteira Unidade de Matemática e Tecnologia - RC/UFG Programação Linear/Inteira Prof. Thiago Alves de Queiroz Aula 6 Thiago Queiroz (IMTec) Aula 6 Aula 6 1 / 45 Otimização Discreta A característica de otimização

Leia mais

Teoria de dualidade. Marina Andretta ICMC-USP. 19 de outubro de 2016

Teoria de dualidade. Marina Andretta ICMC-USP. 19 de outubro de 2016 Teoria de dualidade Marina Andretta ICMC-USP 19 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211 - Otimização

Leia mais

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana Otimização Linear Profª : Adriana Departamento de Matemática adriana@fc.unesp.br wwwp.fc.unesp.br/~adriana Revisão Método Simplex Solução básica factível: xˆ xˆ, xˆ N em que xˆ N 0 1 xˆ b 0 Solução geral

Leia mais

Marina Andretta. 17 de setembro de Baseado no livro Numerical Optimization, de J. Nocedal e S. J. Wright.

Marina Andretta. 17 de setembro de Baseado no livro Numerical Optimization, de J. Nocedal e S. J. Wright. Métodos de regiões de confiança Marina Andretta ICMC-USP 17 de setembro de 2014 Baseado no livro Numerical Optimization, de J. Nocedal e S. J. Wright. Marina Andretta (ICMC-USP) sme0212 - Otimização não-linear

Leia mais

Engenharia Industrial

Engenharia Industrial Programação Inteira: Partição e Avaliação, Planos de Corte (Mestrado) Engenharia Industrial http://dps.uminho.pt/pessoais/zan - Escola de Engenharia Departamento de Produção e Sistemas 1 PI: Introdução

Leia mais

Considere a função f(x). Para algum x a f (x) pode não existir. Suponha que. Max f(x) s. a a x b

Considere a função f(x). Para algum x a f (x) pode não existir. Suponha que. Max f(x) s. a a x b Considere a função f(x). Para algum x a f (x) pode não existir. Suponha que se queira resolver o seguinte PPNL: Max f(x) s. a a x b Pode ser que f (x) não exista ou que seja difícil resolver a equação

Leia mais

João Paulo de Freitas Araujo. Algoritmos para acelerar a computação de Árvores de corte de Gomory e Hu. Dissertação de Mestrado

João Paulo de Freitas Araujo. Algoritmos para acelerar a computação de Árvores de corte de Gomory e Hu. Dissertação de Mestrado João Paulo de Freitas Araujo Algoritmos para acelerar a computação de Árvores de corte de Gomory e Hu Dissertação de Mestrado Dissertação apresentada ao Programa de Pós- Graduação em Engenharia de Produção

Leia mais

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 3 Conceitos Básicos de Algoritmos Prof. Tiago A. E. Ferreira Definição de Algoritmo Informalmente... Um Algoritmo é qualquer procedimento computacional bem definido

Leia mais

Teoremas de dualidade

Teoremas de dualidade Teoremas de dualidade Marina Andretta ICMC-USP 19 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211 - Otimização

Leia mais

Cálculo Numérico BCC760

Cálculo Numérico BCC760 Cálculo Numérico BCC760 Resolução de Sistemas de Equações Lineares Simultâneas Departamento de Computação Página da disciplina http://www.decom.ufop.br/bcc760/ 1 Introdução! Definição Uma equação é dita

Leia mais

UMA HEURÍSTICA PARA O PROBLEMA DE REDUÇÃO DE CICLOS DE SERRA

UMA HEURÍSTICA PARA O PROBLEMA DE REDUÇÃO DE CICLOS DE SERRA UMA HEURÍSTICA PARA O PROBLEMA DE REDUÇÃO DE CICLOS DE SERRA Rodolfo Ranck Junior Horacio Hideki Yanasse José Carlos Becceneri Instituto Nacional de Pesquisas Espaciais INPE Caixa Postal 515 12.227-010

Leia mais

Branch and Bound - Ramicar e Limitar

Branch and Bound - Ramicar e Limitar Programação Linear Inteira Branch and Bound Haroldo Gambini Santos Universidade Federal de Ouro Preto - UFOP 30 de agosto de 2011 1 / 19 Branch and Bound - Ramicar e Limitar Idéia Básica O algoritmo roda

Leia mais

Resolução de problemas difíceis de programação linear através da relaxação Lagrangeana

Resolução de problemas difíceis de programação linear através da relaxação Lagrangeana problemas difíceis de programação linear através da relaxação Lagrangeana Ana Maria A.C. Rocha Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho arocha@dps.uminho.pt http://www.norg.uminho.pt/arocha

Leia mais

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016 Método Simplex dual Marina Andretta ICMC-USP 24 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211 - Otimização

Leia mais

Representação de poliedros

Representação de poliedros Representação de poliedros Marina Andretta ICMC-USP 8 de novembro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211 -

Leia mais

Códigos perfeitos e sistemas de Steiner

Códigos perfeitos e sistemas de Steiner CAPÍTULO 7 Códigos perfeitos e sistemas de Steiner Sistemas de Steiner são um caso particular de configurações (ou designs. Neste capítulo pretende-se apenas fazer uma breve introdução aos sistemas de

Leia mais

O Algoritmo Talus para Otimização Global

O Algoritmo Talus para Otimização Global O Algoritmo Talus para Otimização Global André Leite Luís Henrique de Santana Programa de Pós-Graduação em Eng. Elétrica Programa de Pós-Graduação em Eng. de Produção leite.andre@gmail.com santanalh@ahoo.com.br

Leia mais

Prof. Lorí Viali, Dr. PUCRS FAMAT: Departamento de Estatística. Curso: Engenharia de Produção

Prof. Lorí Viali, Dr. PUCRS FAMAT: Departamento de Estatística. Curso: Engenharia de Produção Considere a função f(x). Para algum x a f (x) pode não existir. Suponha que se queira resolver o seguinte PPNL: Max f(x) s. a a x b Pode ser que f (x) não exista ou que seja difícil resolver a equação

Leia mais

Programação Inteira. Solução com o método Branch-and-Bound

Programação Inteira. Solução com o método Branch-and-Bound Programação Inteira Solução com o método Branch-and-Bound Conceitos gerais Um conceito fundamental nos métodos de resolução de programação inteira é a relaxação linear p Consiste em substituir PIM Ζ +

Leia mais

Primeiro Exercício programa: Como o Google ordena páginas. MAP-2121 para EPUSP

Primeiro Exercício programa: Como o Google ordena páginas. MAP-2121 para EPUSP Primeiro Exercício programa: Como o Google ordena páginas MAP-2121 para EPUSP 1 Instruções gerais Os exercícios computacionais pedidos na disciplina Cálculo Numérico têm por objetivo fundamental familiarizar

Leia mais

Ciclos hamiltonianos e o problema do caixeiro viajante

Ciclos hamiltonianos e o problema do caixeiro viajante Ciclos hamiltonianos e o problema do caixeiro viajante Algoritmos em Grafos Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional.

Leia mais

O problema da Máxima Interseção de k-subconjuntos

O problema da Máxima Interseção de k-subconjuntos O problema da Máxima Interseção de k-subconjuntos Eduardo Theodoro Bogue 1, Cid Carvalho de Souza 1, Eduardo Candido Xavier 1 e Alexandre da Silva Freire 1 1 Instituto de Computação - Universidade Estadual

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Algoritmos Pontifícia Universidade Católica de Minas Gerais harison@pucpcaldas.br 26 de Maio de 2017 Sumário A complexidade no desempenho de Quando utilizamos uma máquina boa, ela tende a ter

Leia mais

Um algoritmo sem derivadas para otimização restrita

Um algoritmo sem derivadas para otimização restrita Um algoritmo sem derivadas para otimização restrita Paulo Domingos Conejo Elizabeth Wegner Karas UNIOESTE - Dep. Matemática UFPR - Dep. Matemática 85819-110, Cascavel, PR 81531-990, Curitiba, PR pconejo33@gmail.com

Leia mais

PCC173 - Otimização em Redes

PCC173 - Otimização em Redes PCC173 - Otimização em Redes Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 15 de maio de 2017 Marco Antonio M. Carvalho

Leia mais

DEPARTAMENTO DE ENGENHARIA MECÂNICA

DEPARTAMENTO DE ENGENHARIA MECÂNICA DEPARTAMENTO DE ENGENHARIA MECÂNICA Otimização: Algoritmos e Aplicações na Engenharia Mecânica ENG1786 & MEC2403 Ivan Menezes 2018-2 1 EMENTA 1. Introdução 1.1 Definições Básicas 1.2 Classificação dos

Leia mais

Resolução do problema do caixeiro viajante assimétrico (e uma variante) através da relaxação Lagrangeana

Resolução do problema do caixeiro viajante assimétrico (e uma variante) através da relaxação Lagrangeana Resolução do problema do caixeiro viajante assimétrico (e uma variante) através da relaxação Ana Maria A.C. Rocha e João Luís C. Soares Departamento de Produção e Sistemas Escola de Engenharia Universidade

Leia mais

Aula 22: Formulações com número exponencial de variáveis

Aula 22: Formulações com número exponencial de variáveis Aula 22: Formulações com número exponencial de variáveis Otimização Linear e Inteira Túlio Toffolo http://www.toffolo.com.br BCC464 / PCC174 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Correção

Leia mais

Técnicas de Concepção de Algoritmos: Branch and Bound

Técnicas de Concepção de Algoritmos: Branch and Bound Técnicas de Concepção de Algoritmos: R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CAL, 2010/2011 1 O que é? BB ou B&B é uma técnica de concepção de algoritmos genérica para

Leia mais

Algoritmos de aproximação - Problema do caixeiro viajante

Algoritmos de aproximação - Problema do caixeiro viajante Algoritmos de aproximação - Problema do caixeiro viajante Marina Andretta ICMC-USP 30 de setembro de 2015 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M. R. Cerioli,

Leia mais

2 Definição do Problema

2 Definição do Problema Definição do Problema. Formulação Matemática O problema do Fluxo Máximo entre todos os pares de nós surge no contexto de redes, estas representadas por grafos, e deriva-se do problema singular de fluxo

Leia mais

Números Reais. Víctor Arturo Martínez León b + c ad + bc. b c

Números Reais. Víctor Arturo Martínez León b + c ad + bc. b c Números Reais Víctor Arturo Martínez León (victor.leon@unila.edu.br) 1 Os números racionais Os números racionais são os números da forma a, sendo a e b inteiros e b 0; o conjunto b dos números racionais

Leia mais

Simplex. Transparências de apoio à leccionação de aulas teóricas. c 2011, 2009, 1998 José Fernando Oliveira, Maria Antónia Carravilla FEUP

Simplex. Transparências de apoio à leccionação de aulas teóricas. c 2011, 2009, 1998 José Fernando Oliveira, Maria Antónia Carravilla FEUP Simplex Transparências de apoio à leccionação de aulas teóricas Versão 3 c 2011, 2009, 1998 José Fernando Oliveira, Maria Antónia Carravilla FEUP Programação Linear abordagem algébrica max sujeito a: n

Leia mais

Teoria da Complexidade Computacional

Teoria da Complexidade Computacional Teoria da Complexidade Computacional 25 de novembro de 2011 Enquanto a teoria de análise de algoritmos estuda a análise de complexidade de algoritmos, a teoria da complexidade estuda a classificação de

Leia mais

UM ESTUDO COMPUTACIONAL DE MODELOS MATEMÁTICOS PARA O PROJETO DE REDES DE TELECOMUNICAÇÕES COM TOPOLOGIA EM ANEL

UM ESTUDO COMPUTACIONAL DE MODELOS MATEMÁTICOS PARA O PROJETO DE REDES DE TELECOMUNICAÇÕES COM TOPOLOGIA EM ANEL UM ESTUDO COMPUTACIONAL DE MODELOS MATEMÁTICOS PARA O PROJETO DE REDES DE TELECOMUNICAÇÕES COM TOPOLOGIA EM ANEL Elder Magalhães Macambira Universidade Federal da Paraíba Departamento de Estatística Cidade

Leia mais

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3 Algoritmo Aproximação Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3 Heurísticas para Problemas NP- Completo Heurística: algoritmo que pode produzir um bom resultado (ou até a solução ótima),

Leia mais

Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante

Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante Gabriel Freytag Guilherme Arruda Rogério S. M. Martins Edson L. Padoin Universidade Regional do Noroeste do Estado do Rio Grande

Leia mais

Programação Inteira. Algoritmo Branch-and-Bound (ou enumeração implícita)

Programação Inteira. Algoritmo Branch-and-Bound (ou enumeração implícita) Programação Inteira Algoritmo Branch-and-Bound (ou enumeração implícita) Métodos de Solução: Branch-and-Bound O método Branch-and-Bound (B&B) baseia-se na idéia de desenvolver uma enumeração inteligente

Leia mais

ANÁLISE DE ALGORITMOS (INF 1721)

ANÁLISE DE ALGORITMOS (INF 1721) PUC-Rio Departamento de Informática Prof. Marcus Vinicius S. Poggi de Aragão (3WA) Horário: 2as. e 4as. 9-11hs (3WA) 3 de dezembro de 2016 Período: 2016.2 ANÁLISE DE ALGORITMOS (INF 1721) 3 a Lista de

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema

Leia mais

II Seminário da Pós-graduação em Engenharia Elétrica

II Seminário da Pós-graduação em Engenharia Elétrica UMA INVESTIGAÇÃO DOS PARÂMETROS NOS MÉTODOS MISTOS DE OTIMIZAÇÃO NÃO LINEAR Ellen Cristina Ferreira Aluna do Programa de Pós-Graduação em Engenharia Elétrica Unesp Bauru Profa. Dra. Edméa Cássia Baptista

Leia mais

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013 Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void

Leia mais

Técnicas de análise de algoritmos

Técnicas de análise de algoritmos CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Técnicas de análise de algoritmos Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ nataliabatista@decom.cefetmg.br

Leia mais