81
Grafo de Conflitos: Constru¸ ao e Aplica¸ oes em Problemas de Programa¸ ao Inteira Samuel Souza Brito Universidade Federal de Ouro Preto UNIVERSIDADE FEDERAL DE OURO PRETO Orientador: Haroldo Gambini Santos Disserta¸c˜ ao de Mestrado submetida ao Pro- grama de P´ os-Gradua¸c˜ ao em Ciˆ encia da Com- puta¸c˜ ao da Universidade Federal de Ouro Preto, como parte dos requisitos exigidos para aobten¸c˜ ao do t´ ıtulo de Mestre em Ciˆ encia da Computa¸c˜ ao. Ouro Preto, Fevereiro de 2015

Grafo de Conflitos: Construção e Aplicações em Problemas ...‡ÃO... · Programação Inteira. 3. Programação heuristica. I. Santos, Haroldo Gambini. II. Universidade Federal

Embed Size (px)

Citation preview

Grafo de Conflitos: Construcao eAplicacoes em Problemas de

Programacao Inteira

Samuel Souza BritoUniversidade Federal de Ouro Preto

UNIVERSIDADE FEDERAL DE OURO PRETO

Orientador: Haroldo Gambini Santos

Dissertacao de Mestrado submetida ao Pro-

grama de Pos-Graduacao em Ciencia da Com-

putacao da Universidade Federal de Ouro

Preto, como parte dos requisitos exigidos para

a obtencao do tıtulo de Mestre em Ciencia da

Computacao.

Ouro Preto, Fevereiro de 2015

ii

Grafo de Conflitos: Construcao eAplicacoes em Problemas de

Programacao Inteira

Samuel Souza BritoUniversidade Federal de Ouro Preto

Orientador: Haroldo Gambini Santos

ii

Catalogação: www.sisbin.ufop.br

B862g Brito, Samuel Souza. Grafo de conflitos [manuscrito]: construção e aplicações em problemas deprogramação inteira / Samuel Souza Brito. - 2015. 81f.: il.: grafs; tabs.

Orientador: Prof. Dr. Haroldo Gambini Santos.

Dissertação (Mestrado) - Universidade Federal de Ouro Preto. Instituto deCiências Exatas e Biológicas. Departamento de Computação. Programa de Pós-Graduação em Ciência da Computação. Área de Concentração: Ciência da Computação.

1. Grafo (Sistema de computador). 2. Programação Inteira. 3. Programaçãoheuristica. I. Santos, Haroldo Gambini. II. Universidade Federal de Ouro Preto.III. Titulo.

CDU: 004.42

vi

A minha mae, Maria,

pelo apoio e amor incondicional

durante toda a minha trajetoria de vida.

A Tamara,

por acreditar no meu potencial

e me incentivar desde o inıcio.

vii

viii

Resumo

Este trabalho explora a informacao estrutural de relacoes entre variaveis binarias em

problemas de Programacao Inteira por meio de grafos de conflitos. Tal estrutura possui

um papel fundamental na construcao de metodos exatos e heurısticos de resolucao. Nesse

sentido, o presente trabalho propoe e desenvolve tecnicas baseadas na analise de grafos

de conflitos para obtencao de solucoes factıveis e limites duais fortes para problemas

de Programacao Inteira. Foram desenvolvidas otimizacoes nas tecnicas de deteccao de

conflitos, que permitiram a construcao rapida de grafos densos mediante a analise de

restricoes. A obtencao de limites duais fortes para programas inteiros e realizada por

uma rotina desenvolvida para geracao de desigualdades validas. Essa rotina e responsavel

por gerar cortes de clique e ciclo ımpar e inseri-los na relaxacao linear, reforcando os

limites duais e acelerando a convergencia para a solucao otima. Para obter solucoes

factıveis para programas binarios foi desenvolvido um resolvedor heurıstico, que utiliza

as relacoes logicas entre variaveis para construir uma solucao inicial e melhora-la por

meio de uma busca local. A busca local executa uma cadeia de movimentos a cada

iteracao, que permite corrigir a infactibilidade de uma solucao ou, ate mesmo, saltar de

uma solucao factıvel para outra. Considerando a producao de limites duais fortes, os

resultados obtidos pela rotina de geracao de desigualdades desenvolvida mostraram uma

convergencia mais rapida em relacao a rotina de separacao de cortes do resolvedor COIN-

OR Branch-and-Cut. Em relacao a obtencao de factibilidade, o resolvedor heurıstico foi

apto a gerar solucoes para um numero significativo de problemas de Programacao Inteira

Binaria, considerando tempos restritos de execucao.

Palavras-chave: Grafo de Conflitos, Programacao Inteira, Programacao Binaria, Heurısticas,

Plano de Cortes, Cliques, Ciclos Impares.

ix

x

Abstract

This work explores the structural information of relations between binary variables

in Integer Programming problems using conflict graphs. Such structure has a fundamen-

tal role in the construction of exact and heuristic solving methods. In this sense, the

present work proposes and develops techniques based on the analysis of conflict graphs

to obtain feasible solutions and strong dual bounds for Integer Programming problems.

Optimizations were developed in the conflict detection techniques that allowed the fast

construction of dense graphs through the constraints analysis. The obtaining of strong

dual bounds for integer programs is performed by a routine developed for the generation

of valid inequalities. This routine is responsible for generating clique and odd hole cuts

and insert them into the linear relaxation, strengthening the dual bounds and accele-

rating the convergence to the optimal solution. To obtain feasible solutions for binary

programs it was developed a heuristic solver, which uses the logical relations between

variables to build an initial solution and improve it through a local search. Local search

performs chains of movements at each iteration, which allows to fix infeasibilities of a

solution or even jump from a feasible solution to another. Considering the production

of strong dual bounds, the results obtained by the developed routine for generating

inequalities showed a faster convergence compared with the cut separation routine of

COIN-OR Branch-and-Cut solver. Regarding the production of feasible solutions, the

heuristic solver was able to generate solutions to a significant number of Integer Binary

Programming problems considering restricted runtimes.

Keywords: Conflict Graph, Integer Programming, Binary Programming, Heuristics,

Cutting Planes, Cliques, Odd Holes.

xi

xii

Declaracao

Esta dissertacao e resultado de meu proprio trabalho, exceto onde referencia explici-

tatoria e feita ao trabalho de outros, e nao foi submetida para outra qualificacao nesta

nem em outra universidade.

Samuel Souza Brito

xiii

xiv

Agradecimentos

Agradeco primeiramente a minha mae, Maria, que por muitas vezes abriu mao de

seus sonhos para que os meus tornassem realidade. E, tambem, por ser meu maior

exemplo de vida. Ao meu pai, Elias, pela motivacao durante essa jornada. Ao meu

irmao, Thalles, pelo apoio contınuo e uniao.

A minha namorada, Tamara, pela dedicacao, incentivo e carinho. Pelos belos mo-

mentos e tambem pela paciencia e companheirismo nos momentos mais difıceis desta

caminhada.

Aos amigos e familiares, em especial minha avo, Maria das Gracas, pessoa admiravel

que foi minha grande fonte de incentivo e perseveranca.

Ao professor Haroldo, por todos estes anos de orientacao, desde o meu terceiro

perıodo de graduacao. Pela confianca, paciencia e dedicacao durante todo esse tempo,

me proporcionando um imensuravel conhecimento, que vai alem da simples formacao

academica.

A UFOP e aos professores do DECOM pela oportunidade oferecida e pelos ensina-

mentos passados.

A todos que ajudaram direta ou indiretamente neste trabalho.

xv

xvi

Sumario

Lista de Figuras xix

Lista de Tabelas xxi

Nomenclatura 1

1 Introducao 3

1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.1.1 Objetivos Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.1.2 Objetivos Especıficos . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2 Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Grafo de Conflitos 7

2.1 Construcao de Grafos de Conflitos . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Deteccao de Cliques em Restricoes Menos Estruturadas . . . . . . . . . . 10

2.2.1 Cliques Envolvendo Ativacao de Variaveis . . . . . . . . . . . . . 11

2.2.2 Cliques Envolvendo Complementos de Variaveis . . . . . . . . . . 12

2.2.3 Exemplo de Deteccao de Cliques . . . . . . . . . . . . . . . . . . . 12

3 Planos de Corte 15

3.1 Separacao de Cortes de Clique . . . . . . . . . . . . . . . . . . . . . . . . 16

xvii

3.2 Separacao de Cortes de Ciclo Impar . . . . . . . . . . . . . . . . . . . . . 18

4 Uma Abordagem Heurıstica Baseada em Grafos de Conflitos para a

Solucao de Programas Binarios 21

4.1 Restricoes Comuns em Programas Binarios . . . . . . . . . . . . . . . . . 22

4.2 Fase Construtiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.3 Busca Local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5 Experimentos Computacionais 29

5.1 Caracterizacao das instancias . . . . . . . . . . . . . . . . . . . . . . . . 29

5.2 Construcao de Grafos de Conflitos . . . . . . . . . . . . . . . . . . . . . . 31

5.3 Separacao de Cortes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.4 Resolvedor Heurıstico para Problemas de Programacao Binaria . . . . . . 34

6 Consideracoes Finais 37

6.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Referencias Bibliograficas 39

A Detalhamento dos Experimentos Computacionais 43

A.1 Informacoes Sobre as Instancias Utilizadas e seus Grafos de Conflitos . . 43

A.2 Melhoria dos Limites Duais por Instancia . . . . . . . . . . . . . . . . . . 48

xviii

Lista de Figuras

2.1 Um exemplo de grafo de conflitos. . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Um grafo de conflitos para P . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.1 Exemplo de um grafo K3 em que o lifting poderia ser aplicado, transformado-

o em um K4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.2 Exemplo de ciclo ımpar e possıvel extensao para uma roda. . . . . . . . . 19

4.1 Grafo de conflitos para PB e seu grafo complementar ponderado. . . . . 25

5.1 Melhoria do limite dual para instancias da MIPLIB, usando as rotinas

lnpsep, npsep e cgl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5.2 Melhoria do limite dual para instancias da INRC, usando as rotinas lnp-

sep, npsep e cgl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5.3 Melhoria do limite dual para instancias do Telebus, usando as rotinas

lnpsep, npsep e cgl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

xix

xx

Lista de Tabelas

5.1 Resumo das caracterısticas dos conjuntos de instancias. . . . . . . . . . . 30

5.2 Resumo dos resultados obtidos na construcao dos grafos de conflitos. . . 31

5.3 Producao de solucoes factıveis em 60 e 300 segundos. . . . . . . . . . . . 35

A.1 Dados das instancias da MIPLIB, incluindo grafos de Conflitos. . . . . . 43

A.2 Dados das instancias da INRC, incluindo grafos de Conflitos. . . . . . . . 46

A.3 Dados das instancias do Telebus, incluindo grafos de Conflitos. . . . . . . 48

A.4 Melhoria dos limites duais para instancias da MIPLIB. . . . . . . . . . . 50

A.5 Melhoria dos limites duais para instancias da INRC. . . . . . . . . . . . . 53

A.6 Melhoria dos limites duais para instancias do Telebus. . . . . . . . . . . . 56

xxi

xxii

Nomenclatura

CBC COIN-OR Branch-and-Cut

CGL COIN-OR Cut Generation Library

COIN-OR COmputational INfrastructure for Operations Research

GLPK GNU Linear Programming Kit

GUB Generalized Upper Bound

INRC International Nurse Rostering Competition

LHS Left-Hand Side - Lado Esquerdo da Restricao

MIPLIB Mixed Integer Problem Library

OC Otimizacao Combinatoria

PB Programa Linear Binario

PI Programacao Inteira

PO Pesquisa Operacional

RHS Right-Hand Side - Lado Direito da Restricao

RNA Randomized Non-Ascendent Method

SPP Set Packing Polytope - Politopo de Empacotamento de Nos

1

2

Capıtulo 1

Introducao

Em sua forma geral, um problema de otimizacao tem como objetivo maximizar ou

minimizar uma funcao definida sobre um certo domınio. Especificamente, a Otimizacao

Combinatoria (OC) trata do caso em que esse domınio e finito. Tais problemas surgem

numa infinidade de aplicacoes da vida real, como o roteamento de veıculos, alocacao de

trabalhadores ou maquinas a tarefas (Allahverdi et al., 2008), Biologia Computacional

(Lancia, 2004), escalonamento de projetos (Pritsker et al., 1969), entre outros.

Uma forma de resolver problemas de OC seria simplesmente enumerar todas as

possıveis solucoes e guardar aquela de melhor valor da funcao objetivo. Porem, essa abor-

dagem se torna inviavel na pratica, pois frequentemente o numero de solucoes possıveis

cresce exponencialmente em funcao do tamanho do problema. Dessa forma, surge a

necessidade de desenvolver ou aprimorar tecnicas mais apuradas.

No campo dos modelos matematicos destaca-se a Programacao Linear Inteira, tambem

referida como Programacao Inteira (PI) (Wolsey, 1998). Um problema de PI pode ser

visto como um problema de programacao matematica em que a funcao objetivo, bem

como as restricoes, sao lineares, porem uma ou mais variaveis de decisao podem apenas

assumir valores inteiros. O modelo formal de um problema de PI pode ser expresso

como:

3

4 Introducao

Minimize:

cTx + hTy (1.1)

Sujeito a:

Ax + Gy ≤ b (1.2)

x ≥ 0, y ≥ 0 (1.3)

x ∈ Zn, y ∈ Rp (1.4)

onde x representa um conjunto de variaveis de decisao inteiras de dimensao n, sujeitas

a um vetor de custos c, e y um conjunto de variaveis de decisao contınuas de dimensao

p, sujeitas a um vetor de custos h.

Uma informacao implıcita disponıvel na modelagem de problemas de PI e fundamen-

tal para sua resolucao e o grafo de conflitos. Um grafo de conflitos representa relacoes

logicas entre variaveis de decisao binarias. Mais precisamente, vertices representam

variaveis e seus complementos, enquanto uma aresta entre dois vertices indica que a

ativacao simultanea de ambas as variaveis, representadas pelos vertices em questao, pro-

duz uma solucao infactıvel. A construcao do grafo se concentra em analisar as restricoes

do problema para encontrar relacoes do tipo “se xi = 1, entao xj = 0”, ou seja, xi

e xj nao podem ser ativadas ao mesmo tempo em uma solucao factıvel. Assim, essa

relacao logica seria representada no grafo de conflitos por uma aresta entre os vertices

que representem as variaveis xi e xj.

O modo tradicional de construcao de grafos de conflitos, constituıdo de tecnicas

probing (Savelsbergh, 1994), realiza a exploracao sistematica em cada restricao, anali-

sando pares de variaveis e as possıveis combinacoes de valores para elas. Desse modo,

o processo de construcao tende a ser lento para problemas de medio a grande porte.

Nesse sentido, o presente trabalho explora a rapida deteccao de conflitos como forma

de acelerar o processo de construcao do grafo. Para isso, e utilizada uma estrategia de

deteccao de cliques em restricoes. Assim, o processo de analise de uma restricao que an-

teriormente possuıa complexidade computacional quadratica (O(n2)) pode ser reduzida

a complexidade O(n log n), onde n representa o numero de variaveis nao-nulas contidas

na restricao.

Alem da melhoria no processo de construcao, este trabalho apresenta duas abordagens

que utilizam grafos de conflitos para atuar na solucao de problemas de PI. A primeira

Introducao 5

delas constitui de um rotina de geracao de desigualdades validas, tambem denominadas

como cortes. Essa rotina visa a melhoria dos limites duais fornecidos pela relaxacao linear

do programa inteiro, permitindo a aceleracao da convergencia para a solucao otima.

Devido a sua grande importancia, a geracao e insercao de cortes esta presente nos atuais

resolvedores de PI baseados em Branch-and-Bound (Land e Doig, 1960), tais como IBM

ILOG CPLEX, Gurobi Optimizer, COmputation INfrastructure for Operations Research

(COIN-OR) Branch-and-Cut (Lougee-Heimer, 2003), entre outros.

A segunda abordagem desenvolvida consiste de um resolvedor heurıstico para pro-

blemas de Programacao Inteira Binaria (ou Programacao Binaria). Esse resolvedor foi

construıdo com o objetivo de encontrar uma solucao factıvel em tempos computacionais

restritos. Para isso, utiliza as relacoes logicas entre variaveis, contidas no grafo de con-

flitos, para construir uma solucao inicial. Em seguida, a solucao e melhorada por meio

de uma busca local, que executa uma cadeia de movimentos a cada iteracao, tambem

gerada a partir da analise do grafo associado ao problema. A execucao de cadeias de

movimentos permite corrigir a infactibilidade de uma solucao ou, ate mesmo, saltar de

uma solucao factıvel para outra. A necessidade de realizar cadeias de movimentos se

da devido ao grande numero de variaveis de decisao e de variaveis auxiliares presentes

em programas binarios, de modo que e bem provavel que a alteracao do valor de uma

variavel por vez produzira somente solucoes infactıveis.

1.1 Objetivos

Nesta secao sao apresentados os principais objetivos deste trabalho.

1.1.1 Objetivos Gerais

Os objetivos deste trabalho sao: acelerar o processo de construcao de grafos de conflitos

e demonstrar sua importancia no desenvolvimento de algoritmos capazes de atuar na

solucao eficiente de problemas de Programacao Inteira.

6 Introducao

1.1.2 Objetivos Especıficos

Para alcancar o objetivo geral faz-se necessario a obtencao dos seguintes objetivos es-

pecıficos:

• analisar e estudar formas de construcao de grafos de conflitos;

• propor e implementar mecanismos para acelerar a construcao de grafos de conflitos;

• desenvolver uma rotina de geracao de desigualdades validas, que utiliza as relacoes

logicas representadas no grafo;

• desenvolver um resolvedor heurıstico para Programacao Binaria baseado em busca

local e grafo de conflitos, capaz de resolver problemas em tempos computacionais

restritos;

• realizar experimentos computacionais utilizando conjuntos de instancias relevantes

presentes na literatura.

1.2 Estrutura do Trabalho

O restante deste trabalho esta organizado da seguinte maneira:

• Capıtulo 2: apresenta em detalhes o conceito de grafo de conflitos, sua construcao

tradicional e mecanismos propostos para acelerar o processo de construcao;

• Capıtulo 3: descreve a rotina de separacao de cortes construıda a partir da analise

de grafo de conflitos;

• Capıtulo 4: apresenta um resolvedor heurıstico baseado em grafo de conflitos e

busca local para problemas de Programacao Binaria;

• Capıtulo 5: apresenta os experimentos computacionais realizados;

• Capıtulo 6: conclui esta dissertacao e apresenta direcoes futuras.

Capıtulo 2

Grafo de Conflitos

Um grafo de conflitos representa relacoes logicas entre variaveis binarias: vertices re-

presentam variaveis (e seus complementos) e arestas sao usadas para indicar que duas

variaveis nao podem assumir o valor 1 simultaneamente. Essas arestas sao conhecidas

como conflitos ou arestas de adjacencia. Para duas variaveis binarias existem quatro

possıveis relacoes logicas (Atamturk et al., 2000):

xi = 1⇒ xj = 0 ⇐⇒ xi + xj ≤ 1

xi = 0⇒ xj = 0 ⇐⇒ (1− xi) + xj ≤ 1

xi = 1⇒ xj = 1 ⇐⇒ xi + (1− xj) ≤ 1

xi = 0⇒ xj = 1 ⇐⇒ (1− xi) + (1− xj) ≤ 1

A Figura 2.1 apresenta um grafo de conflitos para as seguintes inequacoes:

xi + (1− xj) ≤ 1

xi + xj ≤ 1

(1− xj) + xk ≤ 1

(1− xj) + (1− xk) ≤ 1

Nessa figura, o vertice i representa a variavel xi e o vertice i representa (1 − xi), o

7

8 Grafo de Conflitos

i kj

ji k

Figura 2.1: Um exemplo de grafo de conflitos.

complemento binario de xi. A relacao entre uma variavel e seu complemento e forte:

exatamente uma delas deve ser igual a 1 em qualquer solucao factıvel. Assim, existe

uma aresta envolvendo cada variavel e seu respectivo complemento, representada por

uma linha pontilhada no grafo de exemplo.

Dado um problema de PI e possıvel construir um grafo de conflitos G = (V,A),

com um conjunto de vertices V e um conjunto de arestas A, usando tecnicas de probing

baseadas em consideracoes de factibilidade. Tais tecnicas sao apresentadas nas secoes

a seguir. Visando a facilitar a apresentacao, sao considerados problemas de PI cujas

variaveis de decisao sao todas binarias (Programacao Binaria). Vale ressaltar que as

tecnicas podem ser aplicadas em qualquer problema de PI com variaveis binarias.

2.1 Construcao de Grafos de Conflitos

A construcao de grafos de conflitos e tipicamente realizada por meio de tecnicas de

probing (Savelsbergh, 1994). A ideia basica e analisar o impacto da atribuicao de valores

para cada par de variaveis em cada restricao. Cada restricao i ∈ {1, ...,m}, onde m e o

numero de restricoes do problema, pode ser reescrita como:

∑j∈N

aijxj ≤ bi (2.1)

onde N e o conjunto de ındices das variaveis binarias x, aij e o coeficiente da variavel

xj na restricao i e bi e lado direito (RHS) da restricao i. Sejam xj e xk duas variaveis a

Grafo de Conflitos 9

serem analisadas em relacao a restricao i, atribuıdas com valores u e v, respectivamente.

Seja:

Lxj=u, xk=v

i =∑

j∈N−i \{j,k}

aij + aiju + aikv (2.2)

onde N−i = {j ∈ N : aij < 0}. Dessa forma, Lxj=u, xk=v

i e um limite inferior para o

lado esquerdo (LHS) da restricao i, considerando as atribuicoes xj = u e xk = v. Se

Lxj=u, xk=v

i > bi, entao existe um conflito entre as atribuicoes de xj e xk.

Realizando esse calculo para cada combinacao de valores de duas variaveis binarias,

considerando cada par de variaveis em cada restricao, e possıvel criar um grafo de con-

flitos para qualquer problema de PI em O(m×n2).

Uma caracterıstica comum observada em programas inteiros e a repeticao de valo-

res de coeficientes de variaveis em uma mesma restricao. A partir dessa informacao, foi

possıvel desenvolver uma otimizacao simples, mas eficiente, que no momento do desenvol-

vimento deste trabalho nao havia sido abordada na literatura. Tal otimizacao consiste

em agrupar variaveis com coeficientes iguais em cada restricao, visando a diminuir o

tamanho do problema a ser tratado. Por exemplo, a restricao:

x1 + 3x2 + 3x3 + x4 + x5 + 3x6 ≤ 5 (2.3)

pode ter suas variaveis agrupadas em dois grupos: g′ = {x1, x4, x5} e g′′ = {x2, x3, x6}.Assim, ao inves de realizar calculos para cada par de variaveis, o limite para LHS e

calculado apenas uma unica vez para cada par de coeficientes diferentes (e uma unica

analise com pares de coeficientes iguais para cada grupo gerado).

No entanto, para problemas com muitas variaveis e restricoes, aplicar probing pode

ser muito caro computacionalmente. Todavia, para alguns tipos de restricoes um grande

numero de conflitos pode ser rapidamente descoberto. E o caso das restricoes GUB (do

ingles generalized upper bound) (Dantzig e Thapa, 2003), que possuem a seguinte forma:

10 Grafo de Conflitos

∑j∈S(N)

xj ≤ 1 (2.4)

onde S(N) e um subconjunto dos ındices das variaveis binarias x. Todas as variaveis

contidas em restricoes desse tipo apresentam conflitos entre si, gerando um clique no

grafo. Assim, nao e necessario aplicar probing.

A deteccao de cliques tambem pode ser realizada em restricoes menos estruturadas,

isto e, restricoes que nao apresentem conflitos de forma explıcita. A secao seguinte

apresenta propostas desenvolvidas neste trabalho para detectar cliques em restricoes,

objetivando a aceleracao do processo de construcao de grafos de conflitos.

2.2 Deteccao de Cliques em Restricoes Menos Estrutu-

radas

Cliques podem ser detectados percorrendo cada restricao uma unica vez, utilizando

uma ordenacao dos coeficientes das variaveis de decisao. Desse modo, apenas pares

de variaveis consecutivas sao analisadas. Considerando ni como o numero de variaveis

com coeficientes nao-nulos da restricao i, o processo de deteccao de cliques e feito em

O(ni log ni).

As proximas subsecoes descrevem duas formas simples de deteccao de cliques em

restricoes menos estruturadas. Vale ressaltar que quando a restricao analisada possui

apenas variaveis com coeficientes positivos (ou apenas coeficientes negativos) os conflitos

gerados por cliques sao os mesmos que os encontrados por probing. Entretanto, quando

a restricao apresenta coeficientes positivos e negativos, um numero menor de conflitos

pode ser gerado. Para evitar a perda de conflitos, a tecnica de probing e aplicada em

restricoes dessa natureza. Apesar disso, os experimentos mostraram que mesmo com es-

ses casos particulares, a utilizacao de deteccao de cliques obteve um melhor desempenho

em relacao a aplicacao completa de probing.

Grafo de Conflitos 11

2.2.1 Cliques Envolvendo Ativacao de Variaveis

Cliques envolvendo a ativacao de variaveis podem ser detectados por meio da analise

de restricoes com coeficientes ordenados de forma crescente. A seguinte notacao sera

usada:

aik : k-esimo menor coeficiente da restricao i;

aik : ındice do k-esimo menor coeficiente da restricao i;

S−i : soma de todos os coeficientes negativos da restricao i;

ni : numero de variaveis com coeficientes nao-nulos da restricao i.

Sejam k e k+1 as posicoes de duas varaveis consecutivas a serem analisadas. A soma

de todos os coeficientes negativos excluindo essas variaveis e dada por:

Dxaik

,xaik+1

i = S−i −min(0, aik)−min(0, aik+1) (2.5)

Assim, um limite inferior para o lado esquerdo da restricao i quando as variaveis com k

e k + 1 menores coeficientes sao ativadas (atribuıdas com o valor 1) pode ser calculado

como:

LHSxaik

=1,xaik+1=1

i = Dxaik

,xaik+1

i + aik + aik+1 (2.6)

Como os coeficientes estao ordenados de forma crescente, LHSxaik

=1,xaik+1=1

i e mo-

notonicamente crescente a medida que o valor de k aumenta. Dessa forma, se o valor de

LHSxaik

=1,xaik+1=1

i e maior do que o valor de bi, entao existe um clique envolvendo todas

as variaveis da posicao k ate a posicao ni. Alem disso, e possıvel descartar a existencia

de tais cliques na restricao, checando se o valor de LHSxaini−1

=1,xaini=1

i e menor ou igual

a bi, ou seja, verificando se a ativacao simultanea das duas variaveis com os maiores

coeficientes dessa restricao nao gera infactibilidade.

12 Grafo de Conflitos

2.2.2 Cliques Envolvendo Complementos de Variaveis

Uma ideia semelhante a subsecao anterior pode ser usada para detectar cliques que

envolvam o complemento de variaveis binarias. Para isso, os coeficientes devem estar

em ordem decrescente. A seguinte notacao sera usada:

aik : k-esimo maior coeficiente da restricao i;

aik : ındice do k-esimo maior coeficiente da restricao i;

S−i : soma de todos os coeficientes negativos da restricao i;

ni : numero de variaveis com coeficientes nao-nulos da restricao i.

Sejam k e k + 1 as posicoes de duas varaveis consecutivas a serem analisadas. Um

limite inferior para o lado esquerdo da restricao i quando o complemento das variaveis

com k e k + 1 maiores coeficientes sao ativadas pode ser calculado como:

LHSxaik

=0,xaik+1=0

i = S−i −min(0, aik)−min(0, aik+1) (2.7)

Como os coeficientes estao ordenados de forma decrescente, LHSxaik

=1,xaik+1=1

i e mo-

notonicamente crescente a medida que o valor de k aumenta. Dessa forma, se o valor de

LHSxaik

=1,xaik+1=1

i e maior do que o valor de bi, entao existe um clique envolvendo todos

os complementos das variaveis da posicao k ate a posicao ni. Alem disso, e possıvel des-

cartar a existencia de tais cliques na restricao, checando se o valor de LHSxaini−1

=1,xaini=1

i

e menor ou igual a bi, ou seja, verificando se a ativacao simultanea dos complementos

das duas variaveis com os menores coeficientes dessa restricao nao gera infactibilidade.

2.2.3 Exemplo de Deteccao de Cliques

Seja P o seguinte Programa Binario:

Grafo de Conflitos 13

Minimize: x1 + x2 + x3 + x4

Sujeito a:

x1 + x2 + x3 ≥ 2 (2.8)

− 2x1 + 3x2 + 4x3 + 5x4 ≤ 4 (2.9)

x1, . . . , x4 ∈ {0, 1}

A Figura 2.2 mostra um grafo de conflitos para o Programa Binario P . Arestas

representam conflitos entre variaveis e/ou complementos de variaveis.

x1

x3

x2

x2

x1

x3

x4

x4

Figura 2.2: Um grafo de conflitos para P .

A construcao do grafo inicia inserindo as arestas triviais, entre variaveis e seus com-

plementos (linhas pontilhadas). Em seguida e analisada a restricao da equacao 2.8. E

necessario converte-la para o formato padrao utilizado (∑

j∈N aijxj ≤ bi), resultando na

seguinte restricao:

−x1 − x2 − x3 ≤ −2 (2.10)

Como os coeficientes sao iguais nao e necessario executar um algoritmo de ordenacao.

A proxima etapa e calcular os limites inferiores para o LHS dessa restricao. Para cada

par de variaveis consecutivas, o valor de Lxj=1, xj+1=1

2.10 sera sempre menor ou igual a -2

(RHS). Portanto, nenhum conflito de ativacao de variaveis e detectado nessa restricao.

Essa verificacao poderia ser feita apenas calculando o limite inferior para os dois maiores

14 Grafo de Conflitos

coeficientes. Nesse caso, como todos sao iguais, qualquer par pode ser escolhido, por

exemplo x2 e x3, calculando Lx2=1, x3=12.10 e verificando que o valor e igual a -3, menor

do que o lado direito da restricao. O proximo passo e investigar cliques que envolvam

complementos de variaveis. Calculando Lxj=0, xj+1=0

2.10 para o primeiro par de variaveis

subsequentes (x1 e x2) obtem-se o valor -1, que e maior do que o RHS. Dessa forma,

e detectado um clique que envolve todos os complementos de variaveis dessa restricao.

Assim, cada par de conflitos desse clique e inserido no grafo.

A analise prossegue para a restricao da equacao 2.9. Essa restricao esta ordenada em

ordem crescente, podendo iniciar a busca por cliques com variaveis ativas. Calculando

Lxj=1, xj+1=1

2.9 para cada par de variaveis consecutivas, e possıvel detectar um clique en-

volvendo a ativacao das variaveis x2 ate x4 (Lx2=1, x3=12.9 = 5). Cada par de conflitos e

entao inserido no grafo. Em seguida, cliques envolvendo complementos de variaveis sao

testados. Para isso, e necessario ordenar os coeficientes em ordem decrescente (sendo

necessario apenas percorrer a restricao em ordem inversa). E possıvel detectar a ine-

xistencia de cliques envolvendo complementos de variaveis calculando Lxj=0, xj+1=0

2.8 para

as duas variaveis de menor coeficiente (x1 e x2). Para essas variaveis, o valor do limite

inferior obtido e igual a 0, que nao viola o RHS da restricao.

Capıtulo 3

Planos de Corte

Uma aplicacao primaria para grafos de conflitos e a geracao de desigualdades validas

(cortes) derivadas de um empacotamento de nos (SPP) (Padberg, 1973) para reforcar a

relaxacao da programacao linear. Diversos trabalhos apresentam a geracao e aplicacao

de desigualdades validas aplicadas a problemas modelados por PI. Entre eles, Atamturk

et al. (2000) utilizaram o grafo de conflitos construıdo por probing, e estendido por

meio de heurısticas baseadas em factibilidade e otimalidade, para gerar desigualdades

de clique. Experimentos computacionais demonstraram que a melhoria do limite in-

ferior contribuiu para aprimorar o desempenho do resolvedor MINTO 3.0 (Nemhauser

et al., 1994). Analogamente, Hoffman e Padberg (1993) utilizaram grafos de conflitos

para gerar desigualdades validas para problemas de escalonamento de tripulacoes aereas,

considerando desigualdades de cliques, ciclos ımpares e anti-holes. Achterberg (2007)

apresentou heurısticas compostas de tecnicas SAT para resolvedores de Programacao

Inteira Mista, gerando desigualdades validas a partir da analise de solucoes infactıveis

e de informacoes associadas ao branching. A mesma ideia foi desenvolvida em paralelo

por Sandholm e Shields (2006).

As classes mais comuns de cortes para SPP sao os cortes de clique e de ciclos ımpares

(odd holes). Uma desigualdade de clique para um conjunto C de variaveis conflitantes

pode ser definido como:

∑j∈C

xj ≤ 1 (3.1)

15

16 Planos de Corte

Uma desigualdade de ciclo ımpar envolvendo um conjunto C de variaveis conflitantes

pode ser definida como:

∑j∈C

xj ≤ b|C|2c (3.2)

E importante notar que, quando um vertice xj representar o complemento de uma

variavel, os termos xj das equacoes 3.1 e 3.2 devem ser substituıdos por 1− xj.

Na pratica, os cortes de clique apresentam um papel mais importante (Borndorfer,

1998) do que os cortes de ciclo ımpar. O impacto de tais cortes foi avaliado em alguns

problemas difıceis de timetabling (Avella e Vasil’ev, 2005; Burke et al., 2012). A con-

tribuicao para a melhoria do limite inferior de problemas de PI obtida pela insercao

de desigualdades de ciclo ımpar e pequena (Borndorfer, 1998; Mendez-Dıaz e Zabala,

2008). Entretanto, sua inclusao em procedimentos branch-and-cut e pouco custosa, uma

vez essas desigualdades podem ser separadas em tempo polinomial usando algoritmos

de caminhos mınimos (Grotschel et al., 1993; Rebennack, 2009).

3.1 Separacao de Cortes de Clique

O algoritmo aqui proposto para geracao de cortes considera uma rotina de separacao de

cliques agressiva: o objetivo nao e encontrar a desigualdade de clique mais violada, mas

todas as desigualdades de clique violadas. Alguns trabalhos indicam que essa e a melhor

estrategia. Por exemplo, no trabalho de Burke et al. (2012) os resultados computacionais

motivaram a inclusao de cortes nao maximamente violados, encontrados durante a busca

do clique mais violado em um algoritmo de branch-and-bound. O resultado e consistente

com relatos de aplicacoes de outros cortes em diferentes modelos, tais como cortes de

Chvatal-Gomory (Fischetti e Lodi, 2007). A opcao de inserir um grande numero de desi-

gualdades violadas ao mesmo tempo e tambem responsavel para reforcar a importancia

dos cortes de Gomory (Cornuejols, 2007).

A rotina de separacao de cliques tem dois principais componentes:

1. um modulo para separar todos os cliques violados, considerando o subgrafo de

conflitos induzido pelas variaveis com valores fracionarios na relaxacao linear;

Planos de Corte 17

2. um modulo de lifting, que estende os cliques gerados pelo modulo anterior consi-

derando o grafo de conflitos completo.

O modulo de separacao de cliques foi implementado usando uma versao melhorada do

algoritmo Bron-Kerbosch (Bron e Kerbosch, 1973). Essa versao implementa uma regra

de pivoteamento otimizada (Brito e Santos, 2011) para acelerar a descoberta de cliques

maximais com altos pesos. Tal regra atribui prioridade maior para visitar primeiramente

nos com alto grau modificado, isto e, soma do grau do no e de seus vizinhos, e com pesos

maiores. Embora esse algoritmo tenha um desempenho exponencial em seu pior caso,

a regra de pivoteamento heurıstica se torna apropriada nao somente para execucao no

contexto de enumeracao mas tambem para execucao com tempos restritos, ja que os

cliques mais violados tendem a ser descobertos primeiro. Apesar disso, nos experimen-

tos realizados, todas as desigualdades de cliques violadas puderam ser enumeradas em

fracoes de segundos usando essa abordagem. Vale ressaltar que mesmo se apenas um

subconjunto de cliques for inserido durante a execucao de um algoritmo de branch-and-

cut, a melhor solucao nao seria perdida, apenas resultaria em uma convergencia mais

lenta.

Apos gerar um clique, o modulo de lifting e executado. Trata-se de um metodo guloso

que seleciona a cada iteracao a variavel com menor custo reduzido e verifica se ela pode

ser inserida no clique, ou seja, se ela tem conflito com todas outras contidas no clique

atual. Para isso, e considerado o grafo de conflitos completo, incluindo variaveis com

valores inteiros na relaxacao linear.

A importancia da realizacao do lifting em desigualdades de clique pode ser explicada

com o grafo de conflitos da Figura 3.1. Vertices dentro da area cinza indicam variaveis

com valores nao-nulos na solucao fracionaria. Nesta solucao, somente os nos x2, x3 e

x4 poderiam contribuir para definir a desigualdade de clique maximo violada. Apesar

disso, relaxacoes lineares subsequentes poderiam incluir tres diferentes cliques K3 (cli-

ques envolvendo tres vertices) alternando a variavel inativa. Se a desigualdade do clique

K4 fosse inserida durante a separacao da primeira solucao fracionaria, re-otimizacoes

adicionais da programacao linear poderiam ser evitadas. Alem disso, uma matriz de

restricoes menos densa seria obtida com a insercao inicial dessas restricoes dominantes.

18 Planos de Corte

x2

x3 x4

x1

Figura 3.1: Exemplo de um grafo K3 em que o lifting poderia ser aplicado,transformado-o em um K4.

3.2 Separacao de Cortes de Ciclo Impar

A separacao de cortes de ciclo ımpar e feita da mesma forma que a desenvolvida no

trabalho de Rebennack (2009), utilizando um grafo auxiliar G′ = (V ′, A′). Esse grafo e

criado a partir do grafo de conflitos original (G = (V,A)), da seguinte forma: para cada

vertice xv ∈ V sao criados dois vertices x′v e x′′v em V ′. Para cada arco (xu, xv) ∈ A sao

criados dois arcos (x′u, x′′v) e (x′′u, x

′v) em A′, com pesos calculados da seguinte forma:

peso(u, v) =1− x∗u − x∗v

2(3.3)

onde x∗u e x∗v representam os valores das variaveis xu e xv na relaxacao linear.

Apos a criacao do grafo auxiliar, a busca por desigualdades validas e dada da seguinte

forma: para cada vertice xu ∈ V e encontrado o caminho mais curto de x′u para x′′u

no grafo auxiliar, utilizando o algoritmo de Dijkstra. As variaveis representadas pelos

vertices contidos nesse caminho mınimo formam um ciclo ımpar, uma vez que o grafo

auxiliar e um grafo bipartido. Para saber se a desigualdade gerada por esse ciclo ımpar

e uma desigualdade valida basta verificar se o valor do caminho mınimo e menor do que

0, 5. Em caso positivo, um corte de ciclo ımpar foi encontrado.

Desigualdades de ciclos ımpares podem ser reforcadas (lifiting) por meio da inclusao

de um centro de roda, como o centro formado pelas variaveis x6, x7 e x8 no grafo

Planos de Corte 19

x8

x5

x2

x1

x4

x3

x7

x6

Figura 3.2: Exemplo de ciclo ımpar e possıvel extensao para uma roda.

da Figura 3.2. O modulo de extensao desenvolvido para desigualdades de ciclo ımpar

consiste em encontrar um centro de roda mediante a selecao de variaveis ordenadas em

ordem crescente de custo reduzido. Para um ciclo ımpar com variaveis C e um conjunto

W de candidatos a serem incluıdos no centro da roda de C, a seguinte desigualdade e

valida:

∑j∈W

b|C|2cxj +

∑j∈C

xj ≤ b|C|2c (3.4)

20

Capıtulo 4

Uma Abordagem Heurıstica Baseada

em Grafos de Conflitos para a Solucao

de Programas Binarios

Um Programa Linear Binario, ou simplesmente Programa Binario (PB), pode ser ex-

presso como:

Minimize:

cTx (4.1)

Sujeito a:

Ax ≤ b (4.2)

x ∈ {0, 1}n (4.3)

onde x representa um conjunto de variaveis de decisao binarias de cardinalidade n,

sujeitas a um vetor de custos c.

Apesar de sua simplicidade, a Programacao Binaria e uma das mais importantes

tecnicas em Pesquisa Operacional (PO). A constante melhoria dos pacotes de otimizacao

tem feito da Programacao Binaria uma otima escolha para resolver problemas dessa area.

Entretanto, a obtencao de solucoes validas em problemas cujo tempo e um fator limitante

pode ser uma tarefa difıcil. Assim, resolvedores tambem sao avaliados considerando sua

21

22Uma Abordagem Heurıstica Baseada em Grafos de Conflitos para a Solucao

de Programas Binarios

habilidade de produzir rapidamente uma solucao inteira factıvel.

Com o objetivo de obter solucoes em tempos computacionais aceitaveis, foi desen-

volvida uma abordagem heurıstica para resolver Programas Binarios. Esta abordagem

e caracterizada por duas fases: uma fase construtiva, que envolve a resolucao de um

problema de Conjunto Independente Maximo, e uma fase de busca local, que envolve

a descoberta de cadeias de movimentos. Ambas as fases trabalham com informacoes

providas por um grafo de conflitos, construıdo com as tecnicas apresentadas neste tra-

balho. Apenas uma pequena alteracao e feita nesse grafo: complementos de variaveis

e seus conflitos sao descartados, uma vez que a abordagem em questao, especialmente

a fase construtiva, considera apenas a satisfacao de restricoes por meio da ativacao de

variaveis. Vale ressaltar que nenhum resolvedor linear caixa-preta ou metodos da famılia

branch-and-bound sao utilizados.

Na literatura existem trabalhos que utilizam grafos de conflitos na resolucao de pro-

blemas binarios. LocalSolver, desenvolvido por Benoist et al. (2011), e um exemplo.

Trata-se de um resolvedor comercial caracterizado por uma busca local composta por

movimentos autonomos, movimentos similares a Cadeias de Ejecao gerados a partir de

um grafo de conflitos previamente construıdo. Alem do LocalSolver, outros resolve-

dores utilizam internamente grafos de conflitos, que sao combinados com tecnicas de

Programacao por Restricoes para gerar desigualdades validas ou ate mesmo solucoes

factıveis (Achterberg, 2009; Van Hentenryck e Michel, 2005; Walser, 1997).

4.1 Restricoes Comuns em Programas Binarios

Antes de seguir para uma descricao detalhada do resolvedor desenvolvido e importante

comentar sobre a diversidade de tipos de restricoes que aparecem em Programas Binarios

e como ela determina a dificuldade de encontrar uma solucao factıvel inicial. Alguns tipos

de restricoes bastante comuns sao:

Uma Abordagem Heurıstica Baseada em Grafos de Conflitos para a Solucaode Programas Binarios 23

Set Covering:∑i∈N

xi ≥ 1 , xi ∈ {0, 1} (4.4)

Set Packing:∑i∈N

xi ≤ 1 , xi ∈ {0, 1} (4.5)

Set Partition:∑i∈N

xi = 1 , xi ∈ {0, 1} (4.6)

Ainda que para alguns Problemas Binarios uma solucao factıvel e trivial, por exem-

plo problemas com todas as restricoes do tipo Set Covering ou Set Packing, diferentes

restricoes podem complicar significativamente esse passo inicial. A satisfacao de apenas

uma restricao pode ser um problema NP -Completo se ele representa, por exemplo, o

problema de Particao de Numeros (Garey e Johnson, 1979; Johnson et al., 1991). Alem

disso, os problemas tendem a ser mais difıceis quando somente alguns, e ocultos, sub-

conjuntos de todos os possıveis vetores de incidencia, sao factıveis. Problemas de Set

Partition sao exemplos tıpicos desse tipo de situacao.

4.2 Fase Construtiva

Dado um Problema Binario, uma solucao inicial e construıda considerando a resolucao

do subproblema induzido pelas restricoes de Set Covering, Set Packing e Set Partition.

Resolver esse subproblema corresponde a encontrar um conjunto independente ponde-

rado no grafo de conflitos, isto e, encontrar um conjunto de variaveis que nao possuem

conflitos entre si, cujo somatorio de seus pesos e maior ou igual a um limiar. Por sua

vez, o problema de encontrar um conjunto independente corresponde a encontrar um

clique no grafo complementar ao grafo de conflitos.

Assim, o subproblema e modelado como um grafo ponderado que e complementar ao

grafo de conflitos. O peso de cada vertice e o numero de restricoes do tipo Set Partition,

Set Packing e Set Covering que a variavel representada por ele satisfaz quando ativada.

Um algoritmo baseado em Busca Tabu desenvolvido por Wu et al. (2012) e utilizado

para encontrar cliques com peso acima de um limiar. A implementacao utilizada e

a mesma disponibilizada pelos autores1. O limiar utilizado para a busca de cliques

1Detalhes sobre implementacao (em C/C++) e parametros podem ser obtidos no artigo e no site:http://www.info.univ-angers.fr/pub/hao/clique.html.

24Uma Abordagem Heurıstica Baseada em Grafos de Conflitos para a Solucao

de Programas Binarios

e o numero total de restricoes do tipo Set Partition, Set Packing e Set Covering do

problema. Quando o algoritmo termina, uma solucao e criada para o problema original,

ativando apenas as variaveis retornadas pela Busca Tabu. Dessa forma, somente um

subconjunto de variaveis que nao apresentam conflitos entre si sao ativadas na fase

construtiva. Qualquer algoritmo que encontre cliques ponderados pode ser utilizado.

Esta fase foi desenvolvida para obter um conjunto inicial de variaveis que podem ser

ativadas ao mesmo tempo sem gerar infactibilidade no problema. No caso de instancias

que contenham somente esses tres tipos de restricoes, o resultado da fase construtiva e

uma solucao factıvel para o problema original. Caso contrario, a solucao retornada pode

ser infactıvel. Dessa forma, restricoes que deixam o problema infactıvel sao enviadas

para a fase de busca local para serem tratadas.

Para ilustrar, considere PB como o seguinte Programa Binario a ser resolvido:

Minimize:

10x1 + 12x2 + 4x3 + 7x4 + 5x5

Sujeito a:

x1 + x2 ≤ 1 (4.7)

x1 + x3 + x5 = 1 (4.8)

x2 + x4 ≥ 1 (4.9)

x2 + x4 + x5 ≤ 1 (4.10)

x1, x2, x3, x4, x5 ∈ {0, 1}

Seja o grafo da esquerda da Figura 4.1 construıdo para o problema PB. O primeiro

passo e construir e ponderar o grafo complementar a ele, que e apresentado a direita do

grafo de PB. Numeros proximos aos vertices indicam os pesos. O algoritmo de deteccao

de cliques e executado, procurando por cliques de peso maior ou igual a 4. Uma solucao

retornada pelo algoritmo poderia ser o conjunto {x1, x4} com peso 4, que satisfaz ao

limiar estabelecido. Dessa forma, uma solucao inicial e construıda com as variaveis x1 e

x4 ativadas e as demais desativadas. Como o problema possui apenas restricoes de Set

Partition, Set Packing e Set Covering, a solucao gerada pela fase construtiva e factıvel

para o problema original (com custo 17).

Uma Abordagem Heurıstica Baseada em Grafos de Conflitos para a Solucaode Programas Binarios 25

x1

x3

x4

x5

x2

x1

x3

x4

x5

x2

1

2 2

3 2

Figura 4.1: Grafo de conflitos para PB e seu grafo complementar ponderado.

4.3 Busca Local

Como Benoist et al. (2011) notaram, o maior obstaculo encontrado na execucao de uma

busca local para Programas Binarios e a deteccao automatica de relacionamentos entre

as variaveis de decisao. Programas Binarios sao normalmente modelados com um grande

numero de variaveis de decisao e de variaveis auxiliares, de modo que e bem provavel

que a alteracao do valor de uma variavel por vez produzira somente solucoes infactıveis.

Dessa forma, e necessario desenvolver metodos para detectar variaveis relacionadas e

alterar seus valores simultaneamente, de modo que seja possıvel corrigir uma solucao in-

factıvel ou saltar de uma solucao factıvel para outra. A deteccao e alteracao de variaveis

relacionadas e chamada de cadeia de movimentos.

Como exemplo, considere o Programa Binario PB da secao anterior. Uma solucao

que poderia ser retornada pelo metodo construtivo e a ativacao das variaveis x1 e x4,

com custo 17. Uma vez que essa e uma solucao factıvel, um metodo que utiliza uma

busca local que inverte (flip) o valor de uma variavel por vez pode ficar preso em um

otimo local, cercado de solucoes infactıveis. Um resolvedor inteligente, ao tentar ativar

a variavel x2, por exemplo, poderia detectar automaticamente que x1 e x4 deveriam ser

desativadas, para remover os conflitos causados nas restricoes 4.7 e 4.10. Alem disso,

outra variavel deve ser ativada para satisfazer a restricao 4.8, por exemplo x3. Assim,

ao tentar ativar a variavel x2, o resolvedor poderia detectar uma cadeia de movimentos:

x2 → {x1, x4} → x3. Cada movimento representa uma inversao (ou flip) do valor da

variavel correspondente, que visa a remover a infactibilidade causada pelo movimento

26Uma Abordagem Heurıstica Baseada em Grafos de Conflitos para a Solucao

de Programas Binarios

anterior. Essa cadeia de movimentos gerada produz uma solucao melhor, de custo 16.

O Algoritmo 4.1 descreve a implementacao desenvolvida para detectar uma cadeia

de movimentos. Esse algoritmo realiza um backtracking com profundidade d e largura

limitada f . Em cada recursao, um conjunto J de variaveis tem seus valores inverti-

dos: a variavel atual j e todas as variaveis conflitantes a ela, se j for ativada. Essas

variaveis sao colocadas em um estado “congelado” (conjunto S) nesta e nas iteracoes

seguintes. Variaveis que devem ter seus valores invertidos sao escolhidas de um con-

junto J . Somente as variaveis que aparecem no conjunto de restricoes C podem ajudar

a corrigir novas infactibilidades. Essas sao as variaveis candidatas a compor a cadeia

de movimentos, denotadas por j, que sao avaliadas em relacao a quantidade de infac-

tibilidade que conseguem diminuir ao terem seus valores invertidos. Os valores obtidos

pela avaliacao das variaveis candidatas sao armazenados nas variaveis ej. As variaveis

mais promissoras sao avaliadas recursivamente nas linhas 18 a 22 e se o efeito final for

positivo (diminuicao da infactibilidade), elas sao inseridas no conjunto J∗ de cadeias de

movimentos recomendados, atualizando a melhor cadeia de movimentos encontrada ate

o momento. A computacao eficiente de ej e a chave para o sucesso do metodo, uma vez

que valores grandes para d e f poderiam resultar em tempos computacionais proibiti-

vos. Nesse sentido, observou-se que tambem e necessario incluir, nessa avaliacao, uma

prioridade maior para as variaveis que diminuam infactibilidades em restricoes com um

numero reduzido de candidatos.

A implementacao da busca local realiza sucessivas chamadas do Algoritmo 4.1 (chain-

Flip), utilizando variaveis selecionadas aleatoriamente. Os criterios de parada sao o

numero de iteracoes sem melhora e o tempo de execucao. Se a solucao continuar in-

factıvel, a busca se concentra em variaveis contidas em restricoes que ainda nao foram

satisfeitas. Nesse caso, uma restricao que ainda nao foi satisfeita e selecionada, e entao

uma de suas variaveis e selecionada, ambas de forma aleatoria. Uma cadeia de movi-

mentos e aceita de acordo com a regra do metodo RNA (Randomized Non-Ascendent

Method), ou seja, esta cadeia de movimentos so e aceita se o valor da funcao objetivo

for melhor ou igual a melhor solucao ja encontrada.

Uma Abordagem Heurıstica Baseada em Grafos de Conflitos para a Solucaode Programas Binarios 27

Algoritmo 4.1: Algoritmo chainFlip para gerar cadeias de movimentos.

Entrada:x: solucao atual;j: variavel cujo valor sera invertido;J : variaveis com valores ja invertidos;C: restricoes a serem verificadas;S: variaveis “congeladas”;d: profundidade corrente;d: profundidade maxima;f : numero maximo de inversoes de valores por chamada recursiva (larguramaxima);Saıda: (z∗, J∗): custo e variaveis da melhor cadeia de movimentos encontrada.se d ≥ d entao retorne (∞, ∅)1

J = {j};2

se xj = 0 entao3

S ← S ∪ {j′},∀j′ : j tem conflito com j′;4

J ← J ∪ {j′},∀j′ : j tem conflito com j′ e xj′ = 1;5

x′ = x;6

para j′ ∈ J faca7

x′

j = 1− x′

j8

J ← J ∪ J ;9

z∗ ← f(x′);10

J∗ ← J ;11

C ← C ∪ {i},∀i: i e uma restricao onde uma ou mais variaveis de J aparecem;12

J ← j,∀j: j e uma variavel que aparece em alguma restricao do conjunto C e nao13

esta em S;ej = 0, ∀j ∈ J ;14

para j ∈ J faca15

calcule o impacto ej de inverter a variavel j, considerando as restricoes de C;16

para k = 1 ate min(f, |J |) faca17

j ← variavel de J com o k−esimo melhor ej;18

(z′, J ′)← chainFlip(x′, j, J, C, S, d + 1, d, f);19

se z′ < z∗ entao20

z∗ ← z′;21

J∗ ← J ;22

retorne (z∗, J∗);23

28

Capıtulo 5

Experimentos Computacionais

Todo o trabalho foi desenvolvido na linguagem de programacao C/C++ e compilado

com o GCC/G++ versao 4.6.3. Foram utilizadas as bibliotecas de codigo aberto do

COIN-OR, que permitem a leitura, criacao e manipulacao de Problemas de Programacao

Inteira, alem da integracao com resolvedores para esse paradigma (Lougee-Heimer, 2003).

Os experimentos foram executados em um computador Core i7 3.4GHz com 16 GB de

RAM sobre o sistema operacional Linux Ubuntu 12.04 64-bits. As proximas secoes

apresentam as caracterısticas das instancias trabalhadas, bem como os experimentos

realizados.

5.1 Caracterizacao das instancias

Foram utilizados tres conjuntos de instancias nos experimentos computacionais. O pri-

meiro conjunto apresenta instancias de benchmark da MIPLIB 2010 (Koch et al., 2011),

contendo 87 instancias. Desde a sua introducao em 1992, a MIPLIB tornou-se uma

biblioteca padrao de testes, usada para comparar o desempenho dos resolvedores de PI.

Ela contem uma colecao de problemas reais, sendo na maior parte aplicacoes industri-

ais. O segundo conjunto de instancias foi obtido da formulacao usada por Santos et al.

(2014) para resolver problemas da International Nurse Rostering Competition (INRC)

(Haspeslagh et al., 2014), contendo 60 instancias. Trata-se de uma competicao realizada

para incentivar e comparar pesquisas relacionadas ao Problema de Escalonamento de

Enfermeiras. O terceiro conjunto consiste de problemas de planejamento de rotas para

o Telebus (Borndorfer et al., 1999), um servico de transporte de pessoas com deficiencia

29

30 Experimentos Computacionais

fısica localizado em Berlim, contendo 28 instancias. Esses problemas apresentam for-

mulacoes de PI baseadas no problema de particionamento de conjuntos.

Todos os conjuntos de instancias foram escolhidos com o intuito de diversificar a

experimentacao, utilizando instancias que possam produzir desde grafos de conflitos

ricos em informacao (densos) ate grafos com pouca informacao (esparsos). Alem disso,

todas as instancias representam problemas de minimizacao. A Tabela 5.1 apresenta um

resumo sobre as caracterısticas dos conjuntos de instancias utilizados: a coluna Qtde

Instancias indica o numero de instancias presentes no conjunto, Restricoes o numero de

restricoes, Variaveis o numero de variaveis de decisao, Binarias o numero de variaveis

de decisao binarias e Nzs o numero de elementos nao-nulos que aparecem na matriz de

restricoes. As notacoes min, max e med indicam valores mınimos, maximos e medios

para cada uma dessas caracterısticas. Uma descricao mais detalhada das instancias e

dada no Apendice A.1.

Tabela 5.1: Resumo das caracterısticas dos conjuntos de instancias.

Dimensao Conjunto

MIPLIB INRC Telebus

Qtde Instancias 87 60 28

min 32 3.032 338

Restricoes max 624.166 29.210 1.771

med 32.077,91 11.249,00 1.202,50

min 100 9.783 1.814

Variaveis max 164.547 63.620 146.715

med 13.755,10 28.785,45 44.709,11

min 0 9.783 1.814

Binarias max 129.180 63.620 146.715

med 8.682,79 28.785,45 44.709,11

min 666 201.123 3.119

Nzs max 27.678.735 1.068.150 545.337

med 515.868,40 520.759,60 179.427,64

Experimentos Computacionais 31

5.2 Construcao de Grafos de Conflitos

O primeiro experimento computacional realizado consiste em avaliar o desempenho da

construcao de grafos de conflitos e o ganho em velocidade de processamento obtido ao

empregar as tecnicas de deteccao de cliques em restricoes. A Tabela 5.2 apresenta um

resumo dos resultados obtidos na construcao de grafos de conflitos. A coluna Conflitos

apresenta o numero mınimo (min), maximo (max ) e medio (med) de conflitos presente

nos grafos construıdos para os conjuntos de instancias. A coluna Tempo indica o tempo

total, em segundos, para construcao dos grafos de todas instancias de cada conjunto

utilizando probing (Probing) e os procedimentos de deteccao de cliques aqui propos-

tos (Clique). Um detalhamento completo dos resultados pode ser visto no Apendice

A.1. Como dito na Secao 2.2, quando nao e possıvel aplicar a deteccao de cliques a

tecnica probing e utilizada. Apesar disso, e possıvel notar um ganho consideravel com a

utilizacao da deteccao de cliques.

Tabela 5.2: Resumo dos resultados obtidos na construcao dos grafos de confli-tos.

Conjunto Conflitos Tempo (s)

min max med Probing Clique

MIPLIB 0 11.396.108 439.293,79 205,47 21,32

INRC 2.470.141 12.807.280 6.346.356,77 626,38 450,35

Telebus 13.812 1.935.532.747 129.464.942,93 13.829,46 478,65

Quando aplicado a problemas que possuem grafos de conflitos de pequeno porte, o

tempo de execucao de ambas as tecnicas sao semelhantes. Entretanto, quando aplicado

a instancias de medio a grande porte, a tecnica de probing torna-se ineficiente, chegando

a gastar quase 11.000 segundos (instancia v0417 ). Por outro lado, a abordagem de

deteccao de cliques evita a analise exaustiva das restricoes, obtendo tempos de execucao

dezenas de vezes menores. O ganho com a utilizacao da deteccao de cliques tambem

pode ser visto no somatorio total dos tempos de construcao dos grafos para todas as

instancias de cada conjunto, que chega a ser ate 28 vezes menor do que a construcao

com probing. Esse resultado mostra que varias restricoes apresentam grandes conjuntos

de cliques, ou seja, em uma mesma restricao um grande conjunto de variaveis em que

apenas uma deve ser escolhida para ser ativada. A aceleracao obtida na construcao de

grafos de conflitos viabiliza sua utilizacao na solucao de problemas de PI.

32 Experimentos Computacionais

5.3 Separacao de Cortes

O processo de separacao de cortes (ou desigualdades validas) tem como objetivo melhorar

o limite inferior fornecido pela relaxacao da Programacao Linear e consequentemente

provar a otimalidade de maneira mais rapida. Visando a verificar a melhoria desses

limites, foi conduzido um experimento utilizando a rotina de separacao proposta neste

trabalho com o modulo de lifting ativado e desativado (nomeados aqui como lnpsep e

npsep, respectivamente), alem da rotina de separacao de cortes inclusa na biblioteca

COIN-OR (denotada como cgl).

As rotinas foram aplicadas apenas no no raiz da relaxacao, com as execucoes limitadas

pelo tempo de 300 segundos. Somente instancias que possuem solucoes factıveis e que

no mınimo uma rotina de separacao encontrou algum corte valido foram usadas. Nesse

caso, foram usadas 30 instancias da MIPLIB, 59 da INRC e 28 do problema do Telebus.

Para medir as melhorias foi utilizado o gap closed (1−gap). Assim, quanto mais proximo

o gap closed esta de 1 (ou 100%, utilizando a notacao de porcentagem), mais proximo o

valor do limite inferior esta do otimo.

As figuras 5.1, 5.2 e 5.3 apresentam a evolucao media do gap closed em relacao

ao tempo para os conjuntos de instancias MIPLIB, INRC e Telebus, respectivamente.

Resultados obtidos por instancia podem ser vistos no Apendice A.2. Para instancias

da MIPLIB, o gap closed medio obtido pelas rotinas de cortes foram: 51, 06% para cgl,

52, 71% para npsep e 53, 39% para lnpsep. Em relacao as instancias da INRC, o gap

closed medio obtido foi: 57, 67% para cgl, 63, 79% para npsep e 77, 47% para lnpsep.

Por fim, para instancias do Telebus todas as rotinas obtiveram gap closed proximo de

74, 25%.

Observa-se que a inclusao do modulo de lifting permite uma aceleracao na melhoria do

limite inferior para as instancias da MIPLIB e da INRC. Alem disso, e possıvel perceber

que as rotinas lnpsep e npsep continuam progredindo nessas instancias enquanto os cortes

do cgl nao conseguem obter nenhuma melhoria significativa nos limites. Para o conjunto

de instancias do Telebus, as rotinas obtiveram desempenho semelhante durante todo o

processo de separacao de cortes.

Experimentos Computacionais 33

30

40

50

60

70

80

0 50 100 150 200 250 300

Gap c

losed m

édio

(%

)

Tempo (s)

MIPLIB

lnpsepnpsep

cgl

Figura 5.1: Melhoria do limite dual para instancias da MIPLIB, usando asrotinas lnpsep, npsep e cgl.

30

40

50

60

70

80

0 50 100 150 200 250 300

Gap c

losed m

édio

(%

)

Tempo (s)

INRC

lnpsepnpsep

cgl

Figura 5.2: Melhoria do limite dual para instancias da INRC, usando as rotinaslnpsep, npsep e cgl.

34 Experimentos Computacionais

30

40

50

60

70

80

0 50 100 150 200 250 300

Gap c

losed m

édio

(%

)

Tempo (s)

Telebus

lnpsepnpsep

cgl

Figura 5.3: Melhoria do limite dual para instancias do Telebus, usando asrotinas lnpsep, npsep e cgl.

5.4 Resolvedor Heurıstico para Problemas de Programacao

Binaria

O ultimo experimento realizado avalia o resolvedor heurıstico desenvolvido neste tra-

balho, que utiliza informacoes de grafos de conflitos para construir e melhorar solucoes

de programas binarios. A avaliacao e feita considerando a capacidade do resolvedor de

produzir solucoes factıveis em tempos computacionais restritos, sem considerar o valor

da funcao objetivo. Para isso, foram utilizadas as instancias da MIPLIB que apresentam

programas binarios com solucoes factıveis, totalizando 32 problemas. Os demais con-

juntos de instancias foram removidos desses experimentos por apresentarem os mesmos

resultados para ambos os resolvedores avaliados.

O resolvedor implementado, aqui chamado de BPLS, e comparado com dois dos

melhores resolvedores de Programacao Inteira de codigo aberto: COIN-OR Branch-and-

Cut1 (CBC) e GNU Linear Programming Kit2 (GLPK). Todos os resolvedores foram

submetidos as instancias mencionadas com tempos de execucao limitados a 60 e 300

segundos. A Tabela 5.3 mostra os resultados obtidos. As colunas CBC e GLPK indi-

1https://projects.coin-or.org/Cbc/

2https://www.gnu.org/software/glpk/

Experimentos Computacionais 35

cam, respectivamente, os experimentos realizados com os resolvedores CBC e GLPK.

As colunas BPLS indicam os experimentos realizados com o resolvedor implementado.

Em todas as colunas um check mark e usado para indicar que uma solucao factıvel foi

encontrada no tempo informado.

Tabela 5.3: Producao de solucoes factıveis em 60 e 300 segundos.Instance 60 segundos 300 segundos

GLPK CBC BPLS GLPK CBC BPLS

acc-tight5

air04 X X X X X X

bab5 X

bley xl1

bnatt350

cov1075 X X X X X X

eil33-2 X X X X X X

eilB101 X X X X X X

ex9

iis-100-0-cov X X X X X X

iis-bupa-cov X X X X X X

iis-pima-cov X X X X X X

m100n500k4r1 X X X X X X

macrophage X X X X X X

mine-166-5 X X X X X X

mine-90-10 X X X

mspp16

n3div36 X X X X X

n3seq24 X X X

neos-1109824 X X X X X

neos-1337307 X X X X

neos18 X X X X X X

neos-849702

netdiversion

ns1688347

opm2-z7-s2 X X X X X X

reblock67 X X X X X

rmine6 X X X X X X

sp98ic X X X X X X

tanglegram1 X X

tanglegram2 X X X X X X

vpphard X

Total 17 19 20 19 23 21

Os resultados mostram que o resolvedor BPLS foi apto a obter solucoes factıveis

para um numero maior de instancias considerando o tempo limite de 60 segundos. Re-

laxando o tempo limite para 300 segundos, todos os resolvedores conseguiram produzir

mais solucoes factıveis. Enquanto BPLS encontrou solucoes factıveis para 21 instancias,

36 Experimentos Computacionais

GLPK e CBC encontraram, respectivamente, 19 e 23. Quando o limite de tempo e in-

crementado, os resolvedores GLPK e CBC podem explorar um numero maior de nos da

arvore branch-and-bound, fato que aumenta a probabilidade de encontrar uma solucao

factıvel. Ao contrario desses resolvedores, BPLS pode ficar “preso” a uma mesma cadeia

de movimentos ao aumentar o tempo de execucao, uma vez que permutacoes de um con-

junto de variaveis levam a uma mesma cadeia de movimentos. Entretanto, os resultados

alcancados sao importantes para aplicacoes em Programacao Binaria cujo tempo e um

fator limitante. Alem disso, a producao de uma solucao inicial factıvel pode acelerar

a producao de solucoes de melhor qualidade. Uma vez que e encontrada uma solucao

factıvel, metodos como RINS (Danna et al., 2005) ou Local Branching (Fischetti e Lodi,

2003) podem ser aplicados para melhorar a solucao incumbente.

Capıtulo 6

Consideracoes Finais

Este trabalho apresentou uma forma de acelerar a construcao de grafos de conflitos

aplicados a problemas de Programacao Inteira. A deteccao de cliques em restricoes

permitiu que conflitos fossem descobertos sem a analise exaustiva de restricoes realizada

por tecnicas probing. Como consequencia, a complexidade computacional envolvida na

analise de cada restricao reduziu de O(n2) para O(n log n), onde n representa o numero

de variaveis de decisao nao-nulas contidas na restricao. Com isso, foi possıvel obter

grafos de conflitos em tempos de execucao dezenas de vezes menores.

A reducao do tempo gasto na criacao de grafos de conflitos facilitou a utilizacao

dessa estrutura na solucao de problemas de PI. Assim, foi desenvolvida uma rotina

de geracao de desigualdades validas, que sao aplicadas no no raiz da relaxacao linear

visando a melhorar o limite inferior obtido. Essa rotina gera desigualdades de clique

e ciclos ımpares a partir de um grafo de conflitos e utiliza um modulo de lifting para

estende-las. Os resultados mostraram que a rotina desenvolvida foi mais eficiente na

melhoria dos limites duais em relacao a rotina de separacao de cortes do COIN-OR.

Alem da rotina de geracao de desigualdades validas, foi proposto e implementado

um resolvedor heurıstico para problemas de Programacao Binaria, que tambem utiliza

informacoes contidas nos grafos de conflitos. O resolvedor e baseado em heurısticas

para prover uma solucao inicial e melhora-la por meio de uma busca local. A busca

local utiliza cadeias de movimentos, que atuam invertendo um conjunto de variaveis

relacionadas, com o objetivo de corrigir a infactibilidade ou saltar de uma solucao factıvel

para outra. O resolvedor foi capaz de encontrar solucoes factıveis para um numero maior

de instancias considerando um tempo limitado, quando comparado com os resolvedores

37

38 Consideracoes Finais

CBC e GLPK.

6.1 Trabalhos Futuros

Como direcoes futuras, destacam-se as seguintes estrategias:

• Desenvolver abordagens para estender o grafo de conflitos, aplicando, por exemplo,

tecnicas de Programacao por Restricoes (Jaffar e Maher, 1994) e/ou utilizando

informacoes do grafo construıdo para reforcar o valor do limite inferior para o lado

esquerdo das restricoes;

• Inserir novos tipos de cortes na rotina de separacao proposta e avaliar a contri-

buicao de cada um;

• Utilizar outros conjuntos de instancias para avaliar o resolvedor de Programacao

Binaria;

• Considerar os complementos das variaveis de decisao e seus conflitos em ambas as

fases do resolvedor heurıstico;

• Criar novas estruturas de vizinhanca para a busca local do resolvedor de problemas

binarios e avaliar o desempenho da utilizacao de diferentes metaheurısticas nesta

fase.

Referencias Bibliograficas

Achterberg, T.: 2007, Conflict analysis in mixed integer programming, Discrete Op-timization 4(1), 4 – 20. Mixed Integer Programming {IMA} Special Workshop onMixed-Integer Programming.

Achterberg, T.: 2009, Scip: solving constraint integer programs, Mathematical Program-ming Computation 1(1), 1–41.

Allahverdi, A., Ng, C., Cheng, T. E. e Kovalyov, M. Y.: 2008, A survey of schedu-ling problems with setup times or costs, European Journal of Operational Research187(3), 985–1032.

Atamturk, A., Nemhauser, G. L. e Savelsbergh, M. W.: 2000, Conflict graphs in solvinginteger programming problems, European Journal of Operational Research 121(1), 40– 55.

Avella, P. e Vasil’ev, I.: 2005, A Computational Study of a Cutting Plane Algorithm forUniversity Course Timetabling, Journal of Scheduling 8, 497–514.

Benoist, T., Estellon, B., Gardi, F., Megel, R. e Nouioua, K.: 2011, Localsolver 1.x: ablack-box local-search solver for 0-1 programming, 4OR 9(3), 299–316.

Borndorfer, R.: 1998, Aspects of Set Packing, Partitioning, and Covering, PhD thesis,Technische Universitat Berlin.

Borndorfer, R., Grotschel, M., Klostermeier, F. e Kuttner, C.: 1999, Telebus Berlin:Vehicle scheduling in a dial-a-ride system, Springer.

Brito, S. e Santos, H. G.: 2011, Pivoting in the Bron-Kerbosch algorithm for maximum-weight clique detection (in portuguese)., Anais do XLIII Simposio Brasileiro de Pes-quisa Operacional.

Bron, C. e Kerbosch, J.: 1973, Algorithm 457: finding all cliques of an undirected graph,Commun. ACM 16(9), 575–577.

Burke, E., Marecek, J., Parkes, A. e Rudova, H.: 2012, A branch-and-cut procedure forthe udine course timetabling problem, Annals of Operations Research 194(1), 71–87.

39

40 REFERENCIAS BIBLIOGRAFICAS

Cornuejols, G.: 2007, Revival of the Gomory cuts in the 1990’s, Annals of OperationsResearch 149(1), 63–66.

Danna, E., Rothberg, E. e Pape, C. L.: 2005, Exploring relaxation induced neighborho-ods to improve mip solutions, Mathematical Programming 102(1), 71–90.

Dantzig, G. B. e Thapa, M. N.: 2003, Generalized upper bounds, Linear Programming:2: Theory and Extensions pp. 251–264.

Fischetti, M. e Lodi, A.: 2003, Local branching, Mathematical programming 98(1-3), 23–47.

Fischetti, M. e Lodi, A.: 2007, Optimizing over the first Chvatal closure, MathematicalProgramming B 110(1), 3–20.

Garey, M. R. e Johnson, D. S.: 1979, Computers and Intractability: A Guide to theTheory of NP-Completeness, W. H. Freeman.

Grotschel, M., Lovasz, L. e Schrijver, A.: 1993, Geometric Algorithms and CombinatorialOptimization, Springer.

Haspeslagh, S., De Causmaecker, P., Schaerf, A. e Stølevik, M.: 2014, The first interna-tional nurse rostering competition 2010, Annals of Operations Research 218(1), 221–236.

Hoffman, K. e Padberg, M.: 1993, Solving airline crew scheduling problems by branch-and-cut, Management Science 39(6), 657–682.

Jaffar, J. e Maher, M. J.: 1994, Constraint logic programming: A survey, The journalof logic programming 19, 503–581.

Johnson, D. S., Aragon, C. R., McGeoch, L. A. e Schevon, C.: 1991, Optimization bysimulated annealing: an experimental evaluation; part ii, graph coloring and numberpartitioning, Operations research 39(3), 378–406.

Koch, T., Achterberg, T., Andersen, E., Bastert, O., Berthold, T., Bixby, R. E., Danna,E., Gamrath, G., Gleixner, A. M., Heinz, S., Lodi, A., Mittelmann, H., Ralphs,T., Salvagnin, D., Steffy, D. E. e Wolter, K.: 2011, MIPLIB 2010, MathematicalProgramming Computation 3(2), 103–163.

Lancia, G.: 2004, Integer programming models for computational biology problems,Journal of Computer Science and Technology 19(1), 60–77.

Land, A. H. e Doig, A. G.: 1960, An Automatic Method of Solving Discrete Program-ming Problems, Econometrica: Journal of the Econometric Society 28(3), 497–520.

Lougee-Heimer, R.: 2003, The common optimization interface for operations research:Promoting open-source software in the operations research community, IBM Journalof Research and Development 47(1), 57–66.

REFERENCIAS BIBLIOGRAFICAS 41

Mendez-Dıaz, I. e Zabala, P.: 2008, A cutting plane algorithm for graph coloring, Dis-crete Applied Mathematics 156, 159–179.

Nemhauser, G. L., Savelsbergh, M. W. e Sigismondi, G. C.: 1994, Minto, a mixed integeroptimizer, Operations Research Letters 15(1), 47–58.

Padberg, M.: 1973, On the facial structure of set packing polyhedra, MathematicalProgramming 5(1), 199–215.

Pritsker, A. A. B., Watters, L. J. e Wolfe, P. M.: 1969, Multiproject Schedulingwith Limited Resources: A Zero-One Programming Approach, Management Science16(1), 93–108.

Rebennack, S.: 2009, Stable set problem: Branch & cut algorithms stable set problem:Branch & cut algorithms, in C. A. Floudas e P. M. Pardalos (eds), Encyclopedia ofOptimization, Springer US, pp. 3676–3688.

Sandholm, T. e Shields, R.: 2006, Nogood learning for mixed integer programming, Te-chnical Report CMU-CS-06-155, School of Computer Science, Carnegie Mellon Uni-versity, Pittsburgh, PA.

Santos, H. G., Toffolo, T. A., Gomes, R. A. e Ribas, S.: 2014, Integer programmingtechniques for the nurse rostering problem, Annals of Operations Research pp. 1–27.

Savelsbergh, M. W. P.: 1994, Preprocessing and probing techniques for mixed integerprogramming problems, ORSA Journal on Computing 6(4), 445–454.

Van Hentenryck, P. e Michel, L.: 2005, Constraint-Based Local Search, The MIT Press.

Walser, J. P.: 1997, Solving linear pseudo-boolean constraint problems with local search,Proceedings of the Fourteenth National Conference on Artificial Intelligence and NinthConference on Innovative Applications of Artificial Intelligence, AAAI’97/IAAI’97,AAAI Press, pp. 269–274.

Wolsey, L. A.: 1998, Integer Programming, Wiley Series in Discrete Mathematics andOptimization, Wiley.

Wu, Q., Hao, J. K. e Glover, F.: 2012, Multi-neighborhood tabu search for the maximumweight clique problem, Annals of Operations Research 196(1), 611–634.

42

Apendice A

Detalhamento dos Experimentos

Computacionais

Neste Apendice sao detalhados os dados das instancias utilizadas e experimentos com-

putacionais realizados nesta dissertacao.

A.1 Informacoes Sobre as Instancias Utilizadas e seus

Grafos de Conflitos

As caracterısticas das instancias utilizadas neste trabalho podem ser vistas nas tabelas

A.1, A.2 e A.3, onde a coluna m indica o numero de restricoes da instancia, n o numero

total de variaveis de decisao, b o numero de variaveis de decisao binarias e nz o numero

de elementos nao-nulos que aparecem na matriz de restricoes. Em relacao aos grafos de

conflitos, as colunas |E|, Probing e Clique representam, respectivamente, o numero de

conflitos encontrados na instancia, o tempo gasto, em segundos, para construir o grafo

utilizando probing e o tempo gasto, em segundos, para construir o grafo utilizando a

deteccao de cliques.

Tabela A.1: Dados das instancias da MIPLIB, incluindo grafos de Conflitos.

Instancia Dimensoes Grafo de Conflitos

m n b nz |E| Probing (s) Clique (s)

30n20b8 576 18380 18318 109706 2060326 0,58 0,55

acc-tight5 3052 1339 1339 16134 20853 < 0, 01 0,01

43

44 Informacoes Sobre as Instancias Utilizadas e seus Grafos de Conflitos

Tabela A.1: Dados das instancias da MIPLIB, incluindo grafos de Conflitos.(cont.)

Instancia Dimensoes Grafo de Conflitos

m n b nz |E| Probing (s) Clique (s)

aflow40b 1442 2728 1364 6783 24604 0,01 0,01

air04 823 8904 8904 72965 2121648 1,28 1,17

app1-2 53467 26871 13300 199175 13300 0,02 0,02

ash608gpia-3col 24748 3651 3651 74244 34479 0,03 0,03

bab5 4964 21600 21600 155520 246283 1,31 0,08

beasleyC3 1750 2500 1250 5000 1250 < 0, 01 < 0, 01

biella1 1203 7328 6110 71489 6110 0,01 0,01

bienst2 576 505 35 2184 35 < 0, 01 < 0, 01

binkar10 1 1026 2298 170 4496 170 < 0, 01 < 0, 01

bley xl1 175620 5831 5831 869391 21943 0,18 0,25

bnatt350 4923 3150 3150 19061 10211 < 0, 01 0,01

core2536-691 2539 15293 15284 177739 15288 0,52 0,04

cov1075 637 120 120 14280 120 0,01 < 0, 01

csched010 351 1758 1457 6376 26657 0,01 < 0, 01

danoint 664 521 56 3232 56 < 0, 01 < 0, 01

dfn-gwin-UUM 158 938 0 2632 0 < 0, 01 < 0, 01

eil33-2 32 4516 4516 44243 9633849 38,95 6,41

eilB101 100 2818 2818 24120 2043168 2,08 0,87

enlight13 169 338 169 962 169 < 0, 01 < 0, 01

enlight14 196 392 196 1120 196 < 0, 01 < 0, 01

ex9 40962 10404 10404 517112 1891146 0,81 0,79

glass4 396 322 302 1815 1464 < 0, 01 < 0, 01

gmu-35-40 424 1205 1200 4843 11471 0,01 < 0, 01

iis-100-0-cov 3831 100 100 22986 100 < 0, 01 < 0, 01

iis-bupa-cov 4803 345 345 38392 341 0,01 0,01

iis-pima-cov 7201 768 768 71941 736 0,02 0,01

lectsched-4-obj 14163 7901 7665 82428 7572 < 0, 01 0,01

m100n500k4r1 100 500 500 2000 19535 < 0, 01 0,01

macrophage 3164 2260 2260 9492 2260 < 0, 01 < 0, 01

map18 328818 164547 146 549920 146 0,09 0,07

map20 328818 164547 146 549920 146 0,09 0,08

mcsched 2107 1747 1745 8088 5652 < 0, 01 < 0, 01

mik-250-1-100-1 151 251 100 5351 100 < 0, 01 < 0, 01

mine-166-5 8429 830 830 19412 9249 < 0, 01 0,01

mine-90-10 6270 900 900 15407 7150 0,01 0,01

msc98-ip 15850 21143 20237 92918 24876 0,02 0,02

mspp16 561657 29280 29280 27678735 1758840 10,08 4,92

mzzv11 9499 10240 9989 134603 251179 0,2 0,19

Informacoes Sobre as Instancias Utilizadas e seus Grafos de Conflitos 45

Tabela A.1: Dados das instancias da MIPLIB, incluindo grafos de Conflitos.(cont.)

Instancia Dimensoes Grafo de Conflitos

m n b nz |E| Probing (s) Clique (s)

n3div36 4484 22120 22120 340740 66360 5,12 0,08

n3seq24 6044 119856 119856 3232340 11396108 127,35 1,04

n4-3 1236 3596 0 14036 0 0,01 < 0, 01

neos-1109824 28979 1520 1520 89528 57114 0,03 0,03

neos-1337307 5687 2840 2840 30799 10032 0,02 0,01

neos-1396125 1494 1161 129 5511 480 < 0, 01 < 0, 01

neos13 20852 1827 1815 253842 1815 0,02 < 0, 01

neos-1601936 3131 4446 3906 72500 100464 0,03 0,03

neos18 11402 3312 3312 24614 8618 0,01 < 0, 01

neos-476283 10015 11915 5588 3945693 55187 0,07 0,03

neos-686190 3664 3660 3600 18085 216002 0,05 0,04

neos-849702 1041 1737 1737 19308 51234 0,02 0,02

neos-916792 1909 1474 717 134442 717 < 0, 01 < 0, 01

neos-934278 11495 23123 19955 125577 862418 0,28 0,29

net12 14021 14115 1603 80384 4055 0,01 < 0, 01

netdiversion 119589 129180 129180 615282 633565 0,3 0,36

newdano 576 505 56 2184 56 < 0, 01 < 0, 01

noswot 182 128 75 735 75 < 0, 01 < 0, 01

ns1208400 4289 2883 2880 81746 101268 0,04 0,04

ns1688347 4191 2685 2685 66908 465108 0,67 0,43

ns1758913 624166 17956 17822 1283444 1808999 0,84 0,94

ns1766074 182 100 0 666 0 < 0, 01 < 0, 01

ns1830653 2932 1629 1458 100933 40176 0,02 0,02

opm2-z7-s2 31798 2023 2023 79762 33813 0,09 0,11

pg5 34 225 2600 100 7700 100 < 0, 01 < 0, 01

pigeon-10 931 490 400 8150 430 < 0, 01 < 0, 01

pw-myciel4 8164 1059 1058 17779 16744 0,01 < 0, 01

qiu 1192 840 48 3432 48 < 0, 01 < 0, 01

rail507 509 63019 63009 468878 63012 10,25 0,07

ran16x16 288 512 256 1024 256 < 0, 01 < 0, 01

reblock67 2523 670 670 7495 3173 < 0, 01 0,01

rmatr100-p10 7260 7359 100 21877 100 0,01 < 0, 01

rmatr100-p5 8685 8784 100 26152 100 < 0, 01 0,01

rmine6 7078 1096 1096 18084 8162 0,01 < 0, 01

rocII-4-11 21738 9234 9086 243106 953579 1,36 1,29

rococoC10-001000 1293 3117 2993 11751 5132 < 0, 01 0,01

roll3000 2295 1166 246 29386 628 0,01 < 0, 01

satellites1-25 5996 9013 8509 59023 84124 0,03 0,05

46 Informacoes Sobre as Instancias Utilizadas e seus Grafos de Conflitos

Tabela A.1: Dados das instancias da MIPLIB, incluindo grafos de Conflitos.(cont.)

Instancia Dimensoes Grafo de Conflitos

m n b nz |E| Probing (s) Clique (s)

sp98ic 825 10894 10894 316317 106998 1,66 0,07

sp98ir 1531 1680 992 71704 10116 0,01 0,01

tanglegram1 68342 34759 34759 205026 34759 0,04 0,05

tanglegram2 8980 4714 4714 26940 4714 0,01 < 0, 01

timtab1 171 397 77 829 64 < 0, 01 < 0, 01

triptim1 15706 30055 20456 515436 511244 0,6 0,54

unitcal 7 48939 25755 2856 127595 2856 0,02 < 0, 01

vpphard 47280 51471 51471 372305 225798 0,14 0,15

zib54-UUE 1809 5150 81 15288 81 < 0, 01 < 0, 01

Tabela A.2: Dados das instancias da INRC, incluindo grafos de Conflitos.

Instancia Dimensoes Grafo de Conflitos

m n b nz |E| Probing (s) Clique (s)

long early 01 17241 52729 52729 1012492 12517055 21,21 14,77

long early 02 17241 52803 52803 1012566 12517129 21,37 14,8

long early 03 17241 52838 52838 1012601 12517164 21,31 14,84

long early 04 17241 52831 52831 1012594 12517157 21,21 14,84

long early 05 17241 52789 52789 1012552 12517115 21,11 14,73

long hidden 01 28370 63205 63205 1065275 12782145 21,71 15,91

long hidden 02 28370 63205 63205 1065275 12782145 21,74 15,92

long hidden 03 29210 63620 63620 1068150 12807280 21,8 16,1

long hidden 04 28370 63205 63205 1065275 12806645 21,79 16,04

long hidden 05 27530 62880 62880 1062510 12806120 21,67 16,01

long late 01 27875 63005 63005 1063670 12781810 21,85 15,88

long late 02 27875 63005 63005 1063670 12781810 21,79 15,86

long late 03 27875 63005 63005 1063670 12781810 21,83 15,91

long late 04 27875 63005 63005 1063670 12781810 21,76 15,82

long late 05 27243 62631 62631 1061472 12781324 21,66 15,72

medium early 01 8668 30279 30279 622441 7780434 13,19 8,78

medium early 02 8668 30309 30309 622471 7780464 13,14 8,8

medium early 03 8668 30309 30309 622471 7780464 13,1 8,8

medium early 04 8668 30273 30273 622435 7780428 13,11 8,76

medium early 05 8668 30348 30348 622510 7780503 13,22 8,82

medium hidden 01 16070 37415 37415 635725 7674835 12,7 8,82

medium hidden 02 16070 37415 37415 635725 7674835 12,61 8,78

medium hidden 03 16070 37415 37415 635725 7674835 12,63 8,78

medium hidden 04 16070 37415 37415 635725 7674835 12,66 8,75

Informacoes Sobre as Instancias Utilizadas e seus Grafos de Conflitos 47

Tabela A.2: Dados das instancias da INRC, incluindo grafos de Conflitos.(cont.)

Instancia Dimensoes Grafo de Conflitos

m n b nz |E| Probing (s) Clique (s)

medium hidden 05 16070 37415 37415 635725 7674835 12,56 8,74

medium late 01 14062 34850 34850 623360 7538210 12,81 8,67

medium late 02 14062 34814 34814 623352 7538202 12,9 8,78

medium late 03 8872 29486 29486 603434 7533044 12,92 8,75

medium late 04 13902 34770 34770 622880 7538130 12,89 8,74

medium late 05 14450 35810 35810 630920 7675010 12,58 8,72

sprint early 01 3522 10460 10460 204210 2513720 3,63 2,84

sprint early 02 3522 10458 10458 204208 2513718 3,64 2,85

sprint early 03 3522 10456 10456 204206 2513716 3,63 2,85

sprint early 04 3522 10452 10452 204202 2513712 3,65 2,86

sprint early 05 3522 10458 10458 204208 2513718 3,62 2,85

sprint early 06 3522 10452 10452 204202 2513712 3,66 2,86

sprint early 07 3522 10456 10456 204206 2513716 3,65 2,84

sprint early 08 3522 10444 10444 204194 2513704 3,63 2,86

sprint early 09 3522 10458 10458 204208 2513718 3,66 2,85

sprint early 10 3522 10454 10454 204204 2513714 3,66 2,85

sprint hidden 01 3814 10421 10421 202591 2470181 3,64 2,81

sprint hidden 02 3814 10421 10421 202591 2470901 3,64 2,81

sprint hidden 03 5032 11867 11867 208587 2515077 3,64 2,84

sprint hidden 04 5032 11867 11867 208587 2513817 3,66 2,88

sprint hidden 05 5032 11851 11851 208571 2515241 3,66 2,87

sprint hidden 06 3694 10381 10381 202311 2470141 3,67 2,84

sprint hidden 07 3694 10381 10381 202311 2470861 3,65 2,83

sprint hidden 08 4872 11827 11827 208227 2515037 3,69 2,86

sprint hidden 09 4872 11827 11827 208227 2513777 3,65 2,88

sprint hidden 10 4872 11811 11811 208211 2515201 3,63 2,87

sprint late 01 5032 11863 11863 208583 2515073 3,65 2,87

sprint late 02 3804 10423 10423 202783 2470353 3,64 2,82

sprint late 03 5032 11863 11863 208583 2515073 3,66 2,85

sprint late 04 5032 11863 11863 208583 2515073 3,64 2,9

sprint late 05 5032 11872 11872 208592 2515082 3,68 2,9

sprint late 06 3032 9792 9792 201132 2513082 3,69 2,9

sprint late 07 3032 9785 9785 201125 2513075 3,7 2,85

sprint late 08 3032 9785 9785 201125 2513255 3,66 2,88

sprint late 09 3096 9817 9817 201344 2513302 3,64 2,88

sprint late 10 3032 9783 9783 201123 2513073 3,63 2,86

48 Informacoes Sobre as Instancias Utilizadas e seus Grafos de Conflitos

Tabela A.3: Dados das instancias do Telebus, incluindo grafos de Conflitos.

Instancia Dimensoes Grafo de Conflitos

m n b nz |E| Probing (s) Clique (s)

t0415 1518 7254 7254 48867 2045764 1,71 0,77

t0416 1771 9345 9345 62703 2726927 2,79 1,15

t0417 1765 7894 7894 54885 2346631 2,23 0,88

t0418 1765 8676 8676 66604 3151353 3,33 1,37

t0419 1626 9362 9362 64745 3056164 3,54 1,13

t0420 958 4583 4583 27781 675791 0,23 0,21

t0421 952 4016 4016 24214 621412 0,22 0,19

t1716 467 56865 56865 249149 48816593 61,85 9,65

t1717 551 73885 73885 325689 70282522 90,89 14,48

t1718 523 67796 67796 305064 65652251 84,12 13,63

t1719 556 72520 72520 317391 65443990 85,29 13,89

t1720 538 69134 69134 310512 65356816 84,47 13,72

t1721 357 36039 36039 148848 23088250 25,82 4,32

t1722 338 36630 36630 133096 19433519 22,29 3,45

v0415 1518 7684 7684 20668 2152650 1,23 0,33

v0416 1771 19020 19020 58453 10461055 8,96 1,19

v0417 1765 143317 143317 531820 1935532747 10978,66 234,78

v0418 1765 8306 8306 20748 768894 0,21 0,18

v0419 1626 15709 15709 52867 33979382 49,75 5,56

v0420 958 4099 4099 10240 363075 0,1 0,08

v0421 952 1814 1814 3119 13812 0 0

v1616 1439 67441 67441 244727 64560847 64,25 7,09

v1617 1619 113655 113655 432278 186441168 228,73 24,6

v1618 1603 146715 146715 545337 628949490 1572,12 82,58

v1619 1612 105822 105822 401097 179787279 214,72 19,94

v1620 1560 115729 115729 444445 198297948 236,58 21,92

v1621 938 24772 24772 76971 8841645 4,54 1,15

v1622 859 13773 13773 41656 2170427 0,83 0,41

A.2 Melhoria dos Limites Duais por Instancia

As tabelas A.4, A.5 e A.6 apresentam a melhoria dos limites duais por instancia, utili-

zando a rotina de separacao de cortes da biblioteca COIN-OR (cgl) e a rotina proposta

com o modulo de lifting desativado (npsep) e ativado (lnpsep). As colunas MSC e LP

Informacoes Sobre as Instancias Utilizadas e seus Grafos de Conflitos 49

representam, respectivamente, a melhor solucao conhecida e o valor da relaxacao linear

do no raiz de cada instancia. A coluna LB apresenta o valor da relaxacao linear do no

raiz obtido apos a insercao de cortes, Gap a distancia relativa desse valor para a melhor

solucao conhecida e Tempo indica o tempo total, em segundos, gasto pelas rotinas de

separacao.

50 Informacoes Sobre as Instancias Utilizadas e seus Grafos de ConflitosT

ab

ela

A.4

:M

elhor

iados

lim

ites

duai

spar

ain

stan

cias

da

MIP

LIB

.

Inst

an

cia

MS

CL

Pcgl

np

sep

lnp

sep

LB

Gap

Tem

po

LB

Gap

Tem

po

LB

Gap

Tem

po

acc

-tig

ht5

0,0

00,0

00,0

00,0

00,5

20,0

00,0

075,2

30,0

00,0

07,9

4

afl

ow

40b

1168,0

01005,6

61005,6

60,1

40,0

61005,6

60,1

40,0

61005,6

60,1

40,0

6

air

04

56137,0

055535,4

455646,8

80,0

12,5

555646,7

20,0

13,7

655649,4

30,0

11,8

0

ap

p1-2

-41,0

0-2

64,6

0-2

64,6

00,8

57,5

4-2

64,6

00,8

57,5

7-2

64,6

00,8

57,5

5

ash

608gp

ia-3

col

Infa

ctıv

el2,0

02,0

0∞

0,8

63,0

0∞

300,0

03,0

0∞

300,0

0

bab

5-1

06412,0

0-1

24657,6

4-1

24657,6

40,1

51,7

6-1

23957,4

00,1

42,3

7-1

23957,4

00,1

42,3

0

bea

sley

C3

754,0

040,4

340,4

30,9

50,0

140,4

30,9

50,0

140,4

30,9

50,0

1

bie

lla1

3065010,0

03060037,4

33060037,4

30,0

01,1

93060037,4

30,0

01,1

93060037,4

30,0

01,1

9

bie

nst

254,6

011,7

211,7

20,7

90,0

111,7

20,7

90,0

011,7

20,7

90,0

1

bin

kar1

01

6742,2

06637,1

96637,1

90,0

20,0

16637,1

90,0

20,0

16637,1

90,0

20,0

2

ble

yxl1

190,0

0154,3

9154,3

90,1

9300,0

0154,3

90,1

9300,0

0154,3

90,1

9300,0

0

bn

att

350

0,0

00,0

00,0

00,0

00,0

40,0

00,0

04,3

50,0

00,0

04,3

7

core

2536-6

91

689,0

0688,4

8688,4

80,0

06,7

1688,4

80,0

06,7

4688,4

80,0

06,7

6

cov1075

20,0

017,1

417,1

40,1

40,0

417,1

40,1

40,0

417,1

40,1

40,0

4

csch

ed010

408,0

0332,4

2332,4

20,1

90,0

7332,4

20,1

90,0

7332,4

20,1

90,0

7

dan

oin

t65,6

762,6

462,6

40,0

50,0

262,6

40,0

50,0

262,6

40,0

50,0

2

dfn

-gw

in-U

UM

38752,0

027467,2

627467,2

60,2

90,0

127467,2

60,2

90,0

127467,2

60,2

90,0

1

eil3

3-2

934,0

1811,2

8818,1

90,1

29,4

6818,1

70,1

213,0

1825,1

40,1

2116,7

5

eilB

101

1216,9

21075,2

51098,9

10,1

058,2

11098,5

10,1

0300,0

01145,8

70,0

6246,1

8

enlight1

371,0

00,0

00,0

01,0

00,0

00,0

01,0

00,0

00,0

01,0

00,0

0

enlight1

4In

fact

ıvel

0,0

00,0

0∞

0,0

00,0

0∞

0,0

00,0

0∞

0,0

0

ex9

81,0

081,0

081,0

00,0

029,6

381,0

00,0

0300,0

081,0

00,0

0300,0

0

gla

ss4

1200010000,0

0800002400,0

0800002400,0

00,3

30,0

0800002400,0

00,3

30,0

0800002400,0

00,3

30,0

0

gm

u-3

5-4

0-2

406730,0

0-2

406943,5

6-2

406943,5

60,0

00,0

2-2

406943,5

60,0

00,0

2-2

406943,5

60,0

00,0

2

iis-

100-0

-cov

29,0

016,6

716,6

70,4

30,0

816,6

70,4

30,0

816,6

70,4

30,0

8

Informacoes Sobre as Instancias Utilizadas e seus Grafos de Conflitos 51T

ab

ela

A.4

:M

elhor

iados

lim

ites

duai

spar

ain

stan

cias

da

MIP

LIB

.(c

ont.

)

Inst

an

cia

MS

CL

Pcgl

np

sep

lnp

sep

LB

Gap

Tem

po

LB

Gap

Tem

po

LB

Gap

Tem

po

iis-

bu

pa-c

ov

36,0

026,5

026,5

00,2

60,2

326,5

00,2

60,2

226,5

00,2

60,2

2

iis-

pim

a-c

ov

33,0

026,6

226,6

20,1

90,2

926,6

20,1

90,2

926,6

20,1

90,3

0

lect

sch

ed-4

-ob

j4,0

00,0

00,0

01,0

00,0

60,0

01,0

00,0

60,0

01,0

00,0

5

m100n

500k4r1

-25,0

0-2

5,0

0-2

5,0

00,0

00,0

2-2

5,0

00,0

00,0

5-2

5,0

00,0

00,0

4

macr

op

hage

374,0

00,0

00,0

01,0

00,0

10,0

01,0

00,0

20,0

01,0

00,0

1

map

18

-847,0

0-9

32,7

8-9

32,7

80,0

912,2

9-9

32,7

80,0

912,0

5-9

32,7

80,0

912,3

3

map

20

-922,0

0-9

98,8

4-9

98,8

40,0

811,2

1-9

98,8

40,0

810,8

5-9

98,8

40,0

811,0

3

mcs

ched

211913,0

0193774,7

5193774,7

50,0

90,2

5193774,7

50,0

90,8

6193774,7

50,0

90,8

5

mik

-250-1

-100-1

-66729,0

0-7

9842,4

2-7

9842,4

20,1

60,0

0-7

9842,4

20,1

60,0

0-7

9842,4

20,1

60,0

0

min

e-166-5

-566396000,0

0-8

21763677,6

7-8

21763677,6

70,3

10,1

0-8

21763677,6

70,3

10,3

3-8

21763677,6

70,3

10,3

3

min

e-90-1

0-7

84302000,0

0-8

87165318,5

1-8

87165318,5

10,1

20,1

2-8

87165318,5

10,1

20,3

6-8

87165318,5

10,1

20,3

6

msc

98-i

p19839500,0

019520966,1

519520966,1

50,0

241,4

519520966,1

50,0

251,8

119520966,1

50,0

251,9

7

msp

p16

363,0

0341,0

0341,0

00,0

614,4

4341,0

00,0

614,4

9341,0

00,0

614,4

6

mzz

v11

-21718,0

0-2

2945,2

4-2

2773,7

50,0

538,8

5-2

2775,2

20,0

554,4

2-2

2773,7

50,0

528,9

5

n3d

iv36

130800,0

0114333,3

7114333,3

70,1

30,1

5114333,3

70,1

30,1

5114333,3

70,1

30,1

5

n3se

q24

52200,0

052000,0

052000,0

00,0

05,1

952000,0

00,0

05,3

252000,0

00,0

05,3

0

n4-3

8993,0

04080,8

84080,8

80,5

50,0

24080,8

80,5

50,0

24080,8

80,5

50,0

2

neo

s-1109824

378,0

0278,0

0278,0

00,2

60,0

6278,0

00,2

60,0

7278,0

00,2

60,0

6

neo

s-1337307

-202319,0

0-2

03123,9

7-2

03123,9

70,0

00,5

6-2

03123,9

70,0

01,2

2-2

03123,9

70,0

01,2

5

neo

s-1396125

3000,0

5388,5

5388,5

50,8

70,1

0618,6

70,7

91,2

9618,6

70,7

91,3

1

neo

s13

-95,4

7-1

26,1

8-1

26,1

80,2

40,8

2-1

26,1

80,2

40,8

3-1

26,1

80,2

40,8

5

neo

s-1601936

3,0

01,0

03,0

00,0

047,3

33,0

00,0

056,4

03,0

00,0

0104,1

4

neo

s18

16,0

07,0

07,0

00,5

60,0

49,2

50,4

42,4

09,2

50,4

42,3

7

neo

s-476283

406,3

6406,2

4406,2

40,0

072,4

4406,2

40,0

072,1

1406,2

40,0

073,1

6

neo

s-686190

6730,0

05134,8

15134,8

10,2

40,0

65136,2

10,2

40,0

75136,2

10,2

40,0

7

52 Informacoes Sobre as Instancias Utilizadas e seus Grafos de ConflitosT

ab

ela

A.4

:M

elhor

iados

lim

ites

duai

spar

ain

stan

cias

da

MIP

LIB

.(c

ont.

)

Inst

an

cia

MS

CL

Pcgl

np

sep

lnp

sep

LB

Gap

Tem

po

LB

Gap

Tem

po

LB

Gap

Tem

po

neo

s-849702

0,0

00,0

00,0

00,0

089,4

30,0

00,0

0190,2

00,0

00,0

062,5

8

neo

s-916792

31,8

726,2

026,2

00,1

80,0

626,2

00,1

80,0

726,2

00,1

80,0

6

neo

s-934278

260,0

0259,5

0259,5

00,0

036,7

9259,5

00,0

045,5

8259,5

00,0

047,2

6

net

12

214,0

017,2

517,2

50,9

20,4

017,2

50,9

20,4

217,2

50,9

20,4

2

net

div

ersi

on

242,0

0230,8

0230,8

00,0

57,4

1230,8

00,0

58,7

7230,8

00,0

58,7

4

new

dan

o65,6

711,7

211,7

20,8

20,0

111,7

20,8

20,0

111,7

20,8

20,0

0

nosw

ot

-41,0

0-4

3,0

0-4

3,0

00,0

50,0

0-4

3,0

00,0

50,0

0-4

3,0

00,0

50,0

0

ns1

208400

2,0

00,0

00,0

01,0

01,0

90,0

01,0

01,2

90,0

01,0

01,1

6

ns1

688347

27,0

02,0

02,4

60,9

115,8

12,4

40,9

269,3

75,8

10,7

8220,1

6

ns1

758913

-1454,6

7-1

501,1

8-1

486,2

00,0

2300,0

0-1

480,3

90,0

2300,0

0-1

471,9

10,0

1300,0

0

ns1

766074

Infa

ctıv

el5833,8

05833,8

0∞

0,0

05833,8

0∞

0,0

05833,8

0∞

0,0

0

ns1

830653

20622,0

06153,0

06153,0

00,7

00,4

46425,0

00,6

91,7

86425,0

00,6

90,8

8

op

m2-z

7-s

2-1

0280,0

0-1

2879,6

9-1

2879,6

90,2

01,8

9-1

2879,6

90,2

03,4

2-1

2879,6

90,2

03,4

3

pg5

34

-14339,4

0-1

6646,5

9-1

6646,5

90,1

40,0

1-1

6646,5

90,1

40,0

0-1

6646,5

90,1

40,0

1

pig

eon

-10

-9000,0

0-1

0000,0

0-1

0000,0

00,1

00,0

0-1

0000,0

00,1

00,0

1-1

0000,0

00,1

00,0

0

pw

-myci

el4

10,0

00,0

04,0

00,6

01,6

24,0

00,6

014,0

84,0

00,6

06,6

8

qiu

-132,8

7-9

31,6

4-9

31,6

40,8

60,0

2-9

31,6

40,8

60,0

2-9

31,6

40,8

60,0

2

rail507

174,0

0172,1

5172,1

50,0

12,8

6172,1

50,0

12,8

7172,1

50,0

12,8

5

ran

16x16

3823,0

03116,4

33116,4

30,1

80,0

03116,4

30,1

80,0

03116,4

30,1

80,0

0

reb

lock

67

-34630600,0

0-3

9339910,9

2-3

9339910,9

20,1

20,0

5-3

9339910,9

20,1

20,1

7-3

9339910,9

20,1

20,1

7

rmatr

100-p

10

423,0

0360,5

9360,5

90,1

50,2

3360,5

90,1

50,2

2360,5

90,1

50,2

2

rmatr

100-p

5976,0

0762,0

4762,0

40,2

20,4

3762,0

40,2

20,4

3762,0

40,2

20,4

3

rmin

e6-4

57,1

9-4

62,3

1-4

62,3

10,0

10,0

8-4

62,3

10,0

10,1

1-4

62,3

10,0

10,1

1

rocI

I-4-1

1-6

,66

-11,9

4-1

1,9

40,4

41,4

0-1

1,9

40,4

4277,4

7-1

1,9

40,4

4199,9

2

roco

coC

10-0

01000

11460,0

07515,2

77515,2

70,3

40,0

17515,2

70,3

40,0

17515,2

70,3

40,0

1

Informacoes Sobre as Instancias Utilizadas e seus Grafos de Conflitos 53T

ab

ela

A.4

:M

elhor

iados

lim

ites

duai

spar

ain

stan

cias

da

MIP

LIB

.(c

ont.

)

Inst

an

cia

MS

CL

Pcgl

np

sep

lnp

sep

LB

Gap

Tem

po

LB

Gap

Tem

po

LB

Gap

Tem

po

roll3000

12890,0

011097,1

311097,1

30,1

40,0

611097,4

30,1

40,0

611097,4

30,1

40,0

6

sate

llit

es1-2

5-5

,00

-20,0

0-2

0,0

00,7

50,1

0-2

0,0

00,7

51,7

1-2

0,0

00,7

50,3

1

sp98ic

449145000,0

0444277568,9

3444277568,9

30,0

10,2

3444277568,9

30,0

10,2

3444277568,9

30,0

10,2

3

sp98ir

219677000,0

0216663444,5

9216663444,5

90,0

10,1

0216663444,5

90,0

10,1

0216663444,5

90,0

10,1

0

tan

gle

gra

m1

5182,0

00,0

00,0

01,0

01,1

90,0

01,0

01,1

60,0

01,0

01,1

8

tan

gle

gra

m2

443,0

00,0

00,0

01,0

00,0

20,0

01,0

00,0

20,0

01,0

00,0

3

tim

tab

1764772,0

028694,0

028694,0

00,9

60,0

028694,0

00,9

60,0

028694,0

00,9

60,0

0

trip

tim

122,8

722,8

722,8

70,0

025,1

722,8

70,0

025,1

522,8

70,0

025,0

3

un

itca

l7

19635600,0

019387553,3

819387553,3

80,0

10,7

419387553,3

80,0

10,7

419387553,3

80,0

10,7

8

vp

ph

ard

5,0

00,0

00,0

01,0

02,7

70,0

01,0

02,8

20,0

01,0

02,8

4

zib

54-U

UE

10334000,0

03875862,8

63875862,8

60,6

20,0

33875862,8

60,6

20,0

33875862,8

60,6

20,0

3

Tab

ela

A.5

:M

elhor

iados

lim

ites

duai

spar

ain

stan

cias

da

INR

C.

Inst

ancia

MS

CL

Pcgl

np

sep

lnp

sep

LB

Gap

Tem

po

LB

Gap

Tem

po

LB

Gap

Tem

po

lon

gea

rly

02

219

191,5

0199,5

90,0

9129,6

6199,5

40,0

9192,8

6201,1

80,0

834,2

3

lon

gea

rly

03

240

223,5

0224,1

70,0

7300,0

0224,0

70,0

7300,0

0224,1

70,0

738,1

0

lon

gea

rly

04

303

287,1

7292,1

70,0

4300,0

0292,1

70,0

4300,0

0292,1

70,0

439,0

8

lon

gea

rly

05

284

268,1

7273,1

70,0

4300,0

0273,1

70,0

4300,0

0273,1

70,0

436,6

3

lon

gh

idd

en01

346

140,0

0166,9

80,5

2300,0

0164,9

20,5

2300,0

0282,7

70,1

8300,0

0

lon

gh

idd

en02

89

41,5

044,7

50,5

0300,0

044,4

20,5

0300,0

069,0

30,2

2300,0

0

lon

gh

idd

en03

38

8,0

08,0

00,7

9300,0

08,0

00,7

9300,0

016,6

60,5

6300,0

0

lon

gh

idd

en04

22

12,0

012,0

00,4

5300,0

012,0

00,4

5300,0

016,9

80,2

3214,4

5

lon

gh

idd

en05

41

10,0

010,0

70,7

5300,0

010,0

00,7

6300,0

029,4

20,2

8300,0

0

lon

gla

te01

235

88,0

088,0

00,6

3300,0

088,0

00,6

3300,0

0151,1

80,3

6300,0

0

54 Informacoes Sobre as Instancias Utilizadas e seus Grafos de ConflitosT

ab

ela

A.5

:M

elhor

iados

lim

ites

duai

spar

ain

stan

cias

da

INR

C.

(con

t.)

Inst

ancia

MS

CL

Pcgl

np

sep

lnp

sep

LB

Gap

Tem

po

LB

Gap

Tem

po

LB

Gap

Tem

po

lon

gla

te02

229

88,0

088,0

00,6

2300,0

088,0

00,6

2300,0

0150,0

90,3

4300,0

0

lon

gla

te03

220

72,0

072,0

00,6

7300,0

072,0

00,6

7300,0

0184,9

50,1

6300,0

0

lon

gla

te04

221

72,0

072,0

00,6

7300,0

072,0

00,6

7300,0

0178,9

30,1

9300,0

0

lon

gla

te05

83

72,0

072,0

00,1

3300,0

072,0

00,1

3300,0

075,0

00,1

0300,0

0

med

ium

earl

y01

240

240,0

0240,0

00,0

0270,8

5240,0

00,0

0300,0

0240,0

00,0

042,5

9

med

ium

earl

y02

240

235,0

0236,3

30,0

2232,7

6236,0

80,0

2300,0

0239,2

50,0

034,4

6

med

ium

earl

y03

236

232,0

0234,1

30,0

1300,0

0234,1

00,0

1300,0

0235,5

00,0

043,4

0

med

ium

earl

y04

237

233,0

0233,4

80,0

1184,1

1233,0

00,0

2300,0

0236,2

20,0

038,3

3

med

ium

earl

y05

303

277,7

5286,6

60,0

5104,3

8284,8

30,0

6300,0

0301,3

30,0

1300,0

0

med

ium

hid

den

01

111

0,0

00,0

01,0

0300,0

00,0

01,0

0300,0

010,5

30,9

1300,0

0

med

ium

hid

den

02

221

111,0

0111,0

00,5

0300,0

0111,0

00,5

0300,0

0151,3

80,3

2300,0

0

med

ium

hid

den

03

34

0,0

00,0

01,0

0300,0

00,0

01,0

0300,0

01,9

70,9

4300,0

0

med

ium

hid

den

04

78

31,0

031,0

00,6

0300,0

031,0

00,6

0300,0

040,9

90,4

7300,0

0

med

ium

hid

den

05

119

56,0

056,0

00,5

3300,0

056,0

00,5

3300,0

058,5

10,5

1300,0

0

med

ium

late

01

157

62,2

085,4

50,4

6103,6

581,6

90,4

8300,0

0115,8

80,2

6268,2

9

med

ium

late

02

18

6,0

08,6

10,5

2300,0

07,8

30,5

7300,0

012,6

40,3

0122,0

7

med

ium

late

03

29

9,4

115,0

00,4

899,4

312,7

90,5

6300,0

019,7

50,3

2300,0

0

med

ium

late

04

35

5,6

914,0

70,6

0130,7

211,6

40,6

7300,0

021,9

20,3

7300,0

0

med

ium

late

05

107

28,0

347,3

80,5

6118,6

942,4

70,6

0300,0

068,8

50,3

6214,0

0

spri

nt

earl

y01

56

52,4

253,3

20,0

534,9

453,2

90,0

567,9

954,0

00,0

418,3

0

spri

nt

earl

y02

58

54,4

255,3

10,0

527,4

255,3

20,0

563,2

456,1

70,0

39,2

1

spri

nt

earl

y03

51

49,0

049,6

50,0

324,9

149,6

00,0

388,1

150,0

00,0

26,2

0

spri

nt

earl

y04

59

55,0

056,5

00,0

427,7

056,5

00,0

466,7

256,5

00,0

45,6

4

spri

nt

earl

y05

58

53,0

053,9

70,0

728,7

054,0

00,0

768,2

354,6

70,0

66,3

5

spri

nt

earl

y06

54

51,0

051,7

70,0

426,3

051,7

50,0

466,9

852,0

00,0

45,2

4

Informacoes Sobre as Instancias Utilizadas e seus Grafos de Conflitos 55T

ab

ela

A.5

:M

elhor

iados

lim

ites

duai

spar

ain

stan

cias

da

INR

C.

(con

t.)

Inst

ancia

MS

CL

Pcgl

np

sep

lnp

sep

LB

Gap

Tem

po

LB

Gap

Tem

po

LB

Gap

Tem

po

spri

nt

earl

y07

56

54,0

054,6

70,0

223,9

954,6

40,0

261,0

055,0

00,0

25,0

4

spri

nt

earl

y08

56

51,0

052,2

80,0

722,4

552,2

50,0

745,6

552,6

70,0

66,0

7

spri

nt

earl

y09

55

53,0

053,5

90,0

326,1

853,6

20,0

381,2

454,0

00,0

27,6

2

spri

nt

earl

y10

52

48,5

049,9

20,0

428,2

049,8

80,0

474,2

050,2

50,0

35,2

2

spri

nt

hid

den

01

32

19,4

125,2

00,2

119,0

225,1

90,2

1153,1

326,1

80,1

89,2

3

spri

nt

hid

den

02

32

21,0

028,6

90,1

048,8

128,5

80,1

1218,2

130,8

00,0

47,6

9

spri

nt

hid

den

03

62

51,6

358,7

00,0

524,4

858,5

80,0

6101,4

361,9

90,0

012,4

1

spri

nt

hid

den

04

66

42,8

350,9

30,2

328,6

250,8

90,2

374,4

961,1

20,0

7300,0

0

spri

nt

hid

den

05

59

51,5

757,6

30,0

217,5

157,5

30,0

292,2

258,7

40,0

07,6

3

spri

nt

hid

den

06

130

100,9

3123,1

80,0

514,2

5123,1

70,0

597,9

6125,3

30,0

44,9

7

spri

nt

hid

den

07

153

120,8

9146,4

00,0

428,1

4145,8

90,0

5186,0

9149,8

00,0

26,3

9

spri

nt

hid

den

08

204

163,5

4190,9

80,0

620,1

1190,3

00,0

735,2

1196,3

80,0

46,5

2

spri

nt

hid

den

09

338

219,8

3282,8

70,1

632,3

1282,3

20,1

6102,9

9330,4

60,0

223,0

8

spri

nt

hid

den

10

306

283,9

5299,0

20,0

211,8

9298,9

70,0

247,9

0302,6

00,0

16,0

0

spri

nt

late

01

37

26,0

332,5

80,1

223,9

832,6

70,1

296,0

835,2

00,0

57,5

9

spri

nt

late

02

42

33,7

538,0

60,0

922,2

838,0

50,0

9120,7

840,2

90,0

411,5

2

spri

nt

late

03

48

34,2

541,5

30,1

329,7

341,4

70,1

4100,6

844,5

50,0

712,8

1

spri

nt

late

04

73

45,6

055,7

00,2

430,3

455,5

80,2

477,5

759,6

60,1

86,9

5

spri

nt

late

05

44

35,1

040,2

90,0

828,3

840,3

00,0

8102,4

242,1

70,0

417,5

1

spri

nt

late

06

42

34,6

039,6

30,0

626,4

439,5

80,0

669,3

241,5

00,0

111,3

2

spri

nt

late

07

42

30,7

339,5

60,0

618,1

939,4

00,0

643,8

141,1

10,0

24,7

9

spri

nt

late

08

17

8,0

09,3

00,4

595,2

59,3

40,4

5150,9

511,0

00,3

58,5

0

spri

nt

late

09

17

8,0

09,3

40,4

578,5

59,3

10,4

5140,6

511,0

00,3

59,1

4

spri

nt

late

10

43

32,8

539,7

80,0

714,7

739,7

90,0

748,3

442,2

20,0

24,6

9

56 Informacoes Sobre as Instancias Utilizadas e seus Grafos de ConflitosT

ab

ela

A.6

:M

elhor

iados

lim

ites

duai

spar

ain

stan

cias

do

Tel

ebus.

Inst

an

cia

MS

CL

Pcgl

np

sep

lnp

sep

LB

Gap

Tem

po

LB

Gap

Tem

po

LB

Gap

Tem

po

t0416

6088260

5829948,7

75838710,5

10,0

44,2

65840558,7

70,0

431,5

95843662,2

00,0

411,5

1

t0417

5951360

5609973,0

55624367,5

60,0

55,1

65628236,2

10,0

531,9

65631597,1

00,0

54,6

4

t0418

6442910

6142664,9

06147074,5

20,0

55,6

06154361,2

30,0

486,2

96155038,4

30,0

47,4

7

t0419

5907870

5644051,0

05656885,6

60,0

44,7

65658903,8

80,0

432,8

35659742,0

10,0

44,7

5

t0420

4153700

3983951,2

23992941,4

00,0

41,3

03994927,9

70,0

414,8

53995262,6

20,0

41,2

3

t0421

4290810

4057701,3

14063473,8

10,0

51,3

24067747,2

70,0

531,4

64068107,0

90,0

51,3

7

t1716

168451

121648,8

7121693,2

90,2

823,6

7121706,7

60,2

839,0

8121924,5

70,2

824,4

2

t1717

190995

134531,0

2134663,2

90,2

941,8

7134671,4

50,2

961,2

5135058,3

00,2

935,2

3

t1718

166999

126334,4

7126369,3

60,2

423,5

9126386,1

10,2

440,6

2126514,3

40,2

428,5

7

t1719

195013

138708,8

7138843,5

40,2

929,7

0138867,9

10,2

947,6

5139049,8

80,2

922,9

9

t1720

179283

126333,2

0126433,9

80,2

932,7

3126465,6

10,2

954,5

0126728,9

10,2

925,3

9

t1721

134396

103748,4

6103802,8

40,2

39,0

2103823,7

70,2

317,3

8103935,4

40,2

36,2

7

t1722

120962

98815,4

199051,4

50,1

812,2

199110,3

10,1

823,6

399393,5

00,1

810,6

6

v0415

2429420

2423977,0

02428104,6

90,0

00,4

52428203,9

40,0

078,6

22428409,7

50,0

00,3

9

v0416

2725750

2715490,6

72722625,6

70,0

01,4

32722770,4

70,0

013,7

62723290,0

80,0

01,5

2

v0417

2611520

2603308,5

02608628,6

30,0

0238,2

42609223,5

00,0

0245,3

32609223,5

00,0

0241,3

7

v0418

2845420

2836836,6

72844624,5

00,0

00,2

82844788,5

00,0

00,3

82844788,5

00,0

00,2

4

v0419

2590330

2582994,0

02589895,0

00,0

05,7

12589920,5

00,0

06,1

72590142,0

00,0

05,6

3

v0420

1696890

1688793,3

31695916,3

30,0

00,1

41695990,2

60,0

029,9

21696155,9

30,0

00,1

1

v0421

1853950

1848949,0

01853224,0

00,0

00,0

31853308,5

00,0

00,0

41853308,5

00,0

00,0

2

v1616

1006460

1002954,6

21005550,7

10,0

014,3

01005539,8

60,0

0198,6

41005983,4

50,0

0300,0

0

v1617

1102590

1098263,2

31100881,0

30,0

028,1

21100902,2

70,0

0297,5

71101944,7

10,0

027,8

9

v1618

1153870

1147777,6

71151153,2

20,0

089,2

11150848,4

80,0

0300,0

01152194,1

80,0

0300,0

0

v1619

1156370

1150943,2

91154759,5

30,0

024,4

51154150,7

70,0

0300,0

01155526,5

30,0

032,8

6

v1620

1140600

1136666,5

21139417,7

70,0

027,4

91139512,0

40,0

0135,4

81140046,6

00,0

078,4

6

Informacoes Sobre as Instancias Utilizadas e seus Grafos de Conflitos 57T

ab

ela

A.6

:M

elhor

iados

lim

ites

duai

spar

ain

stan

cias

do

Tel

ebus.

(con

t.)

Inst

an

cia

MS

CL

Pcgl

np

sep

lnp

sep

LB

Gap

Tem

po

LB

Gap

Tem

po

LB

Gap

Tem

po

v1621

825594

822339,4

2825368,4

90,0

01,5

4825418,8

60,0

017,5

0825461,4

70,0

01,4

5

v1622

793445

790076,5

0792131,7

90,0

00,6

8792237,4

30,0

060,0

2792615,6

70,0

00,6

1