Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues,...

41
Aula 25: Decomposiªo de Dantzig-Wolfe Otimizaªo Linear e Inteira Toelio Toffolo http://www.toffolo.com.br BCC464 / PCC174 2019/2 Departamento de Computaªo UFOP

Transcript of Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues,...

Page 1: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Aula 25: Decomposição de Dantzig-WolfeOtimização Linear e Inteira

Túlio Toffolohttp://www.toffolo.com.br

BCC464 / PCC174 – 2019/2Departamento de Computação – UFOP

Page 2: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Aula de Hoje

1 Seminário / Trabalho Prático

2 Geração de Colunas

3 Decomposição de Dantzig-Wolfe

4 Exemplo: Time Constrained Shortest Path

1 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 3: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Aula de Hoje

1 Seminário / Trabalho Prático

2 Geração de Colunas

3 Decomposição de Dantzig-Wolfe

4 Exemplo: Time Constrained Shortest Path

1 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 4: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Seminário / Trabalho Prático

O aluno tem duas opções:1 Elaboração e implementação de modelo(s) matemático(s) para tratar

problema de interesse do aluno.2 Implementação de modelo(s) matemático(s) descritos em um dos

artigos selecionados.

O aluno deve, independentemente da escolha acima:

Fazer uma apresentação oral de até 30 minutos sobre o trabalho.

Entregar um (breve) relatório includindo o código fonte gerado, quedeve ser devidamente documentado.

2 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 5: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Papers selecionados I

1 Archetti, C., Jabali, O., & Speranza, M. G. (2015). Multi-period Vehicle RoutingProblem with Due dates. Computers and Operations Research, 61, 122–134.https://doi.org/10.1016/j.cor.2015.03.014

2 Berghman, L., & Spieksma, F. C. R. (2015). Valid inequalities for a time-indexedformulation. Operations Research Letters, 43(3), 268–272.https://doi.org/10.1016/j.orl.2015.02.011

3 Chen, C. S., Lee, S. M., & Shen, Q. S. (1995). An analytical model for the containerloading problem. European Journal of Operational Research, 80(1), 68–76.https://doi.org/10.1016/0377-2217(94)00002-T

4 de Oliveira, L., de Souza, C. C., & Yunes, T. (2013). Improved Bounds for the TravelingUmpire Problem: A Stronger Formulation and a Relax-and-Fix Heuristic. EuropeanJournal of Operational Research, 1–30. https://doi.org/10.1016/j.ejor.2013.12.019

3 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 6: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Papers selecionados II

5 Hifi, M., Kacem, I., Nègre, S., & Wu, L. (2010). A linear programming approach for thethree-dimensional bin-packing problem. Electronic Notes in Discrete Mathematics,36(C), 993–1000. https://doi.org/10.1016/j.endm.2010.05.126

6 Kinable, J., Wauters, T., & Vanden Berghe, G. (2014). The concrete delivery problem.Computers and Operations Research, 48, 53–68.https://doi.org/10.1016/j.cor.2014.02.008

7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integerlinear programming models for the resource-constrained project scheduling problemwith consumption and production of resources. Flexible Services and ManufacturingJournal, 25(1–2), 25–47. https://doi.org/10.1007/s10696-012-9152-5

8 Lodi, A., Martello, S., & Vigo, D. (2004). Models and bounds for two-dimensional levelpacking problems. Journal of Combinatorial Optimization, 8(3), 363–379.https://doi.org/10.1023/B:JOCO.0000038915.62826.79

4 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 7: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Papers selecionados III

9 Martello, S., & Vigo, D. (1998). Exact solution of the two-dimensional finite bin packingproblem. Management Science, (July 2014). Retrieved fromhttp://pubsonline.informs.org/doi/abs/10.1287/mnsc.44.3.388

10 Passchyn, W., Briskorn, D., & Spieksma, F. C. R. (2014). Mathematical programmingmodels for scheduling locks in sequence. OpenAccess Series in Informatics, 42,92–106. https://doi.org/10.4230/OASIcs.ATMOS.2014.92

11 Smet, P., Brucker, P., De Causmaecker, P., & Vanden Berghe, G. (2016). Polynomiallysolvable personnel rostering problems. European Journal of Operational Research,249(1), 67–75. https://doi.org/10.1016/j.ejor.2015.08.025

12 Verstichel, J., De Causmaecker, P., Spieksma, F. C. R., & Vanden Berghe, G. (2014).Exact and heuristic methods for placing ships in locks. European Journal ofOperational Research, 235(2), 387–398. https://doi.org/10.1016/j.ejor.2013.06.045

5 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 8: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Aula de Hoje

1 Seminário / Trabalho Prático

2 Geração de Colunas

3 Decomposição de Dantzig-Wolfe

4 Exemplo: Time Constrained Shortest Path

5 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 9: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Funcionamento do algoritmo

Problema Mestre

Geração de Colunas(subproblemas)

co

luna

s

6 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 10: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Algoritmo de geração implícita de colunas

1 Resolver o Programa Linear LP (J) (chamado Problema Mestre):

min.∑j∈J

cjxj

s.a. Ax ≥ bx ≥ 0

2 Pricing: considerando o valor das variáveis duais π, descubra seexiste alguma variável j /∈ J com custo reduzido negativo, ou seja,uma variável j /∈ J tal que cj − πAj < 0.

Se existir, insira a nova variável em LP (J) e retorne ao passo 1.

Caso contrário, a solução é ótima para todas as variáveis!

7 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 11: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Entendendo melhor

Variável com custo reduzido negativo (problemas de minimização):

Queremos uma variável que potencialmente melhore a função objetivodo problema mestre.

Utilizamos o shadow price (ou valores das variáveis duais) paracalcular o custo reduzido de uma variável que ainda não conhecemos

8 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 12: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Shadow price

min.∑j∈J

cjxj

s.a.∑j∈J

ai,jxj ≥ bi ∀i ∈ I (πi)

xj ≥ 0 ∀j ∈ J

O shadow price πi de cada restrição i ∈ I indica a variação na funçãoobjetivo ao relaxar o valor de bi em uma unidade.

Aumentar o valor de uma variável xj em uma unidade é equivalente aatualizar todo bi para bi − ai,j .

Assim, a função objetivo vez será alterada em cj −∑i∈I

πiai,j .

9 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 13: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Problema de pricing

Assim, no problema de pricing estamos buscando:

Se o mestre for um problema de minimização:

Uma variável xj tal que cj −∑i∈I

πiai,j < 0

Se o mestre for um problema de maximização:

Uma variável xj tal que cj −∑i∈I

πiai,j > 0

10 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 14: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Aula de Hoje

1 Seminário / Trabalho Prático

2 Geração de Colunas

3 Decomposição de Dantzig-Wolfe

4 Exemplo: Time Constrained Shortest Path

10 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 15: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Um pouco de história

A decomposição de Dantzig-Wolfe foi inventada em 1961.

Método criado por Dantzig e Wolfe.

(Sim, o mesmo George Dantzig que propôs o Simplex em 1940)

O método é tão conectado com geração de colunas que eles muitasvezes são confundidos (sendo idênticos em muitos aspectos).

11 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 16: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Decomposição de Dantzig-Wolfe

Um conjunto convexo X = {x | Ax ≤ b} pode ser representado porseus pontos e raios extremos (teoria de Minkowski-Weyl).

X = {x | x =∑p∈P

λp · x̄p +∑r∈R

δr · x̄r}

onde P e R são os pontos e raios extremos, respectivamente

e∑

p∈P λp = 1, λp ≥ 0, δr ≥ 0

Boa notícia: eu pessoalmente nunca trabalhei com umadecomposição de Dantzig-Wolfe em que raios extremos são utilizados.Na maioria dos casos, consideramos apenas pontos extremos.

12 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 17: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Decomposição de Dantzig-Wolfe

A Decomposição de Dantzig-Wolfe consiste mesmo em reformularum problema, mudando sua forma de representação:

Ao invés de um conjunto de restrições, utilizamos um conjunto depontos extremos para representar (parte) do problema.

Mas... qual a vantagem de fazer isso?

13 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 18: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Estrutura clássica para DW

min cx

s.a. Ax ≥ bDx ≥ dx ∈ Z+

Ao considerar os pontos extremos ao invés das restrições Dx ≥ d,fazemos uma convexificação parcial: conv{x ∈ Zn|Dx ≥ d}

14 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 19: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Estrutura clássica para DW

min cx

s.a. Ax ≥ bDx ≥ dx ∈ Z+

Ao considerar os pontos extremos ao invés das restrições Dx ≥ d,fazemos uma convexificação parcial: conv{x ∈ Zn|Dx ≥ d}

14 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 20: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Decomposição de Dantzig-Wolfe

Geralmente queremos separar o conjunto de restrições “fáceis” doresto das restrições do problema (as restrições “complicadoras”)

As restrições fáceis podem envolver uma pequena porção dasvariáveis do problema

Essas restrições podem apresentar uma estrutura especial, como ade algum problema em grafos para o qual existam algoritmosrápidos de resolução

Assim, pode-se resolver separadamente as restrições fáceis!

15 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 21: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Decomposição de Dantzig-Wolfe

Alguns modelos possuem uma certa estrutura...

min cx

s.a. Ax ≥ bDx ≥ dx ∈ Zn

Em alguns casos, esta estrutura significa: subproblemas fáceis ouconhecidos

Podemos explorar esta estrutura para reformular o problema, obtendogeralmente um modelo mais forte

16 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 22: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Estrutura clássica para DW

min cx

s.a. Ax ≥ bDx ≥ dx ∈ Z+

Em caso de Programas Inteiros, a decomposição de Dantzig-Wolferesulta em uma convexificação parcial: conv{x ∈ Zn|Dx ≥ d}

17 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 23: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Estrutura clássica para DW

min cx

s.a. Ax ≥ bDx ≥ dx ∈ Z+

Em caso de Programas Inteiros, a decomposição de Dantzig-Wolferesulta em uma convexificação parcial: conv{x ∈ Zn|Dx ≥ d}

17 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 24: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Aula de Hoje

1 Seminário / Trabalho Prático

2 Geração de Colunas

3 Decomposição de Dantzig-Wolfe

4 Exemplo: Time Constrained Shortest Path

17 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 25: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Decomposição de Dantzig-Wolfe

Exemplo: Time Constrained Shortest Path

Fonte: Desrosiers and Lübbecke (2005)Column Generation – Chapter 1: A Primer in Column Generationhttp://www.or.rwth-aachen.de/research/publications/primer.pdf

O problema é descrito por um grafo G = (V,A)

A arco (i, j) ∈ A é associado um custo ci,j e uma duração ti,j

Deve-se encontrar o menor caminho entre os vértices v1 e vn

Sujeito a restrições adicionais de capacidade (tempo total da rota)

Problema é NP-difícil-fraco (admite algoritmo pseudopolinomial)

Portanto, uso de Programação Inteira é justificado

18 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 26: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Decomposição de Dantzig-Wolfe

Exemplo: Time Constrained Shortest Path

Fonte: Desrosiers and Lübbecke (2005)Column Generation – Chapter 1: A Primer in Column Generationhttp://www.or.rwth-aachen.de/research/publications/primer.pdf

Example: Taken from the “Primer”

Find: Resource constrained shortest path from 1 to 6Total traversal time must not exceed 14 units

3 5

42

6

(2,3)

(10,1)

(2,2)

(12,3)

(1,7)

(1,1)

(1,2)

(1,10)

(10,3)

1

(5,7)

@mluebbecke · #colgen2018 · The Basics · 27/128

custotempo

Suponha que a rota não pode ultrapassar 14 unidades de tempo

19 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 27: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Decomposição de Dantzig-Wolfe

Exemplo: Time Constrained Shortest Path

Fonte: Desrosiers and Lübbecke (2005)Column Generation – Chapter 1: A Primer in Column Generationhttp://www.or.rwth-aachen.de/research/publications/primer.pdf

Example: Taken from the “Primer”

Find: Resource constrained shortest path from 1 to 6Total traversal time must not exceed 14 units

42

6

(2,3)

(10,1)

(2,2)

(12,3)

(1,7)

(1,1)

(1,2)

(1,10)

(10,3)

1

(5,7)

3 5

Path 1-3-5-6 is quick but expensive: cost 24, time 8

@mluebbecke · #colgen2018 · The Basics · 27/128

custotempo

Caminho mais rápido é caro: custo 24 | 8 unidades de tempo

19 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 28: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Decomposição de Dantzig-Wolfe

Exemplo: Time Constrained Shortest Path

Fonte: Desrosiers and Lübbecke (2005)Column Generation – Chapter 1: A Primer in Column Generationhttp://www.or.rwth-aachen.de/research/publications/primer.pdf

Example: Taken from the “Primer”

Find: Resource constrained shortest path from 1 to 6Total traversal time must not exceed 14 units

42

6

(2,3)

(10,1)

(2,2)

(12,3)

(1,7)

(1,1)

(1,2)

(1,10)

(10,3)

1

(5,7)

3 5

Path 1-2-4-6 is cheap but too slow: cost 3, time 18

@mluebbecke · #colgen2018 · The Basics · 27/128

tempocusto

Caminho mais barato demora: custo 3 | 18 unidades de tempo

19 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 29: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Decomposição de Dantzig-Wolfe

Exemplo: Time Constrained Shortest Path

Fonte: Desrosiers and Lübbecke (2005)Column Generation – Chapter 1: A Primer in Column Generationhttp://www.or.rwth-aachen.de/research/publications/primer.pdf

Example: Taken from the “Primer”

Find: Resource constrained shortest path from 1 to 6Total traversal time must not exceed 14 units

3 5

42

6

(2,3)

(10,1)

(2,2)

(12,3)

(1,7)

(1,1)

(1,2)

(1,10)

(10,3)

1

(5,7)

Path 1-3-2-4-6 is optimal: cost 13, time 13

@mluebbecke · #colgen2018 · The Basics · 27/128

custotempo

Caminho ótimo: custo 13 | 13 unidades de tempo

19 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 30: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Exemplo: Time Constrained Shortest Path

Seja ci,j o custo do arco (i, j), ti,j o tempo para percorrer o arco (i, j)e T = 14 o tempo total disponível para o percurso:

min∑

(i,j)∈A

ci,jxi,j

s.a.∑

j:(i,j)∈A

xi,j −∑

j:(j,i)∈A

xi,j =

+1 se i é a origem (i = 1)

−1 se i é o destino (i = 6)

0 caso contrário,

∀v ∈ V

∑(i,j)∈A

ti,jxi,j ≤ T

xi,j ∈ {0, 1} ∀(i, j) ∈ A

Como decompor o problema?

Exploramos o subproblema de caminho mínimo!

20 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 31: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Exemplo: Time Constrained Shortest Path

Se retirarmos a restrição de capacidade, temos um modelo cuja matrixde coeficientes é TUM (Totalmente Unimodular).

min∑

(i,j)∈A

ci,jxi,j

s.a.∑

j:(i,j)∈A

xi,j −∑

j:(j,i)∈A

xi,j =

+1 se i é a origem (i = 1)

−1 se i é o destino (i = 6)

0 caso contrário,

∀v ∈ V

xi,j ∈ {0, 1} ∀(i, j) ∈ A

É simples verificar esta propriedade!

21 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 32: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Exemplo: Time Constrained Shortest Path

Aprendemos anteriormente que uma matrix A é TUM se:1 A contém apenas valores −1, 0 e +1 tal que haja no máximo dois

valores não-nulos em cada coluna.

e existe uma partição R1 e R2 de suas linhas (R) tais que:1 Cada coluna com dois termos não nulos de mesmo sinal tem uma

entrada em R1 e outra em R2.2 Cada coluna com dois termos não nulos de sinal diferente tem ambas

entradas em R1 ou em R2.

No exemplo, claramente cada coluna tem exatamente 2 termos não nulosde sinais diferente!

Assim, uma partição R1 = R e R2 = ∅ satisfaz as condições.

22 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 33: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Exemplo: Time Constrained Shortest Path

Podemos utilizar caminhos ao invés de arcos!

xi,j =∑p∈P

xp,i,jλp ∀(i, j) ∈ A∑p∈P

λp = 1

λp ≥ 0 ∀p ∈ P

P é o conjunto de todos os caminhos do nó 1 ao 6

xp,i,j = 1 se o arco (i, j) está no caminho p e 0 caso contrário∑p∈P

λp = 1 é chamada de restrição de convexificação

23 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 34: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Exemplo: Time Constrained Shortest Path

Agora vamos substituir xi,j no problema original:

min∑p∈P

∑(i,j)∈A

ci,jxp,i,jλp

s.a.∑p∈P

∑(i,j)∈A

ti,jxp,i,jλp ≤ T

xi,j =∑p∈P

xp,i,jλp ∀(i, j) ∈ A

∑p∈P

λp = 1

λp ≥ 0 ∀p ∈ P

xi,j ∈ Z+ ∀(i, j) ∈ A

Relaxando a integralidade, podemos remover o link entre xi,j e xp,i,j .

24 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 35: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Exemplo: Time Constrained Shortest Path

Após remover o link entre xi,j e xp,i,j , obtemos a formulação a seguir:

min∑p∈P

∑(i,j)∈A

ci,jxp,i,jλp

s.a.∑p∈P

∑(i,j)∈A

ti,jxp,i,jλp ≤ T∑p∈P

λp = 1

λp ≥ 0 ∀p ∈ P

Problema: o número de caminhos é exponencial...

Resolvemos este modelo por meio de geração de colunas.

25 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 36: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Exemplo: Time Constrained Shortest Path

Problema Mestre

min∑p∈P

∑(i,j)∈A

ci,jxp,i,jλp

s.a.∑p∈P

∑(i,j)∈A

ti,jxp,i,jλp ≤ T (π)

∑p∈P

λp = 1 (τ)

λp ≥ 0 ∀p ∈ P

PricingEncontre um caminho p tal que:

c̄p =∑

(i,j)∈A

ci,jxp,i,j −∑

(i,j)∈A

ti,jxp,i,jπ − τ < 0

26 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 37: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Exemplo: Time Constrained Shortest Path

Para encontrar a coluna com menor custo reduzido resolvemos:

Pricing – Problema de Otimização

min c̄ =∑

(i,j)∈A

ci,jxi,j −∑

(i,j)∈A

ti,jxi,jπ − τ

s.a.∑

j:(i,j)∈A

xi,j −∑

j:(j,i)∈A

xi,j =

+1 se i é a origem (i = 1)

−1 se i é o destino (i = 6)

0 caso contrário,

∀v ∈ V

xi,j ∈ {0, 1} ∀(i, j) ∈ A

Se c̄ ≥ 0, não há variáveis que melhorem a solução!

Caso contrário, encontramos uma variável (coluna) que deve seradicionada.

27 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 38: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Exemplo: Time Constrained Shortest Path

Eis o problema de caminho mínimo referente ao Pricing:

Pricing Subproblem

In our case this is a shortest path problem in

5

61

2

3

4

10 − 1π

10 − 3π

1 − 2π

1 − 10π

1 − 1π

1 − 7π1

2 − 2π

12 − 3π

2 − 3π

5 − 7π

This is the original graph with modified costs

@mluebbecke · #colgen2018 · The Basics · 37/128

Note que os custos das arestas incluem o valor dual π.

Neste exemplo, o valor dual da restrição de convexificação (τ ) adicionauma constante na função objetivo.

28 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 39: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Exemplo 1: Time Constrained Shortest Path

Como resolver este exemplo?

Solução inicial

Uma possibilidade: usar variáveis artificiais

Adicionamos uma variável artificial com custo proibitivo.

min. 100y0

s.a. 0 ≤ 14

y0 = 1

y0 ≥ 0

29 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 40: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

Exemplo 1: Resolvendo passo-a-passo

Example cont’d: Solving the LP Relaxation

z̄ = min 100y0

s.t. ≤ 14 πy0 = 1y0 ≥ 0

Master Solution z̄ π c̄� p cp tp

@mluebbecke · #colgen2018 · The Basics · 41/128

τ

Example cont’d: Solving the LP Relaxation

z̄ = min 100y0

s.t. ≤ 14 πy0 = 1y0 ≥ 0

Master Solution z̄ π c̄� p cp tpy0 = 1 100.0 100.00 0.00

@mluebbecke · #colgen2018 · The Basics · 41/128

τ

Example cont’d: Solving the LP Relaxation

z̄ = min 100y0

s.t. ≤ 14 πy0 = 1y0 ≥ 0

Master Solution z̄ π c̄� p cp tpy0 = 1 100.0 100.00 0.00 − 97.0 1246 3 18

@mluebbecke · #colgen2018 · The Basics · 41/128

τ

Example cont’d: Solving the LP Relaxation

z̄ = min 100y0 + 3λ1246

s.t. + 18λ1246 ≤ 14 πy0 + λ1246 = 1y0 , λ1246 ≥ 0

Master Solution z̄ π c̄� p cp tpy0 = 1 100.0 100.00 0.00 − 97.0 1246 3 18

@mluebbecke · #colgen2018 · The Basics · 41/128

τ

Example cont’d: Solving the LP Relaxation

z̄ = min 100y0 + 3λ1246

s.t. + 18λ1246 ≤ 14 πy0 + λ1246 = 1y0 , λ1246 ≥ 0

Master Solution z̄ π c̄� p cp tpy0 = 1 100.0 100.00 0.00 − 97.0 1246 3 18y0 = 0.22,λ1246 = 0.78 24.6 100.00 −5.39

3 5

42

6

(2,3)

(10,1)

(2,2)

(12,3)

(1,7)

(1,1)

(1,2)

(1,10)

(10,3)

1

(5,7)

0.78

@mluebbecke · #colgen2018 · The Basics · 41/128

τ

Example cont’d: Solving the LP Relaxation

z̄ = min 100y0 + 3λ1246 + 24λ1356

s.t. + 18λ1246 + 8λ1356 ≤ 14 πy0 + λ1246 + λ1356 = 1y0 , λ1246 , λ1356 ≥ 0

Master Solution z̄ π c̄� p cp tpy0 = 1 100.0 100.00 0.00 − 97.0 1246 3 18y0 = 0.22,λ1246 = 0.78 24.6 100.00 −5.39 − 32.9 1356 24 8

3 5

42

6

(2,3)

(10,1)

(2,2)

(12,3)

(1,7)

(1,1)

(1,2)

(1,10)

(10,3)

1

(5,7)

0.78

@mluebbecke · #colgen2018 · The Basics · 41/128

τ

Example cont’d: Solving the LP Relaxation

z̄ = min 100y0 + 3λ1246 + 24λ1356

s.t. + 18λ1246 + 8λ1356 ≤ 14 πy0 + λ1246 + λ1356 = 1y0 , λ1246 , λ1356 ≥ 0

Master Solution z̄ π c̄� p cp tpy0 = 1 100.0 100.00 0.00 − 97.0 1246 3 18y0 = 0.22,λ1246 = 0.78 24.6 100.00 −5.39 − 32.9 1356 24 8λ1246 = 0.6,λ1356 = 0.4 11.4 40.80 −2.10

0.4

42

6

(2,3)

(10,1)

(2,2)

(1,7)

(1,1)

(1,2)

(1,10)

(10,3)

1

(5,7)

0.6

3 5(12,3)

@mluebbecke · #colgen2018 · The Basics · 41/128

τ

Example cont’d: Solving the LP Relaxation

z̄ = min 100y0 + 3λ1246 + 24λ1356 + 15λ13256

s.t. + 18λ1246 + 8λ1356 + 10λ13256 ≤ 14 πy0 + λ1246 + λ1356 + λ13256 = 1y0 , λ1246 , λ1356 , λ13256 ≥ 0

Master Solution z̄ π c̄� p cp tpy0 = 1 100.0 100.00 0.00 − 97.0 1246 3 18y0 = 0.22,λ1246 = 0.78 24.6 100.00 −5.39 − 32.9 1356 24 8λ1246 = 0.6,λ1356 = 0.4 11.4 40.80 −2.10 − 4.8 13256 15 10

0.4

42

6

(2,3)

(10,1)

(2,2)

(1,7)

(1,1)

(1,2)

(1,10)

(10,3)

1

(5,7)

0.6

3 5(12,3)

@mluebbecke · #colgen2018 · The Basics · 41/128

Example cont’d: Solving the LP Relaxation

z̄ = min 100y0 + 3λ1246 + 24λ1356 + 15λ13256

s.t. + 18λ1246 + 8λ1356 + 10λ13256 ≤ 14 πy0 + λ1246 + λ1356 + λ13256 = 1y0 , λ1246 , λ1356 , λ13256 ≥ 0

Master Solution z̄ π c̄� p cp tpy0 = 1 100.0 100.00 0.00 − 97.0 1246 3 18y0 = 0.22,λ1246 = 0.78 24.6 100.00 −5.39 − 32.9 1356 24 8λ1246 = 0.6,λ1356 = 0.4 11.4 40.80 −2.10 − 4.8 13256 15 10λ1246 = λ13256 = 0.5 9.0 30.00 −1.50

0.5

42

6

(2,3)

(10,1)

(2,2)

(1,7)

(1,1)

(1,2)

(1,10)

(10,3)

1

(5,7)

0.5

3 5(12,3)

@mluebbecke · #colgen2018 · The Basics · 41/128

τ

Example cont’d: Solving the LP Relaxation

z̄ = min 100y0 + 3λ1246 + 24λ1356 + 15λ13256 + 5λ1256

s.t. + 18λ1246 + 8λ1356 + 10λ13256 + 15λ1256 ≤ 14 πy0 + λ1246 + λ1356 + λ13256 + λ1256 = 1y0 , λ1246 , λ1356 , λ13256 , λ1256 ≥ 0

Master Solution z̄ π c̄� p cp tpy0 = 1 100.0 100.00 0.00 − 97.0 1246 3 18y0 = 0.22,λ1246 = 0.78 24.6 100.00 −5.39 − 32.9 1356 24 8λ1246 = 0.6,λ1356 = 0.4 11.4 40.80 −2.10 − 4.8 13256 15 10λ1246 = λ13256 = 0.5 9.0 30.00 −1.50 − 2.5 1256 5 15

0.5

42

6

(2,3)

(10,1)

(2,2)

(1,7)

(1,1)

(1,2)

(1,10)

(10,3)

1

(5,7)

0.5

3 5(12,3)

@mluebbecke · #colgen2018 · The Basics · 41/128

τ

Example cont’d: Solving the LP Relaxation

z̄ = min 100y0 + 3λ1246 + 24λ1356 + 15λ13256 + 5λ1256

s.t. + 18λ1246 + 8λ1356 + 10λ13256 + 15λ1256 ≤ 14 πy0 + λ1246 + λ1356 + λ13256 + λ1256 = 1y0 , λ1246 , λ1356 , λ13256 , λ1256 ≥ 0

Master Solution z̄ π c̄� p cp tpy0 = 1 100.0 100.00 0.00 − 97.0 1246 3 18y0 = 0.22,λ1246 = 0.78 24.6 100.00 −5.39 − 32.9 1356 24 8λ1246 = 0.6,λ1356 = 0.4 11.4 40.80 −2.10 − 4.8 13256 15 10λ1246 = λ13256 = 0.5 9.0 30.00 −1.50 − 2.5 1256 5 15λ13256 = 0.2,λ1256 = 0.8 7.0 35.00 −2.00 0

0.2

42

6

(2,3)

(10,1)

(1,7)

(1,1)

(1,2)

(1,10)

(10,3)

1

(5,7)

3 5(12,3)

(2,2)

0.8

Arc flows: x12 = 0.8, x13 = x32 = 0.2, x25 = x56 = 1

@mluebbecke · #colgen2018 · The Basics · 41/128

τ

30 / 30 Túlio Toffolo – Otimização Linear e Inteira – Aula 25: Decomposição de Dantzig-Wolfe

Page 41: Aula 25: Decomposição de Dantzig-Wolfe - Otimização Linear ...€¦ · 7 Koné, O., Artigues, C., Lopez, P., & Mongeau, M. (2013). Comparison of mixed integer linear programming

/ 12

Perguntas?