Post on 23-Dec-2018
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
Grafo de Conflitos: Construcao eAplicacoes em Problemas de
Programacao Inteira
Samuel Souza BritoUniversidade Federal de Ouro Preto
Orientador: Haroldo Gambini Santos
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
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
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
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
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
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
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
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
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
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)
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
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.
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