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

30
Programa¸c˜ ao Linear Inteira Programa¸ ao Linear Inteira C. Requejo (UA) etodos de Investiga¸ ao Operacional MIO 2016 1 / 30

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

Page 1: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

Programacao Linear Inteira

Programacao Linear Inteira

C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 1 / 30

Page 2: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 3: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 4: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 5: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 6: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 7: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 8: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 9: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 10: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 11: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 12: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 13: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 14: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 15: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

Metodo de Branch & Bound

Metodo Branch & Bound

C. Requejo (UA) Metodos de Investigacao Operacional MIO 2016 15 / 30

Page 16: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 17: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 18: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 19: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 20: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 21: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 22: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 23: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 24: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 25: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 26: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 27: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 28: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 29: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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

Page 30: Programa˘c~ao Linear Inteira - SWEETsweet.ua.pt/crequejo/teach/mio.pli.pdf · uma matriz A inteira e de dim. m n etotalmente unimodular (TU)se o determinante de toda a sua submatriz

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