Aula 12: Programação Inteira - Otimização Linear e Inteira · 2018. 9. 25. · A Formulação...
Transcript of Aula 12: Programação Inteira - Otimização Linear e Inteira · 2018. 9. 25. · A Formulação...
Aula 12: Programação InteiraOtimização Linear e Inteira
Túlio A. M. Toffolohttp://www.toffolo.com.br
BCC464/PCC174 –2018/2Departamento de Computação –UFOP
Aula de Hoje
1 Programação Inteira: A Formulação Ideal
2 Modelagem em Programação InteiraCaixeiro ViajanteCobertura de Conjuntos
3 Exercícios
2 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Aula de Hoje
1 Programação Inteira: A Formulação Ideal
2 Modelagem em Programação InteiraCaixeiro ViajanteCobertura de Conjuntos
3 Exercícios
2 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Conceito
Relaxação
Uma formulaçãoR = {min fR(x) : x ∈ XR} é considerada umarelaxação de uma formulaçãoM = {min f(x) : x ∈ X} se:1 todas as soluções deM são também soluções deR, ou seja,X ⊆ XR,
2 e toda solução x ∈ X tem custo emR menor ou igual ao custo emM, ou seja, fR(x) ≤ f(x) para todo x ∈ X
Exemplo: relaxação linear
3 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Exemplo
Maximize z = 6x1 + 5x2
Sujeito a 15x1 + 7x2 ≤ 49
2x1 + 4x2 ≤ 17
x1, x2 ∈ Z+
4 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Exemplo
Maximize:6x1 + 5x2
Sujeito a:15x1 + 7x2 ≤ 492x1 + 4x2 ≤ 17x1, x2 ∈ Z+
Não é ponto inteiro!
1
2
3
4
1 2 3 4
5 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Exemplo
Maximize:6x1 + 5x2
Sujeito a:15x1 + 7x2 ≤ 492x1 + 4x2 ≤ 17x1, x2 ∈ Z+
z = 27, 11 emx1 = 1, 7 e x2 = 3, 4
Não é ponto inteiro!
Ótimo inteiro: z = 22emx1 = 2 e x2 = 2
1
2
3
4
1 2 3 4
5 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
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
6 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
A Formulação Ideal
TeoremaQuando o poliedro definido pelas restrições define a envoltória convexadas soluções inteiras válidas, o Programa Inteiro pode ser resolvidocomo um Programa Linear, ou seja, as restrições de integralidadepodem ser ignoradas e a solução ótima fornecida para esse problemarelaxado ainda assim será uma solução inteira.
No entanto... Obter tal poliedro não é trivial. :(
7 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Qual formulação escolher?TEACHING INTEGER PROGRAMMING USING THE TSP 117
Fig. 1 Two formulations of the same set.
problem cannot be solved to optimality within the available time, a strong formulationprovides a good bound on the optimal value of the problem. Hence it can also serveas a counterpoint to an effective heuristic, by proving that a solution provided by thelatter is close enough to being optimal.
1.2. Exercises to Compare Formulations in Practice. A classroom lecture oncomparing weak and strong formulations is best accompanied by an assignment askingstudents to do a computational comparison. Such a comparison can simply consistof feeding a strong and a weak formulation of the same problem to an IP solver andcomparing the number of branch-and-bound nodes and times required to solve themto optimality. A problem is well suited for the purpose of a comparison if
(1) it is relevant in practice, interesting, and easy to understand;(2) the advantages of the strong formulation are not immediately apparent, for
some of the following reasons:• the strong formulation uses many more variables and/or constraints;• the weak one can accommodate more versatile objective functions;
(3) the weak and strong formulations are easy to generate.Several such problems are (see, e.g., [9])
• facility location problems (with their weak, i.e., the aggregated, and thestrong, i.e., the disaggregated formulation);• knapsack problems (their usual formulation can easily be strengthened bycover inequalities);• lot-sizing problems (their usual formulation can be strengthened by variousinequalities).
For many problems, however, the advances in IP software disguise the advantage ofproviding a stronger formulation to solvers. Most IP solvers now incorporate auto-matic reformulation techniques that can substantially strengthen a weak formulation.Such techniques include disaggregation (i.e., replacing the constraint
∑mi=1 xi ≤ my
on the 0–1 variables xi and y with the inequalities xi ≤ y (i = 1, . . . ,m)), generatingmany of the inequalities that one would add to the knapsack, and lot-sizing problems(e.g., covers, and flow-covers). Hence, in the case of the models listed above,
• frequently there is no significant difference in the solution times, when feedinga weak or a strong formulation to the solver;
Dow
nloa
ded
04/2
4/18
to 2
00.2
39.1
29.1
94. R
edis
trib
utio
n su
bjec
t to
SIA
M li
cens
e or
cop
yrig
ht; s
ee h
ttp://
ww
w.s
iam
.org
/jour
nals
/ojs
a.ph
p
8 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Como resolver problemas de Programação Inteira (PI)?
Solvers de PI incluem:
Branch-and-bound
Algoritmos de plano de corte
Heurísticas
etc.
9 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Aula de Hoje
1 Programação Inteira: A Formulação Ideal
2 Modelagem em Programação InteiraCaixeiro ViajanteCobertura de Conjuntos
3 Exercícios
10 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
O Caixeiro Viajante - Traveling Salesman Problem
Um vendedor precisa visitar n cidades, exatamente uma vez e entãoretornar ao seu ponto de partida.
A distância (ou o tempo esperado de locomoção) entre uma cidade i eoutra cidade j é dada por dij . Deve-se encontrar uma ordenação dascidades que permita a conclusão da viagem no menor tempo possível.
11 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Caixeiro Viajante - Exemplo
f
c g
e
a j m
n
p
qk
o
l
h
id
b
r
Solução viável: um circuito Hamiltoniano no Grafo.
12 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Caixeiro Viajante - Exemplo
f
c g
e
a j m
n
p
qk
o
l
h
id
b
r
Solução viável: um circuito Hamiltoniano no Grafo.
12 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Caixeiro Viajante - Formulação
Variáveis
xij =
{1 se a aresta (i, j) fará parte da rota0 caso contrário
Restrições: chega 1 vez na cidade∑
i=1,...,n:i 6=j
xij = 1 ∀j = 1, . . . , n
Restrições: sai 1 vez da cidade∑
j=1,...,n:j 6=i
xij = 1 ∀i = 1, . . . , n
13 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Sub-rotas
f
c g
e
a j m
n
p
qk
o
l
h
id
b
r
14 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Removendo Sub-Rotas
Restrições Cut-set∑
i∈S
∑
j /∈S
xij ≥ 1 ∀S ⊂ N,S 6= ∅
ou
Restrições de Eliminação de Sub-Rotas∑
i∈S
∑
j∈Sxij ≤ |S| − 1 ∀S ⊂ N, 2 ≤ |S| ≤ n− 1
15 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Removendo Sub-Rotas (alternativa)
ou
Restrições de Miller-Tucker-Zemlin (MTZ)
Sejam variáveis auxiliares ui ≥ 0 (i = 1, ...n):
u1 = 1
ui − uj + nxi,j ≤ n− 1 ∀i, j ∈ {2, ..., n}, i 6= j
PS: há livros dedicados inteiramente ao TSP; exemplos:
Applegate, D., R. Bixby, V. Chvátal, and W. Cook (2006). TheTraveling Salesman Problem. A computational study, PrincetonUniversity
Lawer, E., J.K. Lenstra, A. Rinnooy Kan, and D. Shmoys (editors)(1985). The Traveling Salesman Problem, Wiley, New York.
16 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Cobertura de Conjuntos - Exemplo
Construção de Escolas:
O governo decidiu construir escolas de modo a satisfazer a demanda emuma determinada cidade que está nos primeiros estágios de seuplanejamento.
Ainda não se sabe quantas escolas serão necessárias. Mas se sabe quea lei exige que nenhum bairro deve estar há mais de 10 km de algumaescola.
Em quais bairros devem ser construídas escolas de modo a respeitar asexigências da lei, sem desperdiçar dinheiro público (não construir escolasmuito próximas)?
17 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Cobertura de Conjuntos - Exemplo
f
c g
e
a j m
n
p
qk
ol
h
id
b
r
(ligações indicam bairros próximos)
Solução factível: construir em {b, d, h, i, k,m, o}
18 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Cobertura de Conjuntos - Set Covering
Dados de Entrada
M : conjunto locais que precisam dos serviços (clientes);
N : conjunto de locais onde se pode construir um provedor deserviços (em nosso exemplo, N = M );
cj : custo de instalação do provedor j ∈ N ;
aij : se o local i pode ser atendido pelo provedor j.
Variáveis
xj =
{1 centro j será instalado0 caso contrário
19 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Cobertura de Conjuntos - Set Covering
Entrada
M clientesN centroscj custo inst.aij atendimento
Variáveisxj instalar centro j
Função Objetivo
Minimizar :∑
j∈Ncjxj
Restrições - Atendimento dos Locais∑
j∈Naijxj ≥ 1 ∀i ∈M
Restrições - Integralidade
xj ∈ {0, 1} ∀i ∈M
20 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Aula de Hoje
1 Programação Inteira: A Formulação Ideal
2 Modelagem em Programação InteiraCaixeiro ViajanteCobertura de Conjuntos
3 Exercícios
21 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Ex. 1: Sudoku
5 3 . . 7 . . . .6 . . 1 9 5 . . .. 9 8 . . . . 6 .8 . . . 6 . . . 34 . . 8 . 3 . . 17 . . . 2 . . . 6. 6 . . . . 2 8 .. . . 4 1 9 . . 5. . . . 8 . . 7 9
Apresente um modelo de Programação Inteira que resolva o Sudoku.
22 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
Ex. 2: Problema das 8-Rainhas
a b c d e f g h
1
2
3
4
5
6
7
8
23 / 23 Túlio Toffolo – Otimização Linear e Inteira – Aula 12: Programação Inteira
/ 12
Perguntas?