um arcabouc¸o local branching para problemas de otimizac ... · av. antonio carlos , 6627,...

12
Um Arcabouc ¸o Local Branching para Problemas de Otimizac ¸˜ ao Combinat ´ oria aplicado ao Problema da ´ Arvore de Custo M´ ınimo com k Arestas Leonardo Conegundes Martinez Alexandre Salles da Cunha 1 Departamento de Ciˆ encia da Computac ¸˜ ao Universidade Federal de Minas Gerais (UFMG) Av. Antˆ onio Carlos, 6627, 31270-010, Belo Horizonte, MG, Brazil {leocm,acunha}@dcc.ufmg.br RESUMO Nesse artigo, apresentamos um arcabouc ¸o orientado a objetos cujo objetivo ´ e ser utilizado como uma fer- ramenta gen´ erica para o desenvolvimento e a implementac ¸˜ ao de algoritmos que utilizam o m´ etodo Local Branching para resolver Problemas de Otimizac ¸˜ ao Combinat´ oria. O Local Branching ´ e um algoritmo exa- to baseado em busca local, que define e controla vizinhanc ¸as de soluc ¸˜ oes vi´ aveis, e as explora atrav´ es de um resolvedor de Programac ¸˜ ao Inteira Mista gen´ erico antes de explorar o restante do espac ¸o de busca de soluc ¸˜ oes. Seu objetivo consiste em encontrar boas soluc ¸˜ oes vi´ aveis de forma r´ apida, possibilitando ainda encontrar a soluc ¸˜ ao ´ otima global e provar sua otimalidade. O arcabouc ¸o foi validado atrav´ es da resoluc ¸˜ ao do Problema da ´ Arvore de Custo M´ ınimo com k Arestas. Resultados de testes indicaram um bom desempenho do m´ etodo para a resoluc ¸˜ ao do problema, com tempos de execuc ¸˜ ao melhores que os obtidos pelo algoritmo Branch-and-Bound do CPLEX. PALAVRAS CHAVE: Local Branching; Engenharia de Software; Problema da ´ Arvore de Custo ınimo com k Arestas. OC - Otimizac ¸˜ ao Combinat ´ oria ABSTRACT In this paper we present an object-oriented framework to be used as a general tool for the development and implementation of algorithms based on Local Branching method to solve Combinatorial Optimization Prob- lems. Local Branching is an exact algorithm based on local search, that defines and controls neighborhoods around given feasible solutions and explores them through a generic Mixed Integer Programming solver be- fore exploring the rest of the search space. Its goal is to find good feasible solutions early in the computation and still be able to find and prove the global optimum. The framework was validated through the solution of the k-Cardinality Tree Problem. Our computational results indicated that the Local Branching method performs well when solving the problem, and has better CPU times than the times recorded by the CPLEX Branch-and-Bound algorithm. KEYWORDS: Local Branching; Software Engineering; k-Cardinality Tree Problem. CO - Combinatorial Optimization XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2145

Upload: hoangmien

Post on 25-Nov-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Um Arcabouco Local Branching paraProblemas de Otimizacao Combinatoria aplicado aoProblema da Arvore de Custo Mınimo com k Arestas

Leonardo Conegundes MartinezAlexandre Salles da Cunha

1Departamento de Ciencia da ComputacaoUniversidade Federal de Minas Gerais (UFMG)

Av. Antonio Carlos, 6627, 31270-010, Belo Horizonte, MG, Brazil

{leocm,acunha}@dcc.ufmg.br

RESUMO

Nesse artigo, apresentamos um arcabouco orientado a objetos cujo objetivo e ser utilizado como uma fer-ramenta generica para o desenvolvimento e a implementacao de algoritmos que utilizam o metodo LocalBranching para resolver Problemas de Otimizacao Combinatoria. O Local Branching e um algoritmo exa-to baseado em busca local, que define e controla vizinhancas de solucoes viaveis, e as explora atraves deum resolvedor de Programacao Inteira Mista generico antes de explorar o restante do espaco de busca desolucoes. Seu objetivo consiste em encontrar boas solucoes viaveis de forma rapida, possibilitando aindaencontrar a solucao otima global e provar sua otimalidade. O arcabouco foi validado atraves da resolucao doProblema da Arvore de Custo Mınimo com k Arestas. Resultados de testes indicaram um bom desempenhodo metodo para a resolucao do problema, com tempos de execucao melhores que os obtidos pelo algoritmoBranch-and-Bound do CPLEX.

PALAVRAS CHAVE: Local Branching; Engenharia de Software; Problema da Arvore de CustoMınimo com k Arestas.OC - Otimizacao Combinatoria

ABSTRACT

In this paper we present an object-oriented framework to be used as a general tool for the development andimplementation of algorithms based on Local Branching method to solve Combinatorial Optimization Prob-lems. Local Branching is an exact algorithm based on local search, that defines and controls neighborhoodsaround given feasible solutions and explores them through a generic Mixed Integer Programming solver be-fore exploring the rest of the search space. Its goal is to find good feasible solutions early in the computationand still be able to find and prove the global optimum. The framework was validated through the solutionof the k-Cardinality Tree Problem. Our computational results indicated that the Local Branching methodperforms well when solving the problem, and has better CPU times than the times recorded by the CPLEXBranch-and-Bound algorithm.

KEYWORDS: Local Branching; Software Engineering; k-Cardinality Tree Problem.CO - Combinatorial Optimization

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2145

1. IntroducaoDiversos problemas reais com aplicacoes relacionadas aos mais variados segmentos da industria podem sermodelados como Problemas de Otimizacao Combinatoria (POCs), incluindo problemas de projeto de redes,roteamento, sequenciamento, alocacao, cortes e empacotamento, entre outros. As tecnicas de solucao dePOCs podem ser classificadas em duas principais categorias: metodos exatos e heurısticos. Os metodos exa-tos tem a garantia de encontrar a solucao otima e provar sua otimalidade. No entanto, o tempo de execucaodesses algoritmos para os tamanhos dos problemas de interesse do mundo real sao muitas vezes insatis-fatorios, tornando necessario o desenvolvimento de metodos heurısticos, que visam encontrar boas solucoesem menores tempos de processamento, mas nao garantem a otimalidade. Recentemente, varias tecnicastem sido desenvolvidas com o objetivo de combinar ideias dessas duas frentes [Puchinger and Raidl 2005].Dentre estas, o nosso interesse e a tecnica Local Branching.

O Local Branching [Fischetti and Lodi 2003] e um algoritmo exato baseado em busca local, quedefine e controla vizinhancas de solucoes viaveis dadas, e as explora parcial ou totalmente, atraves de umresolvedor de Programacao Inteira Mista (MIP) generico, antes de explorar o restante do espaco de buscade solucoes. O objetivo e visitar regioes menores e mais promissoras em estagios iniciais do algoritmo debusca, aumentando a qualidade das solucoes encontradas e reduzindo o tempo total de processamento.

Nesse artigo apresentamos o ALB++, um Arcabouco Local Branching orientado a objetos, desen-volvido em C++, cujo objetivo e ser utilizado como uma ferramenta generica para o desenvolvimento e aimplementacao de algoritmos que utilizam o metodo Local Branching para resolver um POC. A ideia basicado ALB++ e capturar as caracterısticas importantes e invariantes do algoritmo Local Branching e forneceruma arquitetura base com suas implementacoes, de modo que um usuario que possua um modelo MIP paraum POC, possa, sem maiores esforcos, utilizar o metodo Local Branching para resolve-lo. Alem disso, oALB++ prove a estrutura basica do metodo, facilitando a implementacao de novas extensoes.

O ALB++ foi testado para a resolucao de um problema classico de Otimizacao Combinatoria, oProblema da Arvore de Custo Mınimo com k Arestas (PKACM) [Fischetti et al. 1994]. A abordagem deresolucao desse problema atraves do metodo Local Branching ainda nao foi testada na literatura. Para tanto,apresentamos uma melhora de uma reformulacao MIP compacta proposta por [Quintao et al. 2009] baseadanas desigualdades de Miller-Tucker-Zemlim. Essa melhora consiste em um novo conjunto de restricoes quepermite reduzir a multiplicidade de solucoes viaveis simetricas decorrente da reformulacao empregada.

Este artigo esta organizado da seguinte forma. A Secao 2 apresenta uma revisao do metodo LocalBranching. A Secao 3 apresenta o arcabouco proposto e ilustra seus principais componentes. Na Secao 4,validamos o arcabouco proposto atraves de sua aplicacao para a resolucao do PKACM. Uma reformulacaopara o problema, o conjunto de restricoes de eliminacao da multiplicidade de solucoes viaveis e resultadoscomputacionais sao apresentados. Por fim, algumas conclusoes e direcoes para trabalhos futuros sao descritasna Secao 5.

2. Local BranchingPara muitos problemas difıceis de Otimizacao Combinatoria, encontrar a solucao otima em um temporazoavel de processamento e uma tarefa bastante desafiadora, tornando extremamente importante obtersolucoes de boa qualidade em estagios iniciais da computacao. O Local Branching (LB) e um metodoexato baseado em busca local proposto para resolver problemas MIP 0-1, cujo objetivo consiste em melhoraro comportamento heurıstico de um resolvedor MIP generico, encontrando boas solucoes viaveis de formamais rapida e possibilitando ainda encontrar a solucao otima global e provar sua otimalidade.

Em um nıvel estrategico, o algoritmo define e controla subespacos de solucoes viaveis que saoexplorados em um nıvel tatico por um resolvedor MIP generico. A ideia e fazer com que o resolvedorexplore primeiramente regioes mais promissoras e menores do espaco de busca, aumentando a qualidade dassolucoes encontradas em estagios iniciais da computacao e reduzindo o tempo total de busca.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2146

Para [Pochet and Wolsey 2006], o Local Branching deve ser classificado como uma heurıstica demelhoria, ja que seu objetivo e melhorar uma dada solucao viavel. Segundo [Hansen et al. 2006], o LB euma tecnica MIP projetada para ser um metodo exato, mas que atua como um metodo heurıstico se umlimite de tempo e fornecido e atingido antes que a solucao otima para o problema seja encontrada e tenhasua otimalidade provada.

Recentemente, o metodo tem sido utilizado para resolver diversos POCs, como por exemplo, oProblema do Projeto de Redes de Telecomunicacoes [M. Fischetti 2004], o Problema de Roteirizacao eProgramacao de Veıculos [Mendes 2007] e o Problema do Projeto de Rede Capacitada com Custos Fixos[Martın and Gonzaleza 2008], apenas para citar alguns.

Para melhor compreender a tecnica, considere um POC com variaveis 0-1:

min cTx (1)

Ax ≥ b (2)

xi ∈ B, ∀i ∈ B 6= ∅ (3)

xi ∈ Z+, ∀i ∈ Z (4)

xi ∈ R+, ∀i ∈ R (5)

A ∈ Qm×n, b ∈ Qm, c ∈ Qn. (6)

O conjunto dos ındices das variaveis I := {1, . . . , n} e particionado nos conjuntos (B,Z,R), emque B 6= ∅ e o conjunto dos ındices das variaveis binarias e os conjuntos Z e R sao os conjuntos dos ındicesdas variaveis inteiras e contınuas, respectivamente.

O algoritmo LB trabalha com o conceito de vizinhanca de uma solucao viavel, definido a seguir.Dada uma solucao viavel x para (1)-(6), define-se S := {i ∈ B : xi = 1} como o suporte binario de x. Dadoum parametro K, define-se a vizinhanca K-OPT de x, denotada por N(x,K), como o conjunto de solucoesviaveis que alem de satisfazerem (2)-(6), tambem satisfazem a restricao de Local Branching:

∆(x, x) :=∑i∈S

(1− xi) +∑i∈B\S

xi ≤ K (7)

A restricao (7) define N(x,K) como o conjunto de solucoes viaveis em que o numero de variaveisbinarias que diferem de x e no maximo igual aK. O primeiro e o segundo termo referem-se, respectivamente,as variaveis que mudam de 1 para 0 e de 0 para 1.

Para os casos em que a cardinalidade do suporte binario de qualquer solucao viavel para (1)-(6) econstante, a restricao (7) pode ser reescrita em uma forma mais compacta como

∆(x, x) :=∑i∈S

(1− xi) ≤ K ′, (8)

em que K ′ = K/2. Este e o caso do Problema da Arvore de Custo Mınimo com k Arestas, do Problema doCaixeiro Viajante [Dantzig et al. 1954], dentre outros.

A restricao de Local Branching pode ser usada como um criterio de ramificacao em um esquema deenumeracao do tipo Branch-and-Bound (B&B). Dada uma solucao viavel x, o espaco de solucao associado

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2147

ao no corrente pode ser particionado em (i) ∆(x, x) ≤ K (ramo esquerdo) e (ii) ∆(x, x) ≥ K + 1 (ramodireito). O parametro K deve ser escolhido de forma que o espaco de busca do subproblema associado aoramo esquerdo seja grande o suficiente para conter uma solucao viavel melhor que x e ao mesmo tempopequeno o suficiente para que seja mais facil de ser resolvido do que o problema associado ao seu pai.

As principais etapas do metodo Local Branching sao descritas no Algoritmo 1, em que x∗ representaa melhor solucao viavel conhecida.

Algoritmo 1 Algoritmo Local BranchingSaıda: Melhor solucao encontrada para o problema

1: gere uma solucao inicial viavel x para o problema;2: x∗ ← x;3: loop4: adicione a restricao ∆(x, x∗) ≤ K ao modelo MIP;5: resolva o subproblema resultante;6: se uma solucao viavel x melhor que x∗ for encontrada entao7: remova a restricao ∆(x, x∗) ≤ K do modelo MIP;8: adicione a restricao ∆(x, x∗) ≥ K + 1 ao modelo MIP;9: x∗ ← x;

10: senao11: remova a restricao ∆(x, x∗) ≤ K do modelo MIP;12: adicione a restricao ∆(x, x∗) ≥ K + 1 ao modelo MIP;13: saia do loop;14: fim se15: fim loop16: resolva o subproblema resultante;17: se uma solucao viavel x melhor que x∗ for encontrada entao18: x∗ ← x;19: fim se20: retorne x∗

2.1. Extensoes do metodo Local Branching

Com o objetivo de aprimorar o comportamento heurıstico do metodo, [Fischetti and Lodi 2003] propuserama introducao dos seguintes parametros de controle no algoritmo:

• Limite de tempo para os subproblemas: Define-se um limite de tempo para a resolucao de cadasubproblema. No caso em que esse limite de tempo e atingido, tem-se duas situacoes possıveis: (i)uma solucao viavel melhor do que a melhor solucao viavel conhecida foi encontrada. Nesse caso,cria-se um novo ramo na arvore de LB usando a nova solucao encontrada para criar a restricao de LB;(ii) nenhuma solucao viavel melhor do que a melhor solucao viavel conhecida foi encontrada. Nessecaso, reduz-se o tamanho da vizinhanca explorada com o objetivo de reduzir o tempo de busca. Issopode ser feito reduzindo o valor do lado direito da desigualdade de LB, por exemplo, para bK/2c.

• Diversificacao: Sempre que e provado que o no sendo explorado nao possui solucao viavel melhordo que a melhor solucao conhecida, aplica-se uma diversificacao “fraca”, que consiste em aumentaro tamanho da vizinhanca sendo explorada, fazendo com que o lado direito da desigualdade de LBtenha seu valor aumentado, por exemplo, para K + dK/2e. Para os casos em que mesmo apos ouso da diversificacao “fraca”, prova-se nao haver uma solucao viavel melhor que a melhor solucaoconhecida, utiliza-se uma diversificacao “forte” no espırito da meta-heurıstica Variable Neighbor-hood Search [Mladenovic and Hansen 1997]. Neste caso, admite-se encontrar uma solucao pior que

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2148

a melhor solucao conhecida, mas nao muito distante dela. Essa nova solucao passa a ser a solucaode referencia para a criacao da restricao de LB da proxima ramificacao.

3. O Arcabouco Local Branching - ALB++

Um arcabouco e um conjunto de componentes colaborativos reusaveis, parcial ou totalmente implementados,que prove uma arquitetura generica de solucoes para um conjunto de problemas de um domınio especıfico.Ele oferece solucoes abstratas que podem ser instanciadas, por exemplo, com a implementacao de subclassesconcretas e com a particularizacao de suas classes genericas [Andreatta et al. 1997].

Recentemente, varios arcaboucos foram propostos para o desenvolvimento e implementacao deheurısticas, meta-heurısticas e metodos exatos para a resolucao de POCs [Xu et al. 2005, Djerrah et al. 2006,Dreo et al. 2008, Gagne and Parizeau 2008]. Pelo que conhecemos, apenas um arcabouco foi desenvolvidopara o uso do metodo Local Branching [Lichtenberger 2005], sendo este implementado como uma extensaodo COIN/BCP [Ralphs and Ladanyi 2005], um resolvedor Branch-and-Cut de codigo aberto. As princi-pais vantagens do ALB++ em relacao ao proposto por [Lichtenberger 2005] sao: interface, processos deinstanciacao e extensao extremamente mais simples, uma vez que nao e necessario o conhecimento da ex-tensa API (Interface de Programacao de Aplicativos) do COIN/BCP e a integracao direta com o resolvedorCPLEX, pacote de otimizacao muito empregado pelos centros de pesquisa e industria.

3.1. Principais conceitos

O arcabouco Local Branching orientado a objetos proposto foi implementado na linguagem de programacaoC++ e baseado no uso de padroes de projeto, em particular, o padrao comportamental template method[Gamma et al. 1995], que permite a definicao, em classes abstratas, do esqueleto de um algoritmo, deixandoque alguns passos sejam especializados por subclasses concretas. Trata-se de uma tecnica fundamental parao reuso de codigo e prove a estrutura de controle invertida presente em arcaboucos, muitas vezes chamadade Princıpio de Hollywood: “Nao nos chame, nos o chamaremos” [Sweet 1995], que se refere ao fato dasclasses pais abstratas chamarem as funcoes definidas nas subclasses concretas.

O ALB++ encapsula, em classes abstratas e genericas (C++ templates), os principais aspectos en-volvidos no algoritmo Local Branching: (i) definicao da formulacao para o POC, (ii) definicao da vizinhancade uma solucao viavel (restricao de Local Branching), (iii) heurısticas para a obtencao de uma solucao inicialviavel (Passo 1), com a qual a primeira restricao de Local Branching sera criada (Passo 4, na primeira iteracaodo loop) e (iv) algoritmos de resolucao dos subproblemas (nıvel tatico) da arvore de Local Branching (Passos5 e 16). O ALB++ possui implementacoes default de classes concretas relacionadas aos itens (iii) e (iv) e,portanto, alem de prover mecanismos de extensibilidade, torna simples o processo de resolucao de um POCatraves do algoritmo Local Branching, uma vez que e necessario que o usuario implemente em subclassesconcretas apenas os modulos que definem os itens (i) e (ii). As classes concretas default relacionadas aositens (iii) e (iv) utilizam o pacote de otimizacao CPLEX, que retorna a primeira solucao viavel encontradano caso (iii) e executa com seus parametros default no caso (iv).

A utilizacao do arcabouco proposto apresenta diversas vantagens em relacao a uma implementacaoa partir do princıpio para cada problema que se queira resolver com o metodo Local Branching:

• Reuso e estabilidade: Os modulos abstratos sao desenvolvidos apenas uma vez e podem ser utiliza-dos em diferentes aplicacoes, se tornando mais estaveis;• Produtividade: O ALB++ permite um desenvolvimento mais rapido e eficiente da aplicacao, uma

vez que apenas as partes dependentes do problema devem ser implementadas;• Clareza Conceitual: A separacao entre o algoritmo abstrato e o problema especıfico considerado

prove uma maior clareza da aplicacao, facilitando os processos de desenvolvimento e depuracao.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2149

3.2. Definicao das classes

A seguir, descrevemos as principais classes do arcabouco:

• Problem: contem os dados iniciais do POC a ser resolvido e metodos opcionais de pre e pos-processamento;

• Formulation: contem a representacao do modelo MIP para o POC a ser resolvido;

• BuildStrategy: encapsula em subclasses concretas algoritmos (heurısticas) para obtencao de umasolucao inicial viavel;

• CPLXBuildStrategy: subclasse concreta que utiliza o CPLEX para obter uma solucao inicialviavel;

• TacticalSolver: encapsula em subclasses concretas algoritmos para resolucao dos subproblemas;

• CPLXTacticalSolver: subclasse concreta que utiliza o CPLEX como resolvedor dos subproblemas;

• LocalBranching: contem as partes invariantes do algoritmo Local Branching e implementacoes de-fault para partes variantes, podendo estas serem redefinidas em subclassess;

• Solution: dependente do problema e definida como um template. Encapsula a representacao de umasolucao para o POC e define a interface que o algoritmo deve utilizar para manipula-la.

3.3. Processo de instanciacao

Um dos principais requisitos do projeto do ALB++ foi apresentar um elevado grau de facilidade de utilizacao,que tornasse o seu processo de instanciacao um procedimento bastante simples. O arcabouco foi desen-volvido sob a filosofia de [Booch 1994], que disse: “O mais bem projetado dos frameworks nunca serareutilizado, a menos que o custo de entender e utilizar suas abstracoes seja menor que o custo estimado doprogramador para implementa-las a partir do princıpio”. Portanto, para que o ALB++ seja instanciado, bastaque o usuario defina subclasses concretas das classes abstratas Problem e Formulation, que sao especıficasde cada problema. A especializacao das demais classes e opcional.

As classes proveem declaracoes de funcoes virtuais e funcoes virtuais puras. Aquelas que saodeclaradas como virtuais possuem uma implementacao default, mas podem ser redefinidas pelo usuario. As-sim, torna-se possıvel determinar um comportamento padrao para certas classes e funcoes, mas que pode serpersonalizado para diferentes aplicacoes. Um exemplo e a funcao que configura os parametros do algoritmoLocal Branching, como por exemplo, o valor de K, o limite de tempo para a resolucao dos subproblemase o numero maximo de diversificacoes aplicadas. Se o usuario do arcabouco desejar uma configuracao deparametros diferente para a resolucao de seu problema, basta que ele redefina a funcao em uma subclasseconcreta da classe LocalBranching. Ja as funcoes virtuais puras nao possuem nenhuma implementacao de-fault e, portanto, devem obrigatoriamente ser definidas pelo usuario nas subclasses concretas. Exemplos saoas funcoes relacionados a implementacao da formulacao, como as funcoes de criacao das variaveis, criacaoda funcao objetivo e criacao das restricoes. Todas elas sao especıficas de cada problema e portanto devemser sempre implementadas.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2150

4. Uma aplicacao do ALB++ ao Problema da Arvore de Custo Mınimo com k ArestasA seguir, ilustramos como o arcabouco proposto foi aplicado a resolucao de um POC classico.

4.1. Definicao do problema

O Problema da Arvore de Custo Mınimo com k Arestas (PKACM) e definido a partir de um grafo naodirecionado G = (V,E), com um conjunto de vertices V (n = |V |) e um conjunto de arestas E (m = |E|).Custos {ce ≥ 0 : e ∈ E} e pesos {dv ≥ 0 : v ∈ V } sao associados, respectivamente, as arestas e aosvertices de G. O custo de uma arvore T = (VT , ET ) em G e dado pela soma do custo de suas arestasc(ET ) =

∑e∈ET

ce mais a soma dos pesos dos vertices da arvore w(VT ) =∑

v∈VTdv. No PKACM, o

objetivo e determinar a arvore de custo mınimo de G com exatamente k arestas.

O PKACM foi extensamente estudado na literatura e suas principais aplicacoes envolvem areascomo arrendamento de pocos de petroleo, telecomunicacoes, roteamento (quorumcasting), mineracao e pro-jetos de layout. A complexidade do problema foi estudada em [Fischetti et al. 1994] e foi provado queo PKACM e NP-Difıcil se 2 ≤ k ≤ n − 2. A maior parte dos estudos focou no desenvolvimento deheurısticas e meta-heurısticas de varios tipos, que incluem: Busca Local [Blum and Ehrgott 2003], BuscaTabu [Jornsten and Lokketangen 1997] e Variable Neighborhood Search [Brimberg et al. 2006], apenas paracitar alguns. Tres trabalhos apresentaram, ate o momento, metodos exatos para a resolucao do problema:[Ehrgott and Freitag 1996] e mais recentemente [Chimani et al. 2008] e [Quintao et al. 2009].

4.2. Uma reformulacao para o PKACM baseada nas desigualdades de Miller-Tucker-Zemlim

Nesta secao, apresentamos a reformulacao para o PKACM que foi utilizada em nosso algoritmo LocalBranching. [Quintao et al. 2009] introduziram uma reformulacao para o PKACM baseada nas desigualdadesde Miller-Tucker-Zemlim para eliminacao de sub-rotas. Essa reformulacao faz uso de uma transformacao dografo original de entrada que introduz um consideravel grau de simetria nas solucoes viaveis do problema.Propomos nesse trabalho um conjunto de restricoes para evitar esta multiplicidade de solucoes simetricasviaveis, destacando que este conjunto de restricoes pode ser empregado em outros problemas similares.

Para reformular o PKACM, [Quintao et al. 2009] utilizaram um digrafo D = (V ,A), obtido a partirdo grafo G de definicao do problema, da seguinte forma. Inicialmente, dois vertices artificias, n+ 1 e n+ 2,sao introduzidos em V , dando origem a V := V ∪ {n + 1, n + 2}. O conjunto A, por sua vez, e dado pelauniao dos seguintes conjuntos de arcos:

• o conjunto de arcos que partem do vertice artificial n+ 1:{(n+ 1, i) : i ∈ V } e {(n+ 1, n+ 2)}, com custos {c(n+1,i) = 0 : i ∈ V } e {c(n+1,n+2) = 0},• o conjunto de arcos que partem do vertice artificial n+ 2:{(n+ 2, i) : i ∈ V }, com custos {c(n+2,i) = 0 : i ∈ V } e, finalmente,

• o conjunto de arcos obtidos a partir da duplicacao das arestas de E:AE = {(i, j), (j, i) : [i, j] ∈ E}, com custos satisfazendo c(i,j) = c[i,j] + dj e c(j,i) = c[i,j] + di.

A partir dessas transformacoes, define-se uma formulacao compacta baseada em um lifting das de-sigualdades de eliminacao de circuitos propostas por [Miller et al. 1960], aqui denotada por MTZ, empre-gando-se os seguintes conjuntos de variaveis:

• Variaveis de decisao binarias {xa : a ∈ A}, com xa assumindo valor 1 caso o arco a seja parte deuma solucao viavel e 0 caso contrario;• Variaveis de nıvel {ui ∈ R+ : i ∈ V }, denotando o numero de arcos no caminho que conecta a raizn+ 1 a i em uma arborescencia viavel.

Dado S ⊂ V , define-se δ+(S) := {(i, j) ∈ A : i ∈ S, j ∈ V \ S} e δ−(S) := {(i, j) ∈ A : i ∈V \ S, j ∈ S} respectivamente como o conjunto de arcos que partem e incidem em S. Para simplificar anotacao, abreviaremos δ+({i}) e δ−({i}), por respectivamente δ+(i) e δ−(i). A reformulacao MTZ para oPKACM e entao dada por:

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2151

min

{∑a∈A

caxa : (x, u) ∈ PMTZR ∩ B2(m+n)+1 × Rn+2+

}(9)

em que PMTZR e definido por:

∑a∈AE

xa = k, (10)

∑a∈δ+(n+1)

xa = n− k, (11)

∑a∈δ+(n+2)

xa = 1, (12)

∑a∈δ−(j)

xa = 1, ∀j ∈ V ∪ {n+ 2}, (13)

x(n+1,i) + x(i,j) ≤ 1, ∀(i, j) ∈ AE , (14)

(k + 3)x(i,j) + ui − uj + (k + 1)x(j,i) ≤ k + 2, ∀(i, j) ∈ AE , (15)

(k + 3)x(i,j) + ui − uj+ ≤ k + 2, ∀(i, j) ∈ A \AE , (16)

x(n+1,n+2) = 1, (17)

un+1 = 0. (18)

A restricao (10) garante que uma arborescencia viavel deve ter exatamente k arcos. A restricao (11)garante que exatamente n−k arcos devem partir da raiz n+1 e a restricao (12) garante que exatamente 1 arcodeve partir do vertice n+ 2. As restricoes (13) garantem que exatamente 1 arco deve incidir em cada verticede V ∪ {n + 2}. As restricoes (14) impoem que em qualquer solucao viavel todo vertice i ∈ V ou estejadiretamente conectado ao vertice n + 1 ou possa ser conectado a outros vertices em VT . As desigualdades(15)-(16) sao adaptacoes das desigualdades de eliminacao de circuitos propostas por [Miller et al. 1960] quegarantem que a solucao procurada e livre de ciclos. A restricao (17) conecta os vertices artificiais n + 1 en+ 2 e finalmente, a restricao (18) inicializa o nıvel da raiz n+ 1 como zero.

4.3. Eliminando a multiplicidade de solucoes simetricas viaveis ocasionada pela reformulacao doPKACM

Seja VT ⊂ V , com |VT | = k+ 1, o conjunto de vertices selecionados para fazer parte de uma solucao viavelpara uma dada instancia do PKACM. Assim, o subgrafo T = (VT , ET ) em que o conjunto de arcosET induzuma arvore de mınimo custo gerando T e uma solucao viavel para o problema definido em G. Observe quepara cada um dos vertices r ∈ VT , uma solucao distinta, com mesmo custo, existe em D. Assim sendo, paracada solucao viavel do PKACM emG, k+1 solucoes distintas e com mesmo custo foram geradas emD. Estamultiplicidade de solucoes pode implicar em arvores de enumeracao bastante extensas, dificultando a solucao

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2152

do PKACM atraves de um algoritmo exato, do tipo Branch-and-Bound, baseado na reformulacao (9)-(18).Para contornar esta dificuldade, vamos introduzir um conjunto de restricoes que elimine esta multiplicidadede solucoes em D. Considere entao o seguinte conjunto de desigualdades:

∑(s,t)∈AE∩δ+(t)

sx(s,t) + (n+ 2)x(n+2,t) + (n+ 1)x(n+1,t) ≥∑j∈V

jx(n+2,j), ∀t ∈ V. (19)

Para entender o efeito da introducao das desigualdades (19) na formulacao MTZ, vamos consideraruma solucao viavel para o PKACM emG, dada por T = (VT , ET ). A introducao de (19) garante que, dentretodas as possıveis arborescencias que satisfazem as restricoes (10)-(18), apenas uma sera viavel: aquela emque o vertice n + 2 se conecta diretamente ao vertice de VT de menor ındice. Dado um vertice t ∈ V , doiscasos devem ser considerados para a analise das desigualdades (19):

• Caso 1: t ∈ VT → x(n+1,t) = 0. Temos entao duas possibilidades:– Caso 1a:

∑(s,t)∈AE∩δ+(t) x(s,t) = 1→ x(n+2,t) = 0. Sendo s ∈ V o ındice do predecessor

de t no caminho que o leva ate a raiz n + 1 e w ∈ V o (unico) vertice que se conectadiretamente ao vertice artificial n+ 2, temos: sx(s,t) ≥ wx(n+2,w) → s ≥ w.

– Caso 1b:∑

(s,t)∈AE∩δ+(t) x(s,t) = 0 → x(n+2,t) = 1. Entao temos que (n + 2)x(n+2,t) ≥tx(n+2,t) → (n+ 2) ≥ t e trivialmente satisfeita para qualquer t ∈ V .

• Caso 2: t 6∈ VT → x(n+1,t) = 1, x(n+2,t) =∑

(s,t)∈AE∩δ+(t) x(s,t) = 0. Neste caso (n +1)x(n+1,t) ≥ wx(n+2,w) → n+ 1 ≥ w e trivialmente satisfeita para qualquer w ∈ V .

4.4. Utilizando o ALB++

Nesta secao, descrevemos o processo de implementacao de subclasses concretas especıficas para a utilizacaodo arcabouco proposto na resolucao do PKACM.

Subclasses concretas das classes Problem, Formulation e LocalBranching foram implementadas,com os nomes KCTProblem, KCTFormulation e KCTLocalBranching, respectivamente. A seguir, apre-sentamos uma descricao de cada uma delas:

• KCTProblem: foram implementadas as estruturas de dados para representar os dados do problema,como por exemplo, o grafo de entrada, o valor de k e o nome da instancia. Alem disso, funcoesde leitura e escrita dos arquivos de entrada e saıda e uma funcao de transformacao do grafo foramdefinidas.• KCTFormulation: a reformulacao MIP apresentada na Secao 4.2 foi implementada, atraves da

definicao do corpo das funcoes virtuais puras da classe Formulation, que incluem as funcoes cre-ateParameters(), createVariables(), createObjectiveFunction() e createConstraints().• KCTLocalBranching: a restricao de Local Branching foi implementada em sua forma compacta,

descrita pela desigualdade 8.

Utilizamos as classes concretas CPLXBuildStrategy e CPLXTacticalSolver ja implementadasno arcabouco para obter uma solucao inicial viavel e resolver os subproblemas atraves do CPLEX. Arepresentacao da solucao para o PKACM foi feita com a classe IloBoolVarArray da biblioteca Concert Tech-nology do CPLEX, que representa um vetor de variaveis booleanas, e encapsulada na classe Solution.

4.5. Resultados Computacionais

Para validar o arcabouco proposto e avaliar o desempenho do metodo Local Branching para resolver oPKACM, realizamos testes computacionais sob um conjunto de instancias utilizado por [Quintao et al. 2009].Estas instancias consistem em grafos grid com tamanhos variando de 10×10 ate 20×20 e pesos nos vertices

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2153

gerados uniformemente no intervalo [10, 10000]. Elas foram consideradas as instancias mais difıceis em[Quintao et al. 2009] e apresentam o valor de k fixado em k ≈ n

2 , apontado como o valor mais difıcil para onumero de arestas da arvore [Kataoka et al. 2000].

Todos os testes computacionais foram executados em um Pentium XEON, 3.0 GHz, 2 GBytes dememoria RAM e sistema operacional Linux. Como resolvedor MIP utilizamos o pacote comercial CPLEX,versao 10.2.0 com parametros default. Todas essas configuracoes sao exatamente as mesmas utilizadas por[Quintao et al. 2009].

O algoritmo Local Branching implementado utilizou os parametros K = 15, 300 segundos para olimite de tempo dos subproblemas e nenhuma estrategia de diversificacao. Nao foi especificado um limitede tempo total para o algoritmo. A solucao inicial viavel foi obtida atraves do proprio CPLEX, configuradopara retornar a primeira solucao viavel encontrada. O tempo gasto nesse processo foi considerado no tempototal do algoritmo LB. Cabe notar que uma outra estrategia poderia ter sido empregada para a obtencao deuma solucao viavel inicial, como o uso de heurısticas. No entanto, preferimos empregar o CPLEX com oobjetivo de alcancar resultados que independem da qualidade dessas heurısticas e por isso podem ser melhorcomparados com os resultados apresentados pelo algoritmo B&B proposto por [Quintao et al. 2009].

A Tabela 1 apresenta os resultados computacionais do algoritmo Local Branching proposto nestetrabalho e tambem os resultados do algoritmo B&B proposto por [Quintao et al. 2009], com o intuito depodermos analisar melhor o desempenho do metodo. As primeiras quatro colunas fornecem os dados dasinstancias. As tres colunas seguintes apresentam os dados do algoritmo LB, correspondentes ao tempo gasto,melhor limite superior encontrado e status do algoritmo ao final da execucao. As tres colunas que seguemapresentam os mesmos dados para o algoritmo B&B. Por fim, a ultima coluna apresenta a razao entre ostempos de execucao dos algoritmos B&B e LB para as instancias em que ambos provaram a otimalidade.Uma entrada “OPT” nas colunas “Status” indica que a instancia foi resolvida na otimalidade. Ja uma entrada“OFM” indica que o algoritmo foi terminado assim que toda a memoria disponıvel foi utilizada. A indicacao(+) a direita de “OPT” ou “OFM” indica que o algoritmo LB encontrou um limite superior melhor que oencontrado pelo algoritmo B&B.

Dados da instancia Resultados do LB Resultados do B&B

n m k t(s) Melhor LS Status t(s) Melhor LS Status tB&B(s)tLB(s)

GRID 10 50 1 100 180 50 6241.39 16052 OPT 16794.61 16052 OPT 2.69

GRID 10 50 2 100 180 50 620.66 14026 OPT 1142.42 14026 OPT 1.84

GRID 10 50 3 100 180 50 57.18 13117 OPT 535.55 13117 OPT 9.37

GRID 10 50 4 100 180 50 1232.11 14254 OPT 14087.91 14254 OPT 11.43

GRID 10 50 5 100 180 50 3084.87 17093 OPT 32373.64 17093 OPT 10.49

GRID 15 112 1 225 420 112 32945.28 38322 OPT 55682.19 38322 OPT 1.69

GRID 15 112 2 225 420 112 100034.00 32061 OPT+ 69518.57 32062 OFM -

GRID 15 112 3 225 420 112 90040.54 31321 OFM+ 70307.49 31357 OFM -

GRID 15 112 4 225 420 112 881273.93 30732 OFM+ 90554.05 30745 OFM -

GRID 15 112 5 225 420 112 136159.40 29869 OFM 59829.79 29869 OFM -

GRID 20 200 1 400 760 200 122037.06 55678 OFM+ 48282.72 56512 OFM -

GRID 20 200 2 400 760 200 28883.36 - OFM 31041.96 - OFM -

GRID 20 200 3 400 760 200 29061.59 - OFM 34204.25 - OFM -

GRID 20 200 4 400 760 200 43249.88 - OFM 39177.20 - OFM -

GRID 20 200 5 400 760 200 44487.95 62364 OFM+ 43301.99 64839 OFM -

Tabela 1. Resultados Local Branching versus B&B

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2154

Os resultados das instancias em que ambos os algoritmos provaram a otimalidade demostraram queo algoritmo LB foi mais eficiente que o algoritmo B&B, com o tempo total de execucao do B&B sendo emmedia 5.25 vezes superior ao tempo do LB.

Em cinco das nove instancias para as quais o algoritmo B&B terminou devido a falta de memoria,o algoritmo LB encontrou melhores limites superiores, provando a otimalidade de uma delas. Observe queos tempos do LB para essas instancias sao superiores aos tempos correspondentes do B&B. Isso acontece jaque o LB consome menos memoria que o B&B, com subproblemas menores sendo resolvidos em cada etapado algoritmo. Portanto, a tendencia e que o LB se mantenha em execucao por mais tempo ate utilizar toda amemoria disponıvel.

Para as instancias 2, 3 e 4 com k = 200, ambos os algoritmos nao encontraram nenhuma solucaoviavel. Esta situacao pode ser facilmente contornada no algoritmo LB, utilizando-se uma heurıstica paragerar uma solucao inicial viavel, como por exemplo, o algoritmo DynamicTree proposto por [Blum 2007].

5. Conclusoes

Nesse artigo apresentamos o ALB++, um arcabouco orientado a objetos construıdo com o objetivo de serser utilizado como uma ferramenta generica para o desenvolvimento e a implementacao de algoritmos queutilizam o metodo Local Branching para resolver Problemas de Otimizacao Combinatoria. O arcaboucofoi testado para resolver o Problema da Arvore de Mınimo Custo com k Arestas. Para tanto, utilizamosuma reformulacao MIP compacta proposta por [Quintao et al. 2009] baseada nas desigualdades de Miller-Tucker-Zemlim, acrescida de um novo conjunto de restricoes para eliminacao da multiplicidade de solucoessimetricas viaveis decorrente da reformulacao. Em relacao a resolucao exata do PKACM, este conjunto derestricoes e uma contribuicao adicional do artigo. Resultados de testes mostraram um bom desempenho dometodo Local Branching para a resolucao do PKACM, superior ao obtido com o algoritmo B&B puro.

Como trabalhos futuros, pretendemos estender o arcabouco implementado e utiliza-lo para a reso-lucao de outros POCs. Algumas possıveis extensoes sao: torna-lo apto a funcionar com solucoes inviaveis(para o caso em que achar uma solucao inicial viavel e um processo caro computacionalmente), proverimplementacoes default de restricoes de Local Branching para variaveis inteiras (nao binarias) e proverimplementacoes default de resolvedores dos subproblemas do metodo diferentes do Branch-and-Bound doCPLEX.

Referencias

Andreatta, A. A., Carvalho, S. E. R., and Ribeiro, C. C. (1997). A framework for the development of localsearch heuristics for combinatorial optimization problems.

Blum, C. (2007). “Revisiting dynamic programming for finding optimal subtrees in trees”. European Journalof Operational Research, 177:102–115.

Blum, C. and Ehrgott, M. (2003). “Local search algorithms for the k-cardinality tree problem”. DiscreteApplied Mathematics, 128:511–540.

Booch, G. (1994). Designing an Application Framework, volume 19. Dr. Dobb’s Journal.

Brimberg, J., Urosevic, D., and Mladenovic, N. (2006). “Variable Neighborhood Search for the VertexWeighted k-Cardinality Tree Problem”. EJOR, 171:74–84.

Chimani, M., Kandyba, M., Ljubic, I., and Mutzel, P. (2008). “Obtaining Optimal k-Cardinality Trees Fast”.ALENEX 2008 Proceedings, pages 27–36.

Dantzig, G., Fulkerson, D., and Johnson, S. (1954). “Solution of a large scale traveling salesman problem”.Operations Research, 2:393–410.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2155

Djerrah, A., Cung, B. L. C. V. D., and Roucairol, C. (2006). Bob++: Framework for solving optimizationproblems with branch-and-bound methods. High Performance Distributed Computing.

Dreo, J., Aumasson, J. P., and Tfail, W. (2008). Open metaheuristics web site. http://ometah.berlios.de/.

Ehrgott, M. and Freitag, J. (1996). “K TREE/K SUBGRAPH: A program package for minimal weightedk-cardinality trees and subgraphs”. European Journal of Operational Research, 93:224–225.

Fischetti, M., Hamacher, H., Jornsten, K., and Maffioli, F. (1994). “Weighted k-Cardinality Trees: Complex-ity and Polyhedral Structure”. Networks, 24:11–21.

Fischetti, M. and Lodi, A. (2003). “Local Branching”. Mathematical Programming, 98:23–47.

Gagne, C. and Parizeau, M. (2008). Open beagle: a generic c++ framework for evolutionary computation.

Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design patterns: elements of reusable object-oriented software. Addison-Wesley Professional.

Hansen, P., Mladenovic, N., and Urosevic, D. (2006). “Variable neighborhood search and local branching”.Comput. Oper. Res., 33(10):3034–3045.

Jornsten, K. and Lokketangen, A. (1997). “Tabu Search for Weighted k-Cardinality Trees”. Asia-PacificJOR, 14(1):9–26.

Kataoka, S., Araki, N., and Yamada, T. (2000). Upper and lower bounding procedures for minimum rootedk-subtree problem. EJOR, 122:561–569.

Lichtenberger, D. (2005). An Extended Local Branching Framework and its Application to the Multidimen-sional Knapsack Problem. PhD thesis, Vienna University of Technology, Institute of Computer Graphicsand Algorithms.

M. Fischetti, C. Polo, M. S. (2004). A local branching heuristic for mixed-integer programs with 2-levelvariables, with an application to a telecommunication network design problem. Networks, 44(2):61–72.

Martın, I. and Gonzaleza, J. (2008). “A local branching heuristic for the capacitated fixed-charge networkdesign problem”. Submmited to Comput. Oper. Res.

Mendes, A. B. (2007). Programacao de frota de apoio a operacoes ’offshore’ sujeita a requisicao demultiplas embarcacoes para uma mesma tarefa. PhD thesis, Engenharia Naval e Oceanica, EscolaPolitecnica (EP), USP.

Miller, C. E., Tucker, A. W., and Zemlin, R. A. (1960). “Integer programming formulations and travellingsalesman problems”. Journal of the Association of Computing Machinery, 7:326–329.

Mladenovic, N. and Hansen, P. (1997). “Variable neighborhood search”. Comput. Oper. Res., 24:1097–1100.

Pochet, Y. and Wolsey, L. (2006). Production Planning by Mixed Integer Programming. Springer.

Puchinger, J. and Raidl, G. R. (2005). Combining metaheuristics and exact algorithms in combinatorialoptimization: A survey and classification. In IWINAC (2), pages 41–53.

Quintao, F., Cunha, A., Mateus, G., and Lucena, A. (2009). “The k-cardinality Tree Problem: Re-formulations and Lagrangian Relaxation”. Discrete Applied Mathematics, Aceito para publicacao :doi:10.1016/j.dam.2009.01.017.

Ralphs, T. and Ladanyi, L. (2005). Coin/bcp user’s manual.

Sweet, R. E. (1995). The Mesa programming environment, volume 20. Addison-Wesley Professional.

Xu, Y., Ralphs, T. K., Ladanyi, L., and Saltzman, M. (2005). Alps: A framework for implementing parallelsearch algorithms. The Proceedings of the Ninth INFORMS Computing Society Conference.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2156