Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves...

43
Unidade de Matemática e Tecnologia - RC/UFG Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43

Transcript of Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves...

Page 1: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Unidade de Matemática e Tecnologia - RC/UFG

Programação Linear/Inteira - Aula 5

Prof. Thiago Alves de Queiroz

Aula 5

Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43

Page 2: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Análise de Sensibilidade

Estudar o efeito de perturbar os dados de um problema deotimização linear;Particularmente, o vetor de recursos b e o vetor de custos c;Seja o problema primal na forma padrão:

F (b) = Minimizar z = cTx

sujeito a :

{Ax = bx ≥ 0.

(1)

Sendo F(b) o valor mínimo da função objetivo para um vetor derecursos b;As relações primais-duais fornecem subsídios para estudar aperturbação nos dados do problema;

Thiago Queiroz (IMTec) Aula 5 Aula 5 2 / 43

Page 3: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Perturbação no Vetor de Recursos

Se o vetor de recursos for alterado, então a solução ótima doproblema anterior também se altera (e F(b)) também;Suponha que o problema original tenha sido resolvido, comsolução básica primal ótima: xB = B−1b, xN =0.A solução dual básica ótima é: λT = cT

B B−1.Portanto a expressão da função objetivo para um vetor b:F (b) = cT

B xB = cTB B−1b = λT b = b1λ1 + b2λ2 + . . .+ bmλm;

Sendo F diferenciável: pequenas alterações em b não fazemmudar a base ótima, tal que λ não se altera. Então:∂F (b)∂bi

= λi , para i = 1,2, . . . ,m;

Thiago Queiroz (IMTec) Aula 5 Aula 5 3 / 43

Page 4: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Perturbação no Vetor de Recursos

Note que λi (o vetor multiplicador simplex) fornece a taxa devariação com relação ao vetor de recursos b.A unidade de λibi deve ser a mesma da função objetivo;Ou seja, se função objetivo representa custo em R$, então λibitambém deve ser na mesma grandeza (R$);Portanto, a unidade de λi deve ser (unidade da funçãoobjetivo)/(unidade do recurso i), podendo ser interpretada comopreço de uma unidade de i ;

Thiago Queiroz (IMTec) Aula 5 Aula 5 4 / 43

Page 5: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Perturbação no Vetor de Recursos

Ao fazer uma pequena perturbação em bi de δi , sem que asolução básica atual deixe de ser factível, tem-se:F (b1, . . . ,bi + δi ,bm) = b1λ1 + . . .+ (bi + δi) + . . .+ bmλm == F(b) + δiλi ,Ou seja, a função objetivo é modificada por δiλi ;Por outro lado, para saber quais valores bi pode assumir semalterar a otimalidade da base corrente, deve-se calcular ointervalo: [bi + δi bi + δi ]

Em que δi e δi são os limites mínimo e máximo para δi ;Para determinar estes limites, deve-se resolver, dado o primal:B−1(b + ∆) = xB + B−1∆ ≥ 0, com ∆ = (0 . . . δi . . . 0);

Thiago Queiroz (IMTec) Aula 5 Aula 5 5 / 43

Page 6: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Exemplo

Exemplo. No seguinte problema de programação linear:

(Primal) Minimizar z = x1 + x2 + x3

sujeito a :

45 x1 + 2

5 x2 = 10835 x2 + 9

10 x3 = 120x1 ≥ 0, x2 ≥ 0, x3 ≥ 0.

(2)

A função objetivo mede o peso (em toneladas) de bobinas deferro a cortar;Cada restrição está associada a um tipo de sub-bobina de ferro,tal que o vetor de recursos representa à demanda de cadasub-bobina em toneladas.a) Verifique a perturbação no vetor de recursos b para cadarestrição individualmente;b) Qual o intervalo de variação nos valores do recurso dasegunda restrição que mantém a base corrente ótima?

Thiago Queiroz (IMTec) Aula 5 Aula 5 6 / 43

Page 7: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução...

1. Obtenha a solução do primal usando o simplex (em tabelas),qual seja: x1 = 35, x2 = 200, x3 = 0, com valor da função objetivoz = 235;Observando z, tem-se que 235 toneladas de bobinas sãonecessárias para atendar a demanda de b1 = 108 e b2 = 120toneladas de sub-bobinas do tipo 1 e 2, respectivamente;2. Obtenha o dual e sua solução:

(Dual) Maximizar g(λ) = 108λ1 + 120λ2

sujeito a :

45λ1 + 0λ2 + µ1 = 125λ1 + 3

5λ2 + µ2 = 10λ1 + 9

10λ2 + µ3 = 1λ1 ∈ R, λ2 ∈ R, λ3 ∈ R.

(3)

Em que: µ1, µ2, µ3 ≥ 0 são as variáveis de folga do dual.A solução do dual pode ser obtida por meio da Propriedade 14,ou seja, calculando λT = cBB−1, sendo B−1 a inversa de B quelevou à solução ótima do primal.

Thiago Queiroz (IMTec) Aula 5 Aula 5 7 / 43

Page 8: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução...

Obtém-se B−1 da última iteração do simplex, que é:

B−1 =

[54 −5

60 5

3

];

Logo, λT = cTB B−1 = (1 1)

[54 −5

60 5

3

]= (5

456);

Então, a solução ótima do dual é: λ1 = 54 e λ2 = 5

6 .3. Analise a perturbação no vetor de recursos b para cadarestrição individualmente, sabendo que:F(b) = z→ F (b1,b2) = b1λ1 + b2λ2;Para a primeira restrição do primal, isto é, 4

5x1 + 25x2 = 108,

tem-se a pertubação δ1 no recurso b1 = 108, tal que:F (108 + λ1,120) = F (b) + δ1λ1 = 235 + 5

4δ1;Isto significa que a cada tonelada a mais da sub-bobina do tipo 1demandada é necessário cortar 5

4 toneladas a mais de bobina.

Thiago Queiroz (IMTec) Aula 5 Aula 5 8 / 43

Page 9: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução...

Fazendo a análise para a segunda restrição, isto é,35x2 + 9

10x3 = 120, tem-se a pertubação δ2 no recurso b2 = 120,tal que:F (108,120 + λ2) = F (b) + δ2λ2 = 235 + 5

6δ2;Isto significa que a cada tonelada a mais da sub-bobina do tipo 2demandada é necessário cortar 5

6 toneladas a mais de bobina;Observando as duas pertubações, note que é mais vantajosoestimular a demanda de sub-bobinas do tipo 2 do que do tipo 1,pois a função objetivo busca minimizar e λ2 = 5

6 < λ1 = 54 .

Estas valores são tendências e são válidos apenas parapequenas pertubações na demanda;

Thiago Queiroz (IMTec) Aula 5 Aula 5 9 / 43

Page 10: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução...

Na letra (b) deve-se calcular o intervalo de variação para osvalores da segunda restrição, ou seja, para b2;1. Usamos a expressão xB + B−1∆ ≥ 0, em que xB é a soluçãobásica ótima do primal, B−1 é a inversa da matriz básicaassociada a esta solução, e ∆ = (δ1 δ2);Observando a solução ótima do primal na última iteração do

simplex, temos xB = (x1 x2) = (35 200) e B−1 =

[54 −5

60 5

3

];

Como se quer o intervalo apenas para a segunda restrição, entãoδ1 = 0;

Logo: xB + B−1∆ ≥ 0→(

35200

)+[5

4 −56

0 53

](0δ2

)=(

35 + 56δ2

200 + 53δ2

)≥(

00

)

Thiago Queiroz (IMTec) Aula 5 Aula 5 10 / 43

Page 11: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução...

Isto resulta na resolução do seguinte sistema de equações:35 + 5

6δ2 ≥ 0200 + 5

3δ2 ≥ 0

Que fornece −120 ≤ δ2 ≤ 42, ou seja, δi = −120 e δi = 42;

2. Montar o intervalo: [bi + δi bi + δi ];Note que i = 2, com b2 = 120, tal que qualquer δ2 ∈ [0 162]implica que a base não deixará de ser ótima.Além disso, o valor de λ2 = 5

6 fornece a taxa de variação nafunção objetivo com a variação de b2;Esta informação é útil para o decisor, que pode analisar até queponto um recurso pode ser alterado sem que as atividadesrelevantes para uma solução sejam alteradas, ou seja, semalterar o vetor de variáveis básicas.

Thiago Queiroz (IMTec) Aula 5 Aula 5 11 / 43

Page 12: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Pertubação nos Custos

Considere que uma solução básica ótima tenha sido encontradapara o problema de otimização linear:

F (b) = Minimizar z = cTx

sujeito a :

{Ax = bx ≥ 0.

(4)

Deseja-se analisar o efeito da alteração de algum coeficiente dafunção objetivo;Ou seja, suponha que se queira alterar ck para c′k = ck + δ;Esta alteração não torna infactível a solução ótima já encontrada;Porém, a solução pode deixar de ser uma solução ótima;Analisa-se o caso em que a variável, xk associada ao custo ck ,pode ser básica ou não-básica.

Thiago Queiroz (IMTec) Aula 5 Aula 5 12 / 43

Page 13: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Pertubação nos Custos

Seja o caso em que xk é não-básica primeiro;Note que o vetor cB não é alterado;Logo, o vetor multiplicado simplex λT = cB

T B−1 associado àpartição básica ótima não se altera;Apenas o custo relativo da variável xk , denotado porck = cK − λT ak é alterado para um c′k , ou seja:c′k = c′k − λT ak = (ck + δ)− λT ak = ck + δ;Isto é, o novo custo relativo é simplesmente alterado pela adiçãode δ ao antigo custo relativo;Se c′k = ck + δ ≥ 0, então a solução ótima não se altera (lembreda condição de parada do simplex).Se c′k = ck + δ < 0, então a solução deixa de ser ótima (e osimplex escolheria xk para entrar na base).

Thiago Queiroz (IMTec) Aula 5 Aula 5 13 / 43

Page 14: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Pertubação nos CustosNote que δ < 0 deve ocorrer para que a solução se altere;Mais precisamente, se δ < −ck , então a variável xk deve seraumentada para reduzir ainda mais a função objetivo;Exemplo. Considere o problema abaixo de um fabricante degeladeiras. Um novo modelo superluxo está sendo estudado edeseja-se saber qual é o lucro unitário mínimo desse produto(preço de venda menos o custo do produto) que torna suaprodução economicamente viável em relação aos demaisprodutos;

Maximizar z = 100xluxo + 50xbasico

sujeito a :

10xluxo + 8xbasico + x1 = 25.000xluxo + xbasico + x2 = 4.500xluxo + x3 = 1.500xbasico + x4 = 6.000xluxo ≥ 0, xbasico ≥ 0, x1, x2, x3, x4 ≥ 0.

(5)

O novo modelo superluxo requer 16 homens/hora (restrição 1) ecompartilha a linha de montagem (restrição 2).

Thiago Queiroz (IMTec) Aula 5 Aula 5 14 / 43

Page 15: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução...

1. Obter a base ótima e as soluções básicas ótimas, primal edual, ou seja:

B = [aluxo abasico a2 a4] =

10 8 0 01 1 1 01 0 0 00 1 0 1

, com

xB =

xluxo

xbasicox2x4

=

1500125017504750

, e com λ =

λ1λ2λ3λ4

=

25407520

.

2. Definir a variável xsluxo como a quantidade a produzir e lsluxocomo o lucro unitário. Isto resulta em uma modificação no modelooriginal;Lembre-se das restrições a serem inseridas para este novomodelo: homens/hora e participar da linha de montagem;Logo, o modelo resultante (uma nova coluna foi inserida) é:

Thiago Queiroz (IMTec) Aula 5 Aula 5 15 / 43

Page 16: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução...

Maximizar z = 100xluxo + 50xbasico + lsluxoxsluxo

sujeito a :

10xluxo + 8xbasico + 16xsluxo + x1 = 25.000xluxo + xbasico + xsluxo + x2 = 4.500xluxo + x3 = 1.500xbasico + x4 = 6.000xluxo ≥ 0, xbasico ≥ 0, x1, x2, x3, x4 ≥ 0.

(6)

A variável xsluxo é economicamente viável se pertencer à baseótima deste novo problema;Caso contrário, será não básica e seu nível de produção seránulo;3. Calcular o custo relativo da nova variável, que deve sernão-negativo, pois o problema é da maximização;

Thiago Queiroz (IMTec) Aula 5 Aula 5 16 / 43

Page 17: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução...

Custo relativo da variável xsluxo:

lsluxo − λT asluxo = lsluxo − (254 0 75

2 0)

16100

= lsluxo − 100 ≥ 0;

Portanto, se lsluxo ≥ 100, o novo modelo superluxo é viáveleconomicamente em relação aos demais produtos;Neste caso, contribuirá para o lucro da empresa se for produzido;Caso contrário, a empresa precisa aumentar o seu preço oureduzir seu custo unitário de produção, de modo que o lucrounitário resulte em lsluxo ≥ 100;Observe que, se lsluxo = 100, então o custo relativo é nulo,indicando que existem soluções ótimas alternativas;Neste caso, poderia ser não vantajoso investir na produção deoutro produto, como a superluxo.

Thiago Queiroz (IMTec) Aula 5 Aula 5 17 / 43

Page 18: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Pertubação nos Custos

Seja o caso em que xk é básica;Suponha que esta seja a r-ésima variável básica: xBr = xk ;Neste caso, c′Br

= cBr + δ e o vetor multiplicado simplex para abase encontrada se altera por:λ′T = c′BB−1 = cT

B B−1 + δeTr B−1 = λT + δeT

r B−1;Em que er é a r-ésima coluna da matriz identidade m ×m;Portanto, os custos relativos de todas as variáveis devem serrecalculados como:c′j = cj − λ′T aj = cj − (λT + δeT

r B−1)aj =

= (cj − λT aj)− δeTr B−1aj = cj − δeT

r yj ;Lembre que yj = B−1aj (direção simplex);

Thiago Queiroz (IMTec) Aula 5 Aula 5 18 / 43

Page 19: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Pertubação nos Custos

Como er é a r-ésima coluna da matriz identidade, então o produtoeT

r yj fornece o r-ésimo elemento do vetor yj , denotado por yrj .Então, o novo custo relativo é dado por:c′j = cj − δyrj

Neste caso, os custos relativos se alteram;Com isso, o método simplex precisa ser aplicado para reotimizaro problema;

Thiago Queiroz (IMTec) Aula 5 Aula 5 19 / 43

Page 20: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

O método dual simplex

Pode ser útil como alternativa ao Método das Duas Fases ou dogrande-M para obtenção da solução do primal;Muito usado em reotimização de problemas lineares, após aadição de novas restrições no problema original:

I Se as restrições são satisfeitas pela solução ótima do problemaoriginal, então também é ótima para o problema com novasrestrições;

I Caso a solução seja infactível para o problema novo, é necessáriouma reotimização, que pode incluir o acréscimo de variáveisartificiais.

I Do ponto de vista do problema dual, novas restrições no primalimplicam em variáveis duais, de modo que a solução dual nãoperde factibilidade, mas pode deixar de ser ótima;

I De qualquer forma, a solução ótima do dual original é uma boasolução inicial para o dual com novas variáveis.

Thiago Queiroz (IMTec) Aula 5 Aula 5 20 / 43

Page 21: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução do primal pelo algoritmo dual simplex

Se o problema primal não possuir uma base inicial factível,pode-se usar o algoritmo dual simplex para obter a solução doprimal;Melhor ainda, pode-se aplicar o dual simplex em tabelas, assimcomo feito no simplex em tabelas;Seja um exemplo de problema de otimização linear:

(Primal) Minimizar z = x1 + x2

sujeito a :

2x1 + x2 ≥ 4x1 + 3x2 ≥ 3x1 ≥ 0, x2 ≥ 0.

(7)

1. Coloque o problema na forma padrão (minimizar e comrestrições de igualdade).

Thiago Queiroz (IMTec) Aula 5 Aula 5 21 / 43

Page 22: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução do primal pelo algoritmo dual simplex

(Primal) Minimizar z = x1 + x2

sujeito a :

2x1 + x2 − x3 = 4x1 + 3x2 − x4 = 3x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0.

(8)

Note que para obter uma base factível inicial para simplex épreciso multiplicar as restrições por (-1), resultando em:

(Primal) Minimizar z = x1 + x2

sujeito a :

−2x1 − x2 + x3 = −4−x1 − 3x2 + x4 = −3x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0.

(9)

2. Montar a tabela simplex inicial para o modelo acima, pois eleestá na forma padrão e tem uma base factível inicial (x3 e x4 sãoas variáveis básicas com B = I2).

Thiago Queiroz (IMTec) Aula 5 Aula 5 22 / 43

Page 23: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução do primal pelo algoritmo dual simplex

A tabela simplex inicial, com as Variáveis Básica (VB):

Tabela: Tabela simplex inicial com dados do problema primal.

x1 x2 x3 x4 bVB 1 1 0 0 zx3 -2 -1 1 0 -4x4 -1 -3 0 1 -3

Note que apesar de existir uma base factível B, a solução inicialxB = B−1b resulta em x3 = −4 < 0 e x4 = −3 < 0, ou seja, asolução básica não é factível;Neste ponto entra a aplicação do algoritmo dual simplex;

Thiago Queiroz (IMTec) Aula 5 Aula 5 23 / 43

Page 24: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Algoritmo dual simplex em Tabelas

Considere um problema de otimização linear como o do exemploanterior, ou seja, na forma padrão;Fase I: Determine uma tabela simplex inicial:

I A função objetivo do problema original vai satisfazer a condição deotimalidade do método simplex normal;

I As restrições no problema original devem ser do tipo ≥.I Faça iteração = 0.

Fase II:I 1. Determine a variável a sair da base olhando a solução básica

primal:xBl = mínimo {xBi , para toda variável básica i };

I 2. Se xBl ≥ 0, então pare: solução ótima encontrada;F 2.1. Senão, a variável xBl sai da base;

Thiago Queiroz (IMTec) Aula 5 Aula 5 24 / 43

Page 25: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Algoritmo dual simplex em Tabelas

Fase II: continuação...I 3. Seja a linha da variável que vai sair da base definida por rBl :

F 3.1. Se todos os coeficientes na linha são positivos, isto é, rBl j > 0,para j = 1, . . . , n, então pare: solução do primal é infactível;

F 3.1. Senão, determine para as variáveis não-básicas e que tenhamcoeficiente negativo na linha rBl :ˆcNk

rBl k= mínimo {|

ˆcNjrBl j

| tal que rBl j < 0, j = 1, . . . , n};F 3.2. A variável não-básica de índice Nk , diga-se xNk , entra na base;

I 4. Atualize a tabela simplex, considerando o elemento pivô rBl Nk efazendo o pivotamento no restante da coluna;

F 4.1. A variável xNk passa a ser a variável básica na linha Bl ;F 4.2. Faça iteração = iteração + 1;F 4.3. Retorne ao passo 1.

Thiago Queiroz (IMTec) Aula 5 Aula 5 25 / 43

Page 26: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Exemplo

Exemplo. Continue a resolução do exemplo anterior aplicandoagora o algoritmo dual simplex em tabelas.Note que o problema do exemplo anterior era:

(Primal) Minimizar z = x1 + x2

sujeito a :

2x1 + x2 − x3 = 4x1 + 3x2 − x4 = 3x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0.

(10)

Com a seguinte tabela simplex inicial:

Tabela: Tabela simplex inicial com dados do problema primal.

x1 x2 x3 x4 bVB 1 1 0 0 zx3 -2 -1 1 0 -4x4 -1 -3 0 1 -3

Thiago Queiroz (IMTec) Aula 5 Aula 5 26 / 43

Page 27: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução...

Note que não dá para aplicar o simplex em tabelas, poisobservando a tabela inicial tem-se que é satisfeita a condição deotimalidade e a solução básica não é viável (x3 = −4 e x4 = −3);A alternativa é aplicar o algoritmo dual simplex em tabelas;Pela Fase I, monta-se a tabela simplex inicial, explicitando asvariáveis básicas. Fez-se isto na tabela anterior;Faz-se iteração = 0.Aplicando a Fase II, segue que:1. A variável básica com menor valor de solução é: x3 = −4;2. x3 = −4 < 0, de forma que a variável x3 sai da base e Bl = 33. Existe rBl j = r3j < 0 para j não-básica. Observe: para j=1,tem-se -2, e para j=2 tem-se -1;3.1. O mínimo entre {| 1

−2 |; |1−1 |} ocorre para j=1;

3.2. A variável básica x1 entra na base, com índice Nk = 1;

Thiago Queiroz (IMTec) Aula 5 Aula 5 27 / 43

Page 28: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução...

Tabela: Tabela simplex inicial.

x1 x2 x3 x4 bVB 1 ↓ 1 0 0 z← x3 −2 -1 1 0 -4

x4 -1 -3 0 1 -3

4. O elemento pivô é o rBl Nk = r31 = −2. Realiza-se opivotamento na coluna aNk = a1;4.1. A variável x1 entrou no lugar da variável x3;4.2. iteração = 1;

Tabela: Tabela simplex iteração 1.

x1 x2 x3 x4 operaçãoVB 0 1

212 0 - 2 L1 ← L1 − L2

x1 1 12 − 1

2 0 2 L2 ← − 12 L2

x4 0 − 52 − 1

2 1 -1 L3 ← L3 + L2

Thiago Queiroz (IMTec) Aula 5 Aula 5 28 / 43

Page 29: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução...

Voltando ao passo 1 da Fase II, segue que:1. A variável básica com menor valor de solução é: x4 = −1;2. x4 = −1 < 0, de forma que a variável x4 sai da base e Bl = 4;3. Existe rBl j = r4j < 0 para j não-básica. Observe: para j=2,tem-se −5

2 , e para j=3, tem-se 12 ;

3.1. O mínimo entre {|12− 5

2|; |

12− 1

2|} ocorre para j=2;

3.2. A variável básica x2 entra na base, com índice Nk = 2;

Tabela: Tabela simplex iteração 1.

x1 x2 x3 x4 bVB 0 1

2 ↓12 0 - 2

x1 1 12 − 1

2 0 2← x4 0 − 5

2 − 12 1 -1

Thiago Queiroz (IMTec) Aula 5 Aula 5 29 / 43

Page 30: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução...

4. O elemento pivô é o rBl Nk = r42 = −52 . Realiza-se o

pivotamento na coluna aNk = a2;4.1. A variável x2 entrou no lugar da variável x4;4.2. iteração = 2;

Tabela: Tabela simplex iteração 2.

x1 x2 x3 x4 operaçãoVB 0 0 4

1015 - 11

5 L1 ← L1 − 12 L3

x1 1 0 − 610

15

95 L2 ← L2 − 1

2 L3

x2 0 1 15 − 2

525 L3 ← − 2

5 L3

Voltando ao passo 1 da Fase II, segue que:1. A variável básica com menor valor de solução é: x2 = 2

5 ;

2. x4 = 25 > 0, de forma que a solução ótima foi encontrada;

Thiago Queiroz (IMTec) Aula 5 Aula 5 30 / 43

Page 31: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Resolução...

Da tabela simplex da última iteração, obtém-se como soluçãopara o primal: (x1, x2, x3, x4) = (9

5 ,25 ,0,0);

O valor da função objetivo é: z = x1 + x2 = 95 + 2

5 = 115 .

Note que é mais fácil obter a solução usando o dual simplex emtabelas do que o algoritmo dual simplex manualmente.

Thiago Queiroz (IMTec) Aula 5 Aula 5 31 / 43

Page 32: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Problema dual resolvido em tabelas

Uma estratégia simples pode ser aplicada ao problema dualpermitindo-o ser resolvido por tabelas (como no simplex emtabelas).Considere um problema primal de otimização linear:

(Primal) Minimizar z = x1 + x2

sujeito a :

2x1 + x2 ≥ 4x1 + 3x2 ≥ 3x1 ≥ 0, x2 ≥ 0.

(11)

Caso não seja dado o problema dual diretamente, o primeiropasso é escrever o dual do problema e colocá-lo na forma padrão:

(Dual) Maximizar g(λ) = 4λ1 + 3λ2

sujeito a :

2λ1 + λ2 ≤ 1λ1 + 3λ2 ≤ 1λ1 ≥ 0, λ2 ≥ 0.

(12)

Thiago Queiroz (IMTec) Aula 5 Aula 5 32 / 43

Page 33: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Problema dual resolvido em tabelas

Colocando o dual na forma padrão, tem-se:

Maximizar g(λ) = 4λ1 + 3λ2 + 0λ3 + 0λ4

sujeito a :

2λ1 + λ2 + λ3 = 1λ1 + 3λ2 + λ4 = 1λ1 ≥ 0, λ2 ≥ 0, λ3 ≥ 0, λ4 ≥ 0.

(13)

Pode-se aplicar o simplex em tabelas no problema acima;Lembre-se apenas que o simplex em tabelas, como visto, requerque o problema tenha uma função de minimizar. Ou seja:

Minimizar − g(λ) = −4λ1 − 3λ2 − 0λ3 − 0λ4

sujeito a :

2λ1 + λ2 + λ3 = 1λ1 + 3λ2 + λ4 = 1λ1 ≥ 0, λ2 ≥ 0, λ3 ≥ 0, λ4 ≥ 0.

(14)

Observe que agora o modelo está na forma padrão requeridapelo simplex;

Thiago Queiroz (IMTec) Aula 5 Aula 5 33 / 43

Page 34: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Problema dual resolvido em tabelas

A ideia é “considerar” que o problema dual é um problema primal;A partir de agora, monta-se a tabela simplex do modelo (14),resultando em:

Tabela: Tabela inicial com dados do problema dual.

λ1 λ2 λ3 λ4 c-4 -3 -0 -0 g(λ)2 1 1 0 11 3 0 1 1

Não esquecer de multiplicar o valor da função objetivo por (-1)para obter o valor que maximiza o problema dual original.Note na tabela acima que uma base viável consiste em escolheras variáveis λ3 e λ4, pois forma a matriz identidade;

Thiago Queiroz (IMTec) Aula 5 Aula 5 34 / 43

Page 35: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Problema dual resolvido em tabelas

Resulta na seguinte tabela simplex inicial, com as VariáveisBásica (VB):

Tabela: Tabela simplex inicial.

λ1 λ2 λ3 λ4 bVB -4 -3 0 0 0λ3 2 1 1 0 1λ4 1 3 0 1 1

Aplicando a Fase II do simplex em tabelas, segue que:1. O menor custo relativo é: c1 = −4;2. c1 < 0, de forma que a variável λ1 entra na base.3. Existe aik > 0. Observe: para i=3, tem-se 2, e para i=4, tem-se1;3.1. O mínimo ocorre para {1

2 ; 11}, isto é, para l=i=3;

3.2. A variável básica λ3 sai da base;

Thiago Queiroz (IMTec) Aula 5 Aula 5 35 / 43

Page 36: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Problema dual resolvido em tabelas

Tabela: Tabela simplex inicial.

λ1 λ2 λ3 λ4 bVB -4 ↓ -3 0 0 0← λ3 2 1 1 0 1λ4 1 3 0 1 1

4. O elemento pivô é o aik = a31 = 1. Realiza-se o pivotamentona coluna ak = a1;4.1. A variável λ1 entra no lugar da variável λ4 (que sai);

Tabela: Tabela simplex iteração 1.

λ1 λ2 λ3 λ4 b operaçãoVB 0 -1 2 0 2 L1 ← L1 + 4L2

λ1 1 12

12 0 1

2 L2 ← 12 L2

λ4 0 52 − 1

2 1 12 L3 ← L3 − L2

O processo continua até chegar em algum critério de parada...

Thiago Queiroz (IMTec) Aula 5 Aula 5 36 / 43

Page 37: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Interpretação econômica: primal × dual

Figura: Interpretação econômica entre o par primal × dual .

Thiago Queiroz (IMTec) Aula 5 Aula 5 37 / 43

Page 38: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Reotimização

Uma das principais aplicações do método dual simplex consisteem resolver problemas cujas soluções ótimas se tornaraminfactíveis;Isto ocorre, por exemplo, depois que novas restrições sãoincluídas;Considere que o problema de otimização linear e seu dual(problemas originais):

(Primal) Minimizar z = cTx

sujeito a :

{Ax = bx ≥ 0.

(15)

O seu dual é:

(Dual) Maximizar g(λ) = bTλsujeito a :

{ATλ ≤ c (16)

Considere a partição básica ótima A = [B N].

Thiago Queiroz (IMTec) Aula 5 Aula 5 38 / 43

Page 39: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

ReotimizaçãoTal partição está associada as soluções básicas factíveis primal edual:

I solução básica primal: xB = B−1b e xN =0;I solução básica dual: λ = (B−1)cB;I Tais soluções são factíveis, isto é, xB ≥ 0 e NT λ ≤ cN , e ótimas:

f(x) = g(λ).

Nosso interesse é inserir uma nova restrição: uT x ≤ v ;Esta restrição faz o modelo primal mais restrito e o dual maisrelaxado. Veja na figura:

Figura: Inclusão de uma nova restrição.

Thiago Queiroz (IMTec) Aula 5 Aula 5 39 / 43

Page 40: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Reotimização

Com a adição, tem-se os problemas modificados:

(Primal) Minimizar z = cTx

sujeito a :

Ax + 0xn+1 = buTx + xn+1 = vx ≥ 0, xn+1 ≥ 0.

(17)

O seu dual é:

(Dual) Maximizar g(λ, λm+1) = bTλ+ vλm+1

sujeito a :

{ATλ+ uλm+1 ≤ c0Tλ+ λm+1 ≤ 0

(18)

Sendo xn+1 a variável de folga e λm+1 a variável dual associada ànova restrição.Agora o problema primal tem m + 1 restrições e sua base temordem m + 1.

Thiago Queiroz (IMTec) Aula 5 Aula 5 40 / 43

Page 41: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Reotimização

Note que a solução do dual original, λ, e fazendo λm+1 = 0,satisfazem o problema dual modificado;Basta observar que ao zerar λm+1 volta-se ao problema dualoriginal, cuja solução ótima foi dada por λ;Além disso, a solução (λ, λm+1) do dual modificado satisfaz comigualdade as restrições básicas duais e a nova restrição, ou seja:[BT ub0 1

] [λ

λm+1

]=

[cB0

];

Adota-se uT = (ub uN)T , sendo uTB o vetor dos coeficientes de xB

na nova restrição, como também dos coeficientes de λm+1 nasrestrições duas básicas;

Thiago Queiroz (IMTec) Aula 5 Aula 5 41 / 43

Page 42: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Reotimização

Com isso, tem-se uma nova partição básica para o problemaprimal modificado:[

B 0uB 1

] [xB

xn+1

]=

[bv

];

Cuja solução é: xB = B−1b e xn+1 = v − uTB xB;

Como xB ≥ 0 é a solução ótima do problema original, segue que:I Se xn+1 ≥ 0, então a solução anterior é a solução factível do

problema modificado, com xN = 0;I Note que xn+1 ≥ 0 é uma variável de folga que não viola a restrição

original: uTB xB + uT

N x ≤ v ;I Portanto, a solução dos problemas originais primal e dual

continuam ótimas e não é preciso reotimizar o modelo modificado;I Logo, a restrição inserida está fora ou na fronteira da região factível

do problema primal original.

Thiago Queiroz (IMTec) Aula 5 Aula 5 42 / 43

Page 43: Programação Linear/Inteira - Aula 5 · Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43. Análise de Sensibilidade

Reotimização

Por outro lado:I Se xn+1 < 0, então a solução básica primal não é factível, pois a

nova restrição é violada: uTB xB + uT

N x > v ;I Este é o caso mostrado na figura anterior, em que a restrição

inserida separa a região de factibilidade do problema primaloriginal.

I Logo, deve-se aplicar o método dual simplex a partir da soluçãobásica dual factível (λ, λm+1) = (λ,0);

I Geralmente, consegue-se a nova solução ótima do problemamodificado em poucas iterações.

Thiago Queiroz (IMTec) Aula 5 Aula 5 43 / 43