Programacao Linear Inteira
Programacao Linear Inteira
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 1 / 30
Programacao Linear Inteira
Programacao Linear Inteira
Resolucao de problemas de programacao linear nos quais as variaveisapenas tomam valores inteiros ou apenas binarios.
Problema de Programacao Linear Inteira (P.L.I.)
z = min ctx(P) s. a: Ax ≤ b
x ∈ X ⊂ Nn0
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 2 / 30
Minorantes e Majorantes
Minorantes e Majorantes
Dado um programa linear (P) [min /max]x∈X z = cT x podemos obterminorantes z` e majorantes zu para o seu valor otimo z∗:
z` ≤ z∗ ≤ zu.
Como obter minorantes e majorantes?
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 3 / 30
Minorantes e Majorantes
Solucoes admissıveis
o valor de uma solucao admissıvel za constitui um
minorante para um programa linear de maximizacao maxx∈X z = cT x
za ≤ z∗
majorante para um programa linear de minimizacao minx∈X z = cT x
z∗ ≤ za
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 4 / 30
Minorantes e Majorantes
Dualidade
o valor de uma solucao dual admissıvel zd constitui um
majorante para um programa linear de maximizacao maxx∈X z = cT x
z∗ ≤ zd
minorante para um programa linear de minimizacao minx∈X z = cT x
zd ≤ z∗
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 5 / 30
Minorantes e Majorantes
Relaxacao
Substituir um problema por um outro mais simples (facil de resolver) demodo a obter uma aproximacao para o valor optimo do problema.Dado um problema P, obtemos uma relaxacao de P:
(i) aumentando o conjunto das solucoes admissıveis (optimizamos sobreum conjunto maior) e/ou
(ii) substituindo uma funcao objectivo de max. (min) por uma outrafuncao que tem um valor igual ou superior (inferior) em toda asolucao admissıvel.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 6 / 30
Minorantes e Majorantes
Relaxacao
o valor otimo zr de uma relaxacao constitui um
majorante para um programa linear de maximizacao maxx∈X z = cT x
z∗ ≤ zr
minorante para um programa linear de minimizacao minx∈X z = cT x
zr ≤ z∗
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 7 / 30
Minorantes e Majorantes
Relaxacao
Teorema:
Se o problema relaxado (PR) nao tem solucoes admissıveis (e impossıvel),entao o problema original (P) tambem nao tem qualquer solucaoadmissıvel
Teorema:
Se a solucao optima do problema relaxado (PR) e admissıvel para oproblema original (P), entao essa solucao tambem e optima para oproblema original (P)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 8 / 30
Minorantes e Majorantes
Relaxacao
Relaxacoes:
(i) Relaxacao Linear
(ii) Relaxacao Lagrangeana
(iii) Relaxacoes Combinatorias
...
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 9 / 30
Relaxacao Linear
Relaxacao linear
consideremos o seguinte problema de Programacao Linear Inteira (P.L.I.)
z = min ctx(P) s. a: Ax ≤ b
x ∈ X ⊂ Nn
chama-se relaxacao linear deste problema (P) a
zL = min ctx(PL) s. a: Ax ≤ b
x ≥ 0, x ∈ Rn
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 10 / 30
Relaxacao Linear
Quando e que a resolucao da relaxacao linear garante asolucao optima do problema inteiro?
Definicao
uma matriz A inteira e de dim. m × n e totalmente unimodular (TU) se odeterminante de toda a sua submatriz quadrada for igual a 0, +1, −1.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 11 / 30
Relaxacao Linear
Relaxacao linear
temos entao o seguinte resultado fundamental
Proposicao
se A e uma matriz totalmente unimodular, entao todos os vertices dopoliedro convexo P = {x ∈ Rn : Ax ≤ b, x ≥ 0} sao inteiros, para todo ovector b ∈ Zm tal que P 6= ∅
Proposicao
se A e uma matriz totalmente unimodular e b e c sao vectores de inteiros,entao ambos os problemas
max{cx : Ax ≤ b} = min{yb : y ≥ 0, yA = c}
possuem sol. optimas inteiras.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 12 / 30
Relaxacao Linear
Relaxacao
Em Teoria:
todo o problema de programacao inteira mista pode ser resolvido como umproblema de programacao linear usando como formulacao a descricaolinear do envolvente convexo do conjunto das solucoes admissıveis(formulacao ideal).
Na Pratica:
Em geral a descricao do envolvente convexo e desconhecida.A descricao do envolvente convexo pode incluir um numero dedesigualdades validas que e exponencial no numero de variaveis.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 13 / 30
Metodos de P.L.I.
Metodos para resolver P.L.I.
Metodo Branch & Bound
Metodo de Planos de Corterelaxa a formulacao para P.L. e, sucessivamente, insere desigualdadesvalidas que separam pontos fraccionarios
Metodo Branch & Cutcombina o metodo Branch & Bound e o metodo de Planos de Corte
Metodo Branch & Pricecombina o metodo Branch & Bound e o metodo de geracao decolunas
etc.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 14 / 30
Metodo de Branch & Bound
Metodo Branch & Bound
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 15 / 30
Metodo de Branch & Bound
Metodo Branch & Bound
particiona o conjunto de solucoes do problema e constroi uma arvorede enumeracao (branch)
sempre que ocorre uma situacao inviavel abandona/remove ocorrespondente ramo da arvore (bound)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 16 / 30
Metodo de Branch & Bound
Pontos importantes num metodo Branch & Bound
como fazer a enumeracao (Passo 2)
como percorrer a arvore de enumeracao (Passo 3)
como limitar a arvore de enumeracao (Passo 4)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 17 / 30
Metodo de Branch & Bound
como fazer a enumeracao (Passo 2)
a enumeracao gera uma quantidade muito grande de solucoes,devemos apenas guardar uma lista de nos activos e a melhor solucaoviavel
escolher a variavel a ramificar:a mais ”fraccionaria” (parte fracc + prox de 0.5) oua menos ”fraccionaria” (parte fracc + distante de 0,5)
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 18 / 30
Metodo de Branch & Bound
como percorrer a arvore de enumeracao (Passo 3)
por busca em profundidadememoria usada na enumeracao pequenaobtencao da solucao optima pode ser demorada
por busca em larguramemoria usada na enumeracao pode ser excessivamantem certa igualdade entre os ramos, permitindo manter ramosque contenham boas solucoes
escolher para ramificar o no que tem a maior distancia entre o limiteinferior e superior de modo a diminuir a diferenca entre limite superiore inferior, p ex, num prob min escolher o no com o menor limiteinferior
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 19 / 30
Metodo de Branch & Bound
como limitar a arvore de enumeracao (Passo 4)
Optimalidade: solucao optima do subproblema encontrada
Admissibilidade: o subproblema nao tem solucoes admissıveis
Limite: determinado um minorante do subproblema pior que o valorda melhor solucao admissıvel ja encontrado
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 20 / 30
Metodo de Branch & Bound
como limitar a arvore de enumeracao (Passo 4)
boas estrategias evitam rapido crescimento da arvore
usar o valor da melhor sol encontrada combinada com estrategias queusem limites inf e sup
num prob max considerar como lim sup o ϑ(PL), c/o lim inf −∞ ouo valor de uma sol admiss e substituir este valor sp q encontrar umasol inteira melhor
num prob min considerar como lim inf o ϑ(PL), c/o lim sup +∞ ou ovalor de uma sol admiss e substituir este valor sp q encontrar uma solinteira melhor
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 21 / 30
Metodo de Branch & Bound
Algoritmo de Branch & Bound - problema de max.
Passo 1: Inicializacao
resolver a relaxacao linear (PL) do P.L.I.Se (PL) e impossıvel, STOP (P) e tb impossıvel.Se a sua solucao e inteira, STOP foi encontrada asolucao optima de (P))Caso contrarioseja z o correspondente valor optimoseja z = −∞ ou entao igual ao valor da f.o. associado auma sol. admissıvel
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 22 / 30
Metodo de Branch & Bound
Passo 2: Ramificacao/Branching
particionar o problema a partir de uma var. que viole arest. de integralidadeseja xk a var. escolhida c/ valor fraccionario xknum dos problemas incluir a rest. xk ≤ bxkcno outro problema incluir a rest. xk ≥ bxkc+ 1colocar estes problemas na lista de problemas poranalisar
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 23 / 30
Metodo de Branch & Bound
Passo 3: Seleccao do subproblema
se ja nao existirem subprob. p/a analisar, passar aoPasso 5caso contrario, seleccionar um novo problema e seguirpara o Passo 4
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 24 / 30
Metodo de Branch & Bound
Passo 4: Resolucao da rel. lin. do subproblemaseleccionado/Bounding
resolver a rel. linear do prob. seleccionadose a rel. linear for impossıvel, abandonar o subproblema,cancelar o no da arvore de pesquisa e passar ao Passo 3caso contrario, seja z o valor da f.o. correspondente asol. optima da rel. linear
se z < z , abandone este problema, cancelar este no, eseguir para o Passo 3se z ≥ z e se na sol. optima existir pelo menos umavariavel inteira com valor fraccionario, entao seguir parao Passo 2se z ≥ z e se a sol. optima verificar todas as rest. deintegralidade, entao cancelar o no da arvore, substituir zpor z e passar ao Passo 3
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 25 / 30
Metodo de Branch & Bound
Passo 5: Teste de optimalidade
se z = −∞ entao o problema e impossıvel e o processoterminacaso contrario, a sol. optima foi obtida e o processotermina com z∗ = z
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 26 / 30
Metodo de Branch & Bound
Exemplo 1
max z = 3x1 + 4x2
s. a: −3x1 + 2x2 ≤ 2x1 + 3x2 ≤ 11x1 + x2 ≤ 6x1, x2 ≥ 0 e inteiros
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 27 / 30
Metodo de Branch & Bound
(P0)z = 41
2x = ( 7
2 ,52 )
z = 412
z = −∞
(P1)z = 59
3x =(3, 8
3 )
(P2)z = 20x =(4, 2)
(P3)z = 17x =(3, 2)z = 17z = 17
(P4)z = 18x = (2, 3)z = 18z = 18
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 28 / 30
Metodo de Branch & Bound
Exemplo 2
max z = x1 + 4x2
s. a: −2x1 + 4x2 ≤ 82x1 + 3x2 ≤ 12x1, x2 ≥ 0 e inteiros
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 29 / 30
Metodo de Branch & Bound
(P0)z = 92
7x =( 12
7 , 207 )
z = 927
z = 0
(P1)z = 11x =(1, 5
2 )
(P2)z = 38
3x =(2, 8
3 )
(P3)z = 9x =(1, 2)z = 92
7z = 9
(P4)imp.
(P5)z = 11x =(3, 2)z = 92
7z = 11
(P6)imp.
C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 30 / 30
Top Related