Aula 26: Branch-and-Price

Documentos relacionados
Aula 22: Formulações com número exponencial de variáveis

Aula 13: Branch-and-bound

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Aula 19: Lifting e matrizes ideais

Aula 07: Análise de sensibilidade (2)

Aula 17: Planos de Corte

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 41

Aula de Apresentação

Aula 12: Programação Inteira

4 Resolução exata do PAG

Algoritmos Exatos 3.1. Relaxação Lagrangeana

Aula 08: Modelagem Otimização Linear e Inteira Túlio A. M. Toffolo

3 Reformulação de IPs

Aula 10: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Aula 03: Algoritmo Simplex (Parte 2)

BCC204 - Teoria dos Grafos

TP052-PESQUISA OPERACIONAL I Algoritmo Dual Simplex. Prof. Volmir Wilhelm Curitiba, Paraná, Brasil

Resolução do problema do caixeiro viajante assimétrico (e uma variante) através da relaxação Lagrangeana

A malha rodoviária brasileira, apesar dos altos custos e problemas de manutenção

Aula 09: Modelagem / Variáveis inteiras

6 Experimentos realizados

Otimização Combinatória - Parte 4

PCC173 - Otimização em Redes

Programação Linear - Parte 5

Programação Linear Inteira. C. Requejo (UA) Métodos de Investigação Operacional MIO / 30

Resolução de problemas difíceis de programação linear através da relaxação Lagrangeana

Controle Ótimo - Aula 2 (Exemplos 2, 3 e 4)

Parte II. Aplicações em Roteamento de Veículos

Geração de Colunas Aplicada a uma Decomposição do Problema de Programação Quadrática Binária Irrestrita

Métodos Exatos para PI - Parte 1: Branch-and-Bound

Marina Andretta. 10 de outubro de Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis.

PCC173 - Otimização em Redes

QuickTime and atiff (Uncompressed) decompressorare needed to see this picture. Programação Inteira. Métodos Quantitativos 2002/2003.

3 Extensões dos modelos matemáticos

Gabriel Coutinho DCC035 - Pesquisa Operacional Lista 6

Solução de problemas de PL com restrições do tipo >= e =

Método do Lagrangiano aumentado

Investigação Operacional

BCC204 - Teoria dos Grafos

Aula 02: Algoritmo Simplex (Parte 1)

Método Simplex. Marina Andretta ICMC-USP. 19 de outubro de 2016

Como resolver o QFEMUP usando otimização

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016

UM MÉTODO BRANCH-AND-PRICE PARA PROBLEMAS DE LOCALIZAÇÃO DE p-medianas

Branch and Bound - Ramicar e Limitar

Teoremas de dualidade

Branch-and-Bound para problemas de Otimização Combinatória

Problema de Optimização. Metodologias de Apoio à Decisão 1. Slide 1

Fixação de conteúdo teórico

Algoritmo Branch-and-Price para o Problema de Corte de Estoque Não-Guilhotinado

ALGORITMOS EXATOS PARA O PROBLEMA DO CAMINHO MAIS CURTO ROBUSTO E PARA O PROBLEMA DE LOCALIZAÇÃO DE CONCENTRADORES EM ÁRVORE

Optimização de um Plano de Marketing Directo para o Sector da Banca Daniel Barata

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Otimização em Grafos

Alexandre Altoé Pigatti. Modelos e Algoritmos para o Problema de Alocação Generalizada (PAG) e Aplicações DISSERTAÇÃO DE MESTRADO

Programação Linear M É T O D O S : E S T A T Í S T I C A E M A T E M Á T I C A A P L I C A D A S D e 1 1 d e m a r ç o a 2 9 d e a b r i l d e

Modelos e Métodos de Resolução para Problemas de Escalonamento de Projetos

Método geração de colunas e heurísticas para o Problema da Mochila Compartimentada. Resumo

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Aula 20: Matrizes (Parte 2)

Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante

Programação Inteira. Solução com o método Branch-and-Bound

Resolução de PL usando o método Simplex

Alocação de Unidades via Relaxação Lagrangeana

PCC173 - Otimização em Redes

Modelo. Uso de rotas elementares no CVRP UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA DIEGO GALINDO PECIN

Aula 11: Laços e exercícios

Heurística de Programação Matemática para o Problema de Fluxo Multiproduto Binário

Programação Inteira. Algoritmo Branch-and-Bound (ou enumeração implícita)

Programação Linear/Inteira

MAP Métodos Numéricos e Aplicações Escola Politécnica 1 Semestre de 2017 EPREC - Entrega em 27 de julho de 2017

Capítulo 3. O Método Primal Simplex

BCC202 - Estrutura de Dados I

Um método exato de busca para se calcular o multiplicador lagrangeana/surrogate (lagsur) para o Problema Generalizado de Atribuição

O método Simplex Aplicado ao Problema de Transporte (PT).

OTIMIZAÇÃO E DESPACHO ECONÔMICO

Método de restrições ativas para minimização com restrições lineares

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana

Método de restrições ativas para minimização em caixas

XLVI Pesquisa Operacional na Gestão da Segurança Pública

Casamento em GB. Casamento em Grafos. Notas. Teoria dos Grafos - BCC204, Casamento em Grafos. Notas. Descrição

Pesquisa Operacional / Programação Matemática

Carlos Miguel Marques Peixoto Modelos e Algoritmos para o Problema de Minimização de Padrões

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

Programação Inteira Resolução por Branch and Bound

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Aula 01: Introdução Otimização Linear e Inteira Túlio A. M. Toffolo

Método de Newton modificado

DECISÕES SOBRE TRANSPORTES (PARTE III) Mayara Condé Rocha Murça TRA-53 Logística e Transportes

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Marina Andretta. 2 de março de 2016

Humberto José Longo. Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos TESE DE DOUTORADO

Aula de Apresentação. Prof. Túlio Toffolo BCC501 Aula 02 Introdução à Ciência da Computação

Engenharia Industrial

CAPÍTULO IV PROGRAMAÇÃO LINEAR INTEIRA (PLI)

Problema de Designação. Fernando Nogueira Problema de Designação 1

Heurística Shifting Bottleneck

Método Simplex V 1.1, V.Lobo, EN / ISEGI, 2008

Problemas de programação geométrica signomial via otimização DC

Transcrição:

Aula 26: Branch-and-Price Otimização Linear e Inteira Túlio Toffolo http://www.toffolo.com.br BCC464 / PCC174 2018/2 Departamento de Computação UFOP

Aula de Hoje 1 Branch-and-Price Exemplo: Problema da Alocação Generalizada 2 Decomposição de Dantzig-Wolfe e Branch-and-Price Exemplo: Problema da Alocação Generalizada 3 Exemplo adicional: Time Constrained Shortest Path 4 Exercício Prático 1 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Aula de Hoje 1 Branch-and-Price Exemplo: Problema da Alocação Generalizada 2 Decomposição de Dantzig-Wolfe e Branch-and-Price Exemplo: Problema da Alocação Generalizada 3 Exemplo adicional: Time Constrained Shortest Path 4 Exercício Prático 1 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Branch-and-Price Branch-and-Bound com geração de colunas! Mas... qual a diferença? Exemplo da última aula: Problema da Alocação Generalizada (PAG) Lembre-se que temos as colunas ótimas para a relaxação linear... Mas provavelmente será necessário gerar colunas adicionais ao modificar o mestre durante o branching. Como funcionaria o branch-and-bound (no caso, branch-and-price)? 2 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

PAG: Problema Mestre n m max. l i,jy i,j,k λ j,k i=1 j=1 k K j m s.a. y i,j,k λ j,k = 1 i {1,..., n} j=1 k K j λ j,k = 1 j {1,..., m} k K j 0 λ j,k 1 j {1,..., m}, k K j PAG: Pricing (note que j é uma constante em cada pricing) ( n ) min. (l i,j π i)y i µ j s.a. i=1 n r i,jy i c j i=1 y i {0, 1} i {1,..., n} 3 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Branch-and-Price para o PAG E se fizermos branching nas variáveis λ do problema mestre? Como fica o pricing? Ao invés de gerar qualquer coluna com custo reduzido negativo, temos que gerar uma coluna com custo reduzido negativo que não corresponda a nenhuma das variáveis λ fixadas em zero. Esta estratégia traz uma série de dificuldades... Sem falar que pode levar a decisões irrelevantes... Qual seria uma abordagem viável? 4 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Branch-and-Price para o PAG Temos que criar regras de branching que preferencialmente: Não modifiquem o(s) problema(s) de pricing Encontre soluções inteiras (caso existam) em um número finito de passos. Como fazer isso para o PAG? Quais decisões estamos tomando? E se forçarmos/impedirmos que uma tarefa seja executa por uma máquina específica? 5 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Branch-and-Price para o PAG Considerando uma solução fracionária (em que uma tarefa é executada em mais de uma máquina), podemos: Forçar que uma tarefa i seja executada pela máquina j Impedir que uma tarefa i seja executada pela máquina j Como implementar? Para proibir que uma tarefa i seja executada pela máquina j: 1 Todas as colunas k em que y i,j,k = 1 são fixadas em 0 (λ j,k = 0) 2 No problema de pricing da máquina j, adicionar a restrição y i = 0 Para forçar que uma tarefa i seja executada pela máquina j: 1 Todas as colunas k em que y i,j,k = 0 são fixadas em 0 (λ j,k = 0) 2 No problema de pricing da máquina j, adicionar a restrição y i = 1 e nos demais problemas de pricing, forçar y i = 0. 6 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Aula de Hoje 1 Branch-and-Price Exemplo: Problema da Alocação Generalizada 2 Decomposição de Dantzig-Wolfe e Branch-and-Price Exemplo: Problema da Alocação Generalizada 3 Exemplo adicional: Time Constrained Shortest Path 4 Exercício Prático 6 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Decomposição de DW e Branch-and-Price Vamos utilizar novamente o Problema da Alocação Generalizada (PAG) para exemplificar. Considere duas formulações, F e F D : F é a formulação compacta apresentada F D é a formulação resultante após aplicarmos a Decomposição de Dantzig-Wolfe em F A relaxação de F D é resolvida via Geração de Colunas! Fazer branching não é trivial... Mas.. e se utilizarmos as variáveis de F para fazer branching em F D? 7 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Exemplo: Problema da Alocação Generalizada F: Formulação compacta n m max. l i,j x i,j s.a. i=1 j=1 m x i,j = 1 i {1,..., n} j=1 n r i,j x i,j c j j {1,..., m} i=1 x ij {0, 1} i, j 8 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

F D Problema Mestre n m max. l i,jy i,j,k λ j,k i=1 j=1 k K j m s.a. y i,j,k λ j,k = 1 i {1,..., n} j=1 k K j λ j,k = 1 j {1,..., m} k K j 0 λ j,k 1 j {1,..., m}, k K j F D Pricing (note que j é uma constante em cada pricing) ( n ) min. (l i,j π i)y i µ j s.a. i=1 n r i,jy i c j i=1 y i {0, 1} i {1,..., n} 9 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Exemplo: Problema da Alocação Generalizada Se fixarmos a variável x i,j : x i,j = 1 força que a tarefa i seja executada pela máquina j x i,j = 0 impede que a tarefa i seja executada pela máquina j Podemos utilizar esta ideia em nosso branch-and-price: Para proibir que uma tarefa i seja executada pela máquina j: 1 Todas as colunas k em que y i,j,k = 1 são fixadas em 0 (λ j,k = 0) 2 No problema de pricing da máquina j, adicionar a restrição y i = 0 Para forçar que uma tarefa i seja executada pela máquina j: 1 Todas as colunas k em que y i,j,k = 0 são fixadas em 0 (λ j,k = 0) 2 No problema de pricing da máquina j, adicionar a restrição y i = 1; nos demais problema de pricing, adicionar a restrição y i = 0 10 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Exemplo: Problema da Alocação Generalizada Obter o valor de x i,j é trivial: x i,j = k K j y i,j,k λ j,k Mas.. Qual variável escolher para branching? A mais fracionária? A que mais impacta a solução (coeficiente na função objetivo)?...? 11 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Aula de Hoje 1 Branch-and-Price Exemplo: Problema da Alocação Generalizada 2 Decomposição de Dantzig-Wolfe e Branch-and-Price Exemplo: Problema da Alocação Generalizada 3 Exemplo adicional: Time Constrained Shortest Path 4 Exercício Prático 11 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Decomposição de Dantzig-Wolfe Exemplo visto na Aula 23: Time Constrained Shortest Path Example: Taken from the Primer Fonte: Desrosiers and Lübbecke (2005) Column Generation Chapter 1: A Primer in Column Generation Find: Resource constrained shortest path from 1 to 6 http://www.or.rwth-aachen.de/research/publications/primer.pdf Total traversal time must not exceed 14 units (1,10) 2 (1,1) (2,3) 4 (1,7) 1 (1,2) (10,1) 6 (10,3) (5,7) 3 5 (12,3) (2,2) custo tempo 12 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Decomposição de Dantzig-Wolfe Exemplo visto na Aula 23: Time Constrained Shortest Path Example: Taken from the Primer Fonte: Desrosiers and Lübbecke (2005) Column Generation Chapter 1: A Primer in Column Generation Find: Resource constrained shortest path from 1 to 6 http://www.or.rwth-aachen.de/research/publications/primer.pdf Total traversal time must not exceed 14 units (1,10) 2 (1,1) (2,3) 4 (1,7) 1 (1,2) (10,1) 6 (10,3) (5,7) 3 5 (12,3) (2,2) custo tempo Caminho Path 1-3-5-6 mais quick rápido butéexpensive: caro: custo cost 2424, 8time unidades 8 de tempo 12 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Decomposição de Dantzig-Wolfe Exemplo visto na Aula 23: Time Constrained Shortest Path Example: Taken from the Primer Fonte: Desrosiers and Lübbecke (2005) Column Generation Chapter 1: A Primer in Column Generation Find: Resource constrained shortest path from 1 to 6 http://www.or.rwth-aachen.de/research/publications/primer.pdf Total traversal time must not exceed 14 units (1,10) 2 (1,1) (2,3) 4 (1,7) 1 (1,2) (10,1) 6 (10,3) (5,7) 3 5 (12,3) (2,2) custo tempo Caminho Path 1-2-4-6 mais cheap barato but demora: too slow: custo cost 3, 3 time 18 18 unidades de tempo 12 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Decomposição de Dantzig-Wolfe Exemplo visto na Aula 23: Time Constrained Shortest Path Example: Taken from the Primer Fonte: Desrosiers and Lübbecke (2005) Column Generation Chapter 1: A Primer in Column Generation Find: Resource constrained shortest path from 1 to 6 http://www.or.rwth-aachen.de/research/publications/primer.pdf Total traversal time must not exceed 14 units (1,10) 2 (1,1) (2,3) 4 (1,7) 1 (1,2) (10,1) 6 (10,3) (5,7) 3 5 (12,3) (2,2) custo tempo Caminho Path 1-3-2-4-6 ótimo: is optimal: custo 13 cost 13 13, unidades time 13 de tempo 12 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Exemplo: Time Constrained Shortest Path Seja c i,j o custo do arco (i, j), t i,j o tempo para percorrer o arco (i, j) e T = 14 o tempo total disponível para o percurso: min s.a. (i,j) A c i,jx i,j x i,j +1 se i é a origem (i = 1) x i,j = 1 se i é o destino (i = 6) j:(j,i) A 0 caso contrário, t i,jx i,j T j:(i,j) A (i,j) A x i,j {0, 1} (i, j) A v V Vamos decompor o problema explorando o subproblema de caminho mínimo (que é fácil de resolver)! 13 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Exemplo: Time Constrained Shortest Path Podemos utilizar caminhos ao invés de arcos! x i,j = p P x p,i,j λ p (i, j) A λ p = 1 p P λ p 0 p P P é o conjunto de todos os caminhos do nó 1 ao 6 x p,i,j = 1 se o arco (i, j) está no caminho p e 0 caso contrário λ p = 1 é a restrição de convexificação p P 14 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Exemplo: Time Constrained Shortest Path Agora vamos substituir x i,j no problema original: min s.a. c i,jx p,i,jλ p p P (i,j) A p P (i,j) A t i,jx p,i,jλ p T x i,j = p P x p,i,jλ p (i, j) A λ p = 1 p P λ p 0 x i,j Z + p P (i, j) A Relaxando a integralidade, podemos remover o link entre x i,j e x p,i,j. 15 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Exemplo: Time Constrained Shortest Path Problema Mestre min s.a. c i,jx p,i,jλ p p P (i,j) A p P (i,j) A λ p = 1 p P λ p 0 t i,jx p,i,jλ p T (π) (τ) p P Pricing Encontre um caminho p tal que: c p = c i,jx p,i,j t i,jx p,i,jπ τ < 0 (i,j) A (i,j) A 16 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

y 0 + λ 1246 + λ 1356 + λ 13256 + λ 1256 = 1 π 0 yexemplo: 0, λ 1246 Time, Constrained λ 1356, λshortest 13256, Path λ 1256 0 olution z π 0 π 1 c p c p t p Solução ótima do 100.0 exemplo 100.00 visto na 0.00 Aula 23 97.0 1246 3 18 2, λ 1246 = 0.78 24.6 100.00 5.39 32.9 1356 24 8 Fonte: Desrosiers and Lübbecke (2005): 0.6, λ 1356 = 0.4 11.4 40.80 2.10 4.8 13256 15 10 λ 13256 λ= 1256 0.5= 0.8 e λ9.0 13256 30.00 = 0.2 1.50 2.5 1256 5 15 0.2, λ 1256 = 0.8 7.0 35.00 2.00 0 (1,10) 1 (10,3) (1,2) 2 0.2 (1,1) (2,3) (5,7) 0.8 4 3 5 (12,3) (10,1) (1,7) 6 (2,2) = 0.8, x 13 = x 32 = 0.2, x 25 = x 56 = 1 Como fazer branching? 2018 The Basics 41/128 17 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

y 0 + λ 1246 + λ 1356 + λ 13256 + λ 1256 = 1 π 0 yexemplo: 0, λ 1246 Time, Constrained λ 1356, λshortest 13256, Path λ 1256 0 olution z π 0 π 1 Podemos utilizar as variáveis x i,j = c p c p t p 100.0 100.00 0.00 y 97.0 i,j,k λ 1246 3 18 j,k 2, λ 1246 = 0.78 24.6 100.00 5.39 32.9 1356 24 8 k K j 0.6, λ 1356 = 0.4 11.4 40.80 2.10 4.8 13256 15 10 λ 13256 = 0.5 9.0 30.00 1.50 2.5 1256 5 15 0.2, λ x 1,2 0.8, x 1,3 = 0.2, x 2,5 = 1.0, x 3,2 = 0.8, x 5,6 = 1.0 1256 = 0.8 7.0 35.00 2.00 0 (1,10) 1 (10,3) (1,2) 2 0.2 (1,1) (2,3) (5,7) 0.8 4 3 5 (12,3) (10,1) (1,7) 6 (2,2) = 0.8, Se x 13 selecionarmos = x 32 = 0.2, xx 25 = x 56 = 1 1,2 teremos dois branches: x 1,2 = 0 e x 1,2 = 1. 2018 The Basics 41/128 18 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

ranching on Fractional Arcs Exemplo: Time Constrained Shortest Path Branch x 1,2 = 0: O que muda? What 1 Oelse arco (1, can 2) we é removido do? Next do grafo obvious do pricing! is to branch on fractional 2 As variáveis arc variables, λ 1246 e λ 1256 like sãox removidas 12 = 0.8 do mestre. 2 (1,1) (2,3) 4 (1,7) 1 (1,2) (10,1) 6 Branch x 12 = 0 (10,3) (5,7) 3 5 (12,3) (2,2) Problema: pode ser necessário utilizar variáveis artificiais In subproblem: Arc (1, 2) is removed from graph In RMP: Variables λ 1246 and λ 1256 must be eliminated; re-optim 19 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

ranching on Fractional Arcs Exemplo: Time Constrained Shortest Path Branch x 1,2 = 1: O que muda? What 1 Oelse arco (1, can 3) we é removido do? Next do grafo obvious do pricing! is to branch on 2 fractional Variáveis arcontendo variables, o arco like (1, x3) 12 são = removidas 0.8 do mestre. (1,10) 2 (1,1) (2,3) 4 (1,7) 1 (10,1) 6 Branch x 12 = 1 (5,7) 3 5 (12,3) (2,2) Novamente, pode ser necessário utilizar variáveis artificiais In subproblem: Arcs (1, 3) and (3, 2) are removed In RMP: Variables corresponding to paths containing these ar 20 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Aula de Hoje 1 Branch-and-Price Exemplo: Problema da Alocação Generalizada 2 Decomposição de Dantzig-Wolfe e Branch-and-Price Exemplo: Problema da Alocação Generalizada 3 Exemplo adicional: Time Constrained Shortest Path 4 Exercício Prático 20 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Exercício: Aplique a Decomposição de Dantzig-Wolfe no modelo a seguir, de forma que as restrições de alocação formem o(s) problema(s) de pricing. max. s.a. n m i=1 j=1 l i,jx i,j m x i,j = 1 i {1,..., n} j=1 n r i,jx i,j c j j {1,..., m} i=1 x ij {0, 1} i, j 1 Apresente as formulações do problema mestre e do(s) pricing(s). 2 Descreva um algoritmo branch-and-price para resolver o problema considerando a formulação da questão 1. 3 Implemente a geração de colunas para resolver a relaxação linear da formulação proposta. (dica: utilize o código apresentado na última aula) 21 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Solução: Questão 1 Problema mestre: max. s.a. ( n ) m l i,jx i,j,k λ k k K i=1 j=1 ( n ) r i,jx i,j,k λ k c j j {1... m} (π) k K i=1 λ k = 1 (µ) k K Problema de pricing: encontrar uma alocação! Note que cada tarefa é independente no pricing e, portanto, poderíamos criar um pricing para cada tarefa. ( n ) m min. (l i,j r i,jπ j) x i,j µ s.a. i=1 j=1 m x i,j = 1 i {1... n} j=1 x i,j {0, 1} i {1... n}, j {1... m} 22 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

Solução: Questão 2 Podemos utilizar a regra de branching discutida anteriormente para o PAG, baseada nas variáveis originais x i,j. Detectamos uma tarefa i sendo parcialmente executada em uma máquina j, e criamos dois branches: x i,j = 0 impede que a tarefa i seja executada pela máquina j 1 Todas as colunas k em que x i,j,k = 1 são fixadas em 0 (λ k = 0) 2 No problema de pricing, adicionamos a restrição x i,j = 0 x i,j = 1 força que a tarefa i seja executada pela máquina j 1 Todas as colunas k em que x i,j,k = 0 são fixadas em 0 (λ k = 0) 2 No problema de pricing, adicionamos a restrição x i,j = 1 Solução: Questão 3 Código disponível no site da disciplina: http://www.decom.ufop.br/toffolo 23 / 23 Túlio Toffolo Otimização Linear e Inteira Aula 26: Branch-and-Price

/ 12 Perguntas?