Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira...

Post on 19-Sep-2018

214 views 0 download

Transcript of Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira...

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