aula 15: desigualdades válidas - otimização linear e inteira · planos de corte de gomory...
TRANSCRIPT
Aula 15: Desigualdades VálidasOtimização Linear e Inteira
Túlio A. M. Toffolohttp://www.toffolo.com.br
BCC464/PCC174 –2018/2Departamento de Computação –UFOP
Previously...
Branch-and-bound
Exercícios
Hoje:
Branch-and-bound em Programação Inteira
Desigualdades Válidas
Cortes Combinatórios
Exercícios
2 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Aula de Hoje
1 Branch-and-Bound em Programação Inteira
2 Desigualdades Válidas
3 Cortes Combinatórios
4 Exercícios
3 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Aula de Hoje
1 Branch-and-Bound em Programação Inteira
2 Desigualdades Válidas
3 Cortes Combinatórios
4 Exercícios
3 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Branch-and-bound: Problema da Mochila
5 :X, -1/4,113=1
10,75/95 :×z=1
X. = 1 Xy =O
5 :×
, -1,113=45 5×3=1, 114=1/2
six'=' 1×4=1 10,6/10 10,5 / 9si×3= '
3=1×3=0 ×4=1
×y=O
X 5 :X} -45,114=1 §
: xa.it/3,Xz=1inviavel yosinfueeiarjo 10,2/7si×a=1
10,33/9 si×3= '
5:X, --X4=1 13=1 113=0
×2=1* poda ×2=O
por limit
inviavel7 sinfueeirjo 9,4/4 g sdueao
inteira
5 :X4=1 5 :Xa=1, .×s= 5 :×z=1
S :Xa=1
item vi wi di1 7 4 1,752 4 3 1,333 9 5 1,804 3 2 1,50
4 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Branch-and-Bound
max. z = 5x1 + 4x2
s.a. x1 + x2 ≤ 510x1 + 6x2 ≤ 45x1, x2 ≥ 0
1
2
3
4
5
1 2 3 4 5
x2
x1
x1 ≤ 3 OU x1 ≥ 4
5 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Branch-and-Bound
max. z = 5x1 + 4x2
s.a. x1 + x2 ≤ 510x1 + 6x2 ≤ 45x1, x2 ≥ 0
1
2
3
4
5
1 2 3 4 5
x2
x1
x1 ≤ 3 OU x1 ≥ 4
5 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Branch-and-Bound em Programação Inteira
Notação utilizada:
P0 : problema original
L : lista de subproblemas: problemas criados a partir de P0 com limitesinteiros para variáveis
P̄ : relaxação linear de um problema P , ou seja o problema P sem asrestrições de integralidade
z∗ : custo da melhor solução inteira encontrada até o momento
z̃ : limite dual (limite inferior no caso de minimização): obtido, porexemplo, pela resolução de P̄
x̃ : vetor de solução da última resolução de P̄
6 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Inicialização:L← P0, z∗ ←∞
Seleção de sub-problema:se L = ∅ então fimsenão selecione um problema P ∈ L e faça L← L\{P}
Relaxação linear:z̃ ← custo ótimo de P̄se problema P̄ é inviável ou z̃ ≥ z∗ então
vá para seleção de sub-problema
Teste de integralidade:se solução ótima de P̄ não tem variáveis com valores fracionários então
se z̃ < z∗ então z∗ ← z̃vá para seleção de sub-problema
Ramificação:xj ← uma variável inteira com valor fracionário na solução ótima de P̄P ′ ← problema P com uma restrição adicional: xj ≤ bx̃jcP ′′ ← problema P com uma restrição adicional: xj ≥ dx̃jeL← L ∪ {P ′, P ′′}vá para seleção de sub-problema
7 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Aula de Hoje
1 Branch-and-Bound em Programação Inteira
2 Desigualdades Válidas
3 Cortes Combinatórios
4 Exercícios
8 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
A Formulação IdealMaximize:
6x1 + 5x2
Sujeito a:15x1 + 7x2 ≤ 492x1 + 4x2 ≤ 17
x1, x2 ∈ Z+
Substituir por ...2x1 + 2x2 ≤ 8
6x1 + 3x2 ≤ 18x1, x2 ∈ R+
Formulação ideal
envoltória convexados pontos inteirosválidos
1
2
3
4
1 2 3 4
9 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
A Formulação Ideal
Maximize:6x1 + 5x2
Sujeito a:2x1 + 2x2 ≤ 86x1 + 3x2 ≤ 18x1, x2 ∈ R+
Formulação ideal
envoltória convexados pontos inteirosválidos
1
2
3
4
1 2 3 4
9 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
A Formulação Ideal
Maximize:6x1 + 5x2
Sujeito a:2x1 + 2x2 ≤ 86x1 + 3x2 ≤ 18x1, x2 ∈ R+
Formulação ideal
envoltória convexados pontos inteirosválidos
1
2
3
4
1 2 3 4
9 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Planos de Corte
Maximize:6x1 + 5x2
Sujeito a:15x1 + 7x2 ≤ 492x1 + 4x2 ≤ 17x1, x2 ∈ Z+
1
2
3
4
1 2 3 4
Como colocar uma restrição adicional que invalide a solução fracionáriacorrente (sem cortar soluções inteiras válidas)?
10 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Exemplo de corte
Considere a restrição:2x1 + 4x2 ≤ 17 (satisfeita por x1 = 1, 7 e x2 = 3, 4).
Vamos gerar outra restrição dividindo a primeira por 2:x1 + 2x2 ≤ 8, 5
Note que do lado esquerdo temos apenas coeficientes inteiros e o valordas variáveis também deve ser inteiro. Portanto:x1 + 2x2 ≤ 8
A restrição acima denomina-se Desigualdade Válida ou Corte.Note que um corte não invalida nenhuma solução inteira válida.
11 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Cortando
1
2
3
4
1 2 3 4
Solução Inicial:x1 = 1, 67x2 = 3, 4z = 27, 11
Com o corte:x1 = 1, 8x2 = 3, 1z = 26, 4
12 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Cortando
1
2
3
4
1 2 3 4
Solução Inicial:x1 = 1, 67x2 = 3, 4z = 27, 11
Com o corte:x1 = 1, 8x2 = 3, 1z = 26, 4
12 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Planos de Corte
Inserção de Cortes
Formulação resultante mais forte (mais próxima da formulação ideal).
Limite dual possivelmente melhor: aproximando-se do ótimo doprograma inteiro.
Problema de Separação
O problema de encontrar uma desigualdade válida não satisfeita pelasolução fracionária é chamado de Problema de Separação.
13 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Planos de Corte de Gomory
Pergunta:
No caso de se obter uma soluçãofracionária, sempre pode-seencontrar um corte que ainvalide?
Gomory, R.E. Outline of an algorithmfor integer solutions to linearprograms. Bull. Amer. Math. Soc.,64(5), pp. 275-278, 1958.
14 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Aula de Hoje
1 Branch-and-Bound em Programação Inteira
2 Desigualdades Válidas
3 Cortes Combinatórios
4 Exercícios
15 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Cortes da Mochila
Considere que variáveis binárias xj aparecem numa restrição do tipo:∑j∈N
ajxj ≤ b (aj ≥ 0 para todo j ∈ N)
Um Conjunto C ⊆ N é uma Cobertura (Cover) se:∑j∈C
ajxj > b
O que define o seguinte Corte de Cover :∑j∈C
xj ≤ |C| − 1
16 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Cortes de Cover
Exemplo
Considere a seguinte restrição sobre as variáveis binárias xj :
11x1 + 6x2 + 6x3 + 5x4 + 5x5 + 4x6 + x7 ≤ 19
Alguns cortes de cover:
x1 + x2 + x3 ≤ 2
x1 + x2 + x6 ≤ 2
x1 + x5 + x6 ≤ 2
x3 + x4 + x5 + x6 ≤ 3
Os cortes acima são cortes de cover minimais, no sentido que qualquer variávelretirada da restrição descaracteriza a cobertura.
17 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Cortes de Cover : separação
Considere a solução fracionária x∗.
Desigualdades violadas de Cover podem ser geradas resolvendo-se oproblema DP:
DP =
σ(x∗) = min
∑j∈N
(1− x∗j )zj
s.a.∑j∈N
ajzj > b
zj ∈ {0, 1} ∀j ∈ N
Uma desigualdade válida violada de cover é descoberta quando tem-sez∗ com σ(x∗) < 1.
18 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Empacotamento de Nós
Cliques
x1 + x2 + x3 + x4 + x5 ≤ 1
x1
x2 x3
x4 x5
19 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Empacotamento de Nós
Ciclo Ímpar
x1 + x2 + x3 + x4 + x5 ≤ 2
x1
x2x5
x4 x3
20 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Empacotamento de Nós
Roda
2x6+x1+x2+x3+x4+x5 ≤ 2
x1
x2x5
x4 x3
x6
21 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Aula de Hoje
1 Branch-and-Bound em Programação Inteira
2 Desigualdades Válidas
3 Cortes Combinatórios
4 Exercícios
22 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
Exercícios1 Considerando o problema da mochila da última aula, encontre um
corte válido. Dados: C = 6
item vi wi di1 7 4 1,752 4 3 1,333 9 5 1,804 3 2 1,50
2 Implemente este corte, adaptando o código da última aula.3 Implemente código para gerar este tipo de corte automaticamente
(resolvendo o problema de separação via programação inteira).
23 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 15: Desigualdades Válidas
/ 12
Perguntas?