Aula 17: Planos de Corte
Otimização Linear e Inteira
Túlio A. M. Toffolo
Previously...
Branch-and-bound em programação inteira Desigualdades válidas
Cortes combinatórios Exercícios
Aula de Hoje
1 Caixeiro Viajante
2 Cortes Baseados em Arredondamento
Caixeiro Viajante - Traveling Salesman Problem
Um vendedor precisa visitar
n
cidades, exatamente uma vez e então retornar ao seu ponto de partida.A distância (ou o tempo esperado de locomoção) entre uma cidade
i
e outra cidadej
é dada pordij
. Deve-se encontrar uma ordenação das cidades que permita a conclusão da viagem no menor tempo possível.Caixeiro Viajante - Formulação
Variáveis
x
ij=
(
1
se a aresta (i, j) fará parte da rota
0
caso contrário
Restrições: chega 1 vez na cidade
X
i=1,...,n:i6=j
x
ij= 1
∀j = 1, . . . , n
Restrições: sai 1 vez da cidade
X
Caixeiro Viajante - Formulação
Variáveis
xij= (
1 se a aresta (i, j) fará parte da rota 0 caso contrário
Restrições de Miller-Tucker-Zemlin (MTZ)
Sejam variáveis auxiliaresui≥ 0 (i = 1, ...n): u1= 1
Alternativas para remover Sub-Rotas
Restrições Cut-setX
i∈SX
j /∈Sx
ij≥ 1
∀S ⊂ N, S 6= ∅
ouRestrições de Eliminação de Sub-Rotas
X
i∈S
X
j∈S
Alternativas para remover Sub-Rotas
As restrições de eliminação de sub-rotas apresentadas no último slide podem ser incluídas por demanda:
Existe um número exponencial de restrições e, portanto, é inviável inserir todas as restrições.
Alternativa: resolvemos o problema (violando sub-rotas) e inserimos apenas as restrições que estão sendo violadas.
Aula de Hoje
1 Caixeiro Viajante
2 Cortes Baseados em Arredondamento
Introdução
Considere o Programa Inteiro a seguir:
Maximize: k
X
j=1c
jx
j Sujeito a: kX
j=1a
ijx
j≤ b
i∀i = 1, 2, . . . , m
(1)x
j≥ 0
∀j = 1, 2, . . . , k
(2)xj
∈ Z
∀j = 1, 2, . . . , k
(3)Cortes Baseados em Arredondamento
Cortes de Gomory Mixed Integer Rounding Chvátal-Gomory
Exemplo de corte
Considere a restrição:
2x
1+ 4x
2≤ 17
(satisfeita porx
1= 1, 7
ex
2= 3, 4
). Vamos gerar outra restrição dividindo a primeira por 2:x
1+ 2x
2≤ 8, 5
Note que do lado esquerdo temos apenas coeficientes inteiros e o valor das variáveis também deve ser inteiro. Portanto:
x
1+ 2x
2≤ 8
A restrição acima denomina-seDesigualdade VálidaouCorte. Note que um corte não invalida nenhuma solução inteira válida.
Cortando
1 2 3 4 Solução Inicial:
x
1= 1, 67
x2
= 3, 4
z = 27, 11
Com o corte:x
1= 1, 8
x
2= 3, 1
z = 26, 4
Cortando
1 2 3 4 Solução Inicial:
x
1= 1, 67
x
2= 3, 4
z = 27, 11
Com o corte:x1
= 1, 8
x2
= 3, 1
z = 26, 4
Cortes de Chvátal-Gomory
kX
j=1a
ijx
j≤ b
i∀i = 1, 2, . . . , m
(1) temos que: mX
i=1ui
kX
j=1aij
xj
≤
mX
i=1uibi
(2)Desse modo, todas as soluções que satisfazem (1) exj ≥ 0também satisfazem: k
X
j=1$
mX
i=1u
ia
ij%
x
j≤
mX
i=1u
ib
i (3)Cortes de Chvátal-Gomory
Tendo: kX
j=1$
mX
i=1uiaij
%
xj
≤
mX
i=1ui
bi
(1)e considerando que
xj
∈ Z
obtemos o corte de Chvátal-Gomory : kX
j=1$
mX
i=1uiaij
%
xj
≤
$
mX
i=1ui
bi
%
(2)Exemplo 1
Maximize:2x1
+ x2
Sujeito a:7x
1+ x
2≤ 28
−x
1+ 3x
2≤ 7
−8x
1− 9x
2≤ −32
x
1, x
2≥ 0
x
1, x
2∈ Z
1 2 3 4 x2
Exemplo 1
Restrições:
7x1+ x2≤ 28
−x1+ 3x2≤ 7
−8x1− 9x2≤ −32
Quais valores deu1...u3nos
oferecem um corte em: k X j=1 $m X i=1 uiaij % xj≤ $m X i=1 uibi % u1= 0, u2=1 3, u3= 1 3 −3x1− 2x2 ≤ −9 u1=211, u2= 227, u3 = 0 x2≤ 3
1 2 3 4 1 2 3 4 x1 x2
Exemplo 1
Restrições:
7x1+ x2≤ 28
−x1+ 3x2≤ 7
−8x1− 9x2≤ −32
Quais valores deu1...u3nos
oferecem um corte em: k X j=1 $m X i=1 uiaij % xj≤ $m X i=1 uibi % u1= 0, u2=13, u3=13 −3x1− 2x2 ≤ −9 u1=211, u2= 227, u3 = 0
1 2 3 4 1 2 3 4 x x2
Exemplo 1
Restrições:
7x1+ x2≤ 28
−x1+ 3x2≤ 7
−8x1− 9x2≤ −32
Quais valores deu1...u3nos
oferecem um corte em: k X j=1 $m X i=1 uiaij % xj≤ $m X i=1 uibi % u1= 0, u2=13, u3=13 −3x1− 2x2 ≤ −9 u1=211, u2= 227, u3 = 0 x2≤ 3
1 2 3 4 1 2 3 4 x1 x2
Exemplo 2
Seja o modelo de Programação Inteira
P
a seguir:min
X
j∈Jcjxj
s.t.
X
j∈Jaij
xj
≤ b
i∀i ∈ I
xj
∈ Z
+∀j ∈ J
Limites inferiores fortes para
P
podem ser obtidos pela inclusão de restrições de Chvàtal-Gomory na relaxação linear deP
:Exemplo 2
Considere as seguintes desigualdades:
i
1: 2x
1+ 5x
2+ 3x
3≤ 3
i2
: x1
+ x4
≤ 1
i3
: 3x1
− 2x
2≤ 2
Sejau = {0.25; 0.15; 0.5}
Desta forma, temos:
2.15x
1+ 0.25x
2+ 0.75x
3+ 0.15x
4≤ 1.9
αx
1= 2
αx
2= 0
α
x3= 0
αx
4= 0
Como encontrar cortes de Chvàtal-Gomory?
Fischetti e Lodi (2007) propuseram o MIP a seguir,S:max : n X j=1 αjx∗j − α0 s.t. fj= uTAj− αj ∀j ∈ J∗ f0= uTb − α0 αj∈ Z+ ∀j ∈ J∗∪ {0} 0 ≤ fj ≤ 1 − ∀j ∈ J∗ 0 ≤ ui ≤ 1 − ∀i ∈ I
Exercícios
Considerando as restrições anteriores:
7x1
+ x2
≤ 28
−x
1+ 3x
2≤ 7
−8x
1− 9x
2≤ −32
1 Encontre valores de
u1, u2, u3
que resultam no plano de corte:−x
1− x
2≤ −4
2 Encontre, se existirem, valores de
u1
, u2, u3
que resultam nadesigualdade:
−x
1≤ −2
Aula de Hoje
1 Caixeiro Viajante
2 Cortes Baseados em Arredondamento
Cortes de Gomory
x1 x2 x3 x4 rhs
z : 0 0 1, 25 0, 75 5, 25 r1: 0 1 2, 25 −0, 25 2, 25
r2: 1 0 −1, 25 0, 25 3, 75
Um corte pode ser gerado a partir de uma solução fracionária no tableau (exemplo acima).
Seja a segunda restrição (
r2
):x1
− 1, 25s
1+ 0, 25s2
= 3, 75
Podemos utilizá-la para gerar cortes de Gomory!Cortes de Gomory
x1 x2 x3 x4 rhs
z : 0 0 1, 25 0, 75 5, 25 r1: 0 1 2, 25 −0, 25 2, 25
r2: 1 0 −1, 25 0, 25 3, 75
Como as variáveis são inteiras (lembre-se do arredondamento):