Matemática Industrial - RC/UFG Programação Linear - Parte 5 Prof. Thiago Alves de Queiroz 1/2016 Thiago Queiroz (IMTec) Parte 5 1/2016 1 / 29
Dualidade Os parâmetros de entrada são dados de acordo com o problema: estoque disponível de produtos, capacidade das máquinas, demanda dos itens, etc.; Embora seja conveniente um decisor examinar como as possíveis variações nos dados interferem na solução do problema; Por exemplo: Se o estoque de uma matéria-prima aumentasse, como o custo de produção se alteraria? (poderia gerar políticas de compras de matérias-primas); Essas observações correspondem a analisar o modelo sob outro ponto de vista; Introduzem um novo modelo de otimização linear, chamado problema dual; O modelo original é chamado de problema primal. Thiago Queiroz (IMTec) Parte 5 1/2016 2 / 29
Relaxação Lagrangiana Considere um problema de otimização linear na forma padrão, que chamamos de problema primal: Minimizar z { = c T x Ax = b sujeito a : x 0. (1) Em que A é uma matriz m n e z = f(x); Se consideramos que o vetor de recursos b é passível de perturbações, então a restrição b - Ax = 0 não precisa ser satisfeita exatamente; Podemos analisar tal restrição como um vetor y = b - Ax; O vetor y é uma perturbação no vetor b de modo que a solução do problema é Ax = b - y. Thiago Queiroz (IMTec) Parte 5 1/2016 3 / 29
Relaxação Lagrangiana Considere por λ i a penalização (ou o custo) unitário de perturbar o recurso i; Então, λ i y i é o custo adicional de perturbar o recurso i em y i unidades; Isto conduz a um novo problema, chamado problema lagrangiano, isto é, para cada λ = (λ 1, λ 2,..., λ m ), resolva: Minimizar z + λ 1 y 1 + λ 2 y 2 +... + λ m y m sujeito a : { x 0. (2) Em que y = b - Ax; Definição 10. A função objetivo do problema lagrangiano é chamada função lagrangiana, sendo dada por: L(x, λ) = z + λ 1 y 1 + λ 2 y 2 +... + λ m y m, com y = b - Ax. Thiago Queiroz (IMTec) Parte 5 1/2016 4 / 29
Relaxação Lagrangiana Note que: L(x, λ) = = c T x + λ T y = c T x + λ T (b Ax) = (c T λ T A)x + λ T b. Seja A = [a 1, a 2,..., a n ], em que a j é a j-ésima coluna da matriz A e c=(c 1, c 2,..., c n ), então: (c T λ T A) = (c 1 λ T a 1, c 2 λ T a 2,..., c n λ T a n ); A função lagrangiana pode ser escrita como: L(x 1, x 2,..., x n, λ) = (c 1 λ T a 1 )x 1 + (c 2 λ T a 2 )x 2 +... + (c n λ T a n )x n + λ T b; A função dual é definida por: g(λ) = min x 0 {L(x 1, x 2,..., x n, λ)} = min x 0 {(c 1 λ T a 1 )x 1 +(c 2 λ T a 2 )x 2 +...+(c n λ T a n )x n +λ T b} = min x1 0{(c 1 λ T a 1 )x 1 } + min x2 0{(c 2 λ T a 2 )x 2 } +... + min xn 0{(c n λ T a n )x n } + λ T b Thiago Queiroz (IMTec) Parte 5 1/2016 5 / 29
Problema Dual A decomposição anterior da soma em n subproblemas menores é válidas, pois as variáveis x 1, x 2,..., x n são independentes entre si; Definindo R S: R = {x R n, tal que x 0}, S = {x R n, tal que Ax = b, x 0}. Segue, então, pela definição de função dual que: g(λ) = min x 0 c T x + λ T (b Ax) min {Ax=b,x 0} c T x + λ T (b Ax) (o termo b - Ax se anula) = min{c T x, sujeito a: Ax = b, x 0} (problema primal) f(x), para todo x tal que Ax = b, x 0. Note que Minimizar{f (x), x R} Minimizar{f (x), x S}, em que R S. Thiago Queiroz (IMTec) Parte 5 1/2016 6 / 29
Problema Dual Propriedade 5. Para todo λ R m e para todo x tal que Ax = b, x 0, então g(λ) f (x); Ou seja, a função dual g(λ) fornece um limitante inferior para a função objetivo primal f(x), para todo x factível; Isto sugere procurar o λ que ofereça o maior dos limitantes inferiores; Definição 11. O maior limitante inferior para f(x), obtido pela função dual, define o problema dual lagrangiano, ou apenas, problema dual, dado por: Maximizar g(λ) sujeito a : { λ R m. (3) As variáveis (λ 1, λ 2,..., λ m ) são chamadas variáveis duais; Thiago Queiroz (IMTec) Parte 5 1/2016 7 / 29
Problema Dual Se existe i tal que c i λ T a i < 0, então g(λ) =, que é um limitante inferior muito simples (e ruim); Para limitantes inferiores finitos, devemos escolher λ de modo que c i λ T a i 0, i = 1, 2,..., n; Neste caso, min xi 0(c i λ T a i ) = 0, i = 1, 2,..., n, pois a solução do problema lagrangiano é dada por: Se ci λ T a i > 0, então x i = 0 e (c i λ T a i )x i = 0; Se c i λ T a i = 0, então x i 0 e (c i λ T a i )x i = 0. Portanto, se escolhermos λ tal que c i λ T a i 0, i = 1, 2,..., n, então g(λ) = λ T b; As n desigualdades podem ser escritas como: λ T a 1 c 1, λ T a 2 c 2,..., λ T a n c n (λ T a 1 λ T a 2... λ T a n ) (c 1 c 2... c n ) λ T A c T. Thiago Queiroz (IMTec) Parte 5 1/2016 8 / 29
Problema Dual Tomando-se a transposta de ambos os lados da última desigualdade, segue-se que: A T λ c (note que (AB) T = B T A T ); Portanto, se escolhemos as variáveis duais tais que A T λ c, então a função dual g(λ) = λ T b = b T λ; E, podemos reescrever o problema dual para ficar mais justo, como: Propriedade 6. Considere o seguinte problema primal: Minimizar z { = c T x Ax = b sujeito a : x 0. (4) então, o problema dual é dado pelo seguinte problema de otimização linear: Maximizar g(λ) = b T λ sujeito a : { A T λ c. (5) Thiago Queiroz (IMTec) Parte 5 1/2016 9 / 29
Problema Dual Definição 12. O conjunto de restrições A T λ c é chamado de restrições duais, e todo vetor λ que satisfaça as restrições duais é chamado de solução dual factível. Propriedade 7. O dual do problema dual é o problema primal. Em linhas gerais, o problema dual é construído da seguinte forma, dado que o primal está na forma padrão: O problema dual é de Maximização; O número de variáveis duais é igual ao número de restrições do primal; O número de restrições duais é igual ao número de variáveis x do primal; Os coeficientes da função objetivo dual são os coeficientes do vetor de recursos b do primal; A matriz de coeficientes das restrições duais é a transposta da matriz (A) dos coeficientes do primal; As restrições duais (sinal da desigualdade) depende do domínio das variáveis no primal; O vetor de recursos do dual é formado pelo vetor de custos c do primal. Thiago Queiroz (IMTec) Parte 5 1/2016 10 / 29
Problema Dual Tabela: Regras para a construção do dual. Primal (dual) Dual (primal) Minimização Maximização Vetor de recursos b Vetor de custos c Vetor de custos c Vetor de recursos b Restrição Variável = Livre Variável Restrição Livre = Thiago Queiroz (IMTec) Parte 5 1/2016 11 / 29
Exemplos Duais Exemplo. Escreva o dual do seguinte problema: Minimizar z = x 1 + 2x 2 2x 1 + x 2 3 3x sujeito a : 1 + 4x 2 5 x 1 x 2 2 x 1 0, x 2 0. (6) O problema dual resultante é (observe a tabela com as regras): Maximizar g(λ) = 3λ 1 + 5λ 2 + 2λ 3 2λ 1 + 3λ 2 + λ 3 1 sujeito a : λ 1 + 4λ 2 λ 3 2 λ 1 0, λ 2 0, λ 3 0. (7) Thiago Queiroz (IMTec) Parte 5 1/2016 12 / 29
Exemplos Duais Exemplo. Escreva o dual do seguinte problema: Maximizar z = x 1 + 2x 2 2x 1 + x 2 3 3x sujeito a : 1 + 4x 2 5 x 1 x 2 2 x 1 0, x 2 0. (8) O problema dual resultante é (observe a tabela com as regras): Minimizar g(λ) = 3λ 1 + 5λ 2 + 2λ 3 2λ 1 + 3λ 2 + λ 3 1 sujeito a : λ 1 + 4λ 2 λ 3 2 λ 1 0, λ 2 0, λ 3 0. (9) Thiago Queiroz (IMTec) Parte 5 1/2016 13 / 29
Exemplos Duais Exemplo. Escreva o dual do seguinte problema: Maximizar z = x 1 + 2x 2 2x 1 + x 2 + x 3 3 sujeito a : 3x 1 + 4x 2 5 x 1 0, x 2 R, x 3 0. (10) O problema dual resultante é (observe a tabela com as regras): Minimizar g(λ) = 3λ 1 + 5λ 2 2λ 1 + 3λ 2 1 λ sujeito a : 1 + 4λ 2 = 2 λ 1 0 λ 1 0, λ 2 0. (11) Thiago Queiroz (IMTec) Parte 5 1/2016 14 / 29
Veremos como os problemas primal e dual estão relacionados e como obter a solução de um a partir da solução do outro; Considere o conjunto de soluções factíveis do primal por: P = {x R n, tal que Ax = b, x 0}; Considere o conjunto de solução factíveis do dual por: D = {λ R m, tal que A T λ c }; Seque que a Propriedade 5 pode ser escrita como: g(λ) f (x), λ D, x P; Propriedade 8. Suponha que P (existe solução primal). O problema primal não tem solução ótima se e somente se D =. De outra forma, no caso de minimização do primal, f(x) se e somente se não existir solução factível dual (D = ). Note que pela Propriedade 5, se existe λ D, então g(λ) é um limitante inferior para f(x), impedindo que f(x) ; Thiago Queiroz (IMTec) Parte 5 1/2016 15 / 29
Exemplo. Considere o seguinte par de problemas primal-dual: (Primal) Maximizar z = x 1 + x 2 x 1 + x 2 1 sujeito a : x 1 2x 2 1 x 1 0, x 2 0. (12) (Dual) Minimizar g(λ) = λ 1 + λ 2 λ 1 + λ 2 1 sujeito a : λ 1 2λ 2 1 λ 1 0, λ 2 0. (13) A resolução gráfica mostra que o primal não tem solução ótima (a solução é ilimitada) e o dual é infactível, isto é, D =. Veja na figura seguinte. Thiago Queiroz (IMTec) Parte 5 1/2016 16 / 29
Representação da região factível do par de problemas anteriores; Figura: (a) Primal ilimitado, (b) Dual infactível. Thiago Queiroz (IMTec) Parte 5 1/2016 17 / 29
Propriedade 9. Suponha que D (existe solução dual). O problema dual não tem solução ótima se e somente se P =. Isto é, g(λ) se e somente se não existir solução factível primal. Exemplo. Considere o problema: (Primal) Minimizar { z = x 1 0x1 = 1 sujeito a : x 1 0. (14) (Dual) Maximizar g(λ) = λ 1 sujeito a : { 0λ 1 1. (15) Ambos os problemas, primal e dual, são infactíveis; Das Propriedades 8 e 9 concluímos que: se um dos problemas for infactível, então o outro não tem solução ótima (é ilimitada ou é infactível). Thiago Queiroz (IMTec) Parte 5 1/2016 18 / 29
Propriedade 10. O problema primal tem solução ótima se e somente se o dual tiver solução ótima. Note que, se o problema primal tem solução ótima, então P, f(x) > ; Da Propriedade 8, segue-se que D, pois se D =, então f(x), que é um absurdo já que f(x) > ; Assim, como P e D, da Propriedade 9, segue que g(λ) <, ou seja, o problema dual não é infactível, nem ilimitado, de modo que sobre apenas a solução ótima como possibilidade; Propriedade 11. Sejam x P e λ D. Se f (x ) = g(λ ), então x é solução ótima primal e λ é solução ótima dual. Note que, pela Propriedade 5, g(λ) f (x), para todo λ D e para todo x P, pois é impossível diminuir f(x) abaixo de f(x ). Se fosse possível, então existiria x P tal que f(x) < f (x ) = g(λ ). Thiago Queiroz (IMTec) Parte 5 1/2016 19 / 29
Analisando um pouco mais a condição de otimalidade da Propriedade 11. Sejam x P e λ D e suponha que f (x) = g(λ), isto é, c T x = λ T b; Substituindo Ax = b, segue-se que c T x = λ T Ax, o que resulta em: (c T λ T A)x = 0; Note que c T x = λ T Ax c T x λ T Ax = 0; O vetor (c T λ T A) é o vetor das variáveis de folga do problema dual. Veja: a1 T λ c 1 a A T a2 T λ c λ c 1 T λ + µ 1 = c 1 2. a2 T λ + µ 2 = c 2., com an T λ c n an T λ + µ n = c n µ 1 0, µ 2 0,..., µ n 0. Thiago Queiroz (IMTec) Parte 5 1/2016 20 / 29
Como a T j λ = λ T a j e c T λ T A = (c 1 λ T a 1 c 2 λ T a 2... c n λ T a n ), segue que: (c T λ T A)x = 0 (c 1 λ T a 1 )x 1 + (c 2 λ T a 2 )x 2 +... + (c n λ T a n )x n = 0 µ 1 x 1 + µ 2 x 2 +... + µ n x n = 0, em que µ j = c j λ T a j 0. Como x j 0, j = 1, 2,..., n, cada uma das parcelas da soma acima é não-negativa, do que se conclui que todas são nulas, pois deduzimos que (c T λ T A)x = 0, ou seja: µ 1 x 1 = 0, µ 2 x 2 = 0,..., µ n x n = 0 Propriedade 12. (ıfolgas complementares) As soluções x R n e λ R m são ótimas, primal e dual respectivamente, se e somente se: Ax = b, x 0 (x é factível primal) A T λ + µ = c, λ 0 (λ é factível dual) µ j x j = 0, j = 1, 2,..., n (folgas complementares). Thiago Queiroz (IMTec) Parte 5 1/2016 21 / 29
A Propriedade 12 permite obter a solução ótima de um dos problemas (primal ou dual) quando a solução ótima do outro é conhecida; Além disso, que a resolução de um problema de otimização linear pode ser obtida pela resolução de um sistema de equações não-lineares (as folgas complementares são não-lineares); Exemplo. Dado o problema abaixo (primal) e sua solução, obtenha a solução do dual. Verifique se são soluções ótimas. (Primal) Minimizar z = x 1 + x 2 + x 3 4 5 x 1 + 2 5 x 2 = 108 3 sujeito a : 5 x 2 + 9 10 x 3 = 120 x 1 0, x 2 0, x 3 0. (16) Cuja solução factível primal é: x 1 = 35, x 2 = 200, x 3 = 0. Thiago Queiroz (IMTec) Parte 5 1/2016 22 / 29
1. Escreva o problema dual associado ao primal, qual seja: (Dual) Maximizar g(λ) = 108λ 1 + 120λ 2 4 5 λ 1 + 0λ 2 1 2 sujeito a : 5 λ 1 + 3 5 λ 2 1 0λ 1 + 9 10 λ 2 1 λ 1 R, λ 2 R. (17) 2. Adicione as variáveis de folga para deixar o problema dual na forma padrão, resultando em: (Dual) Maximizar g(λ) = 108λ 1 + 120λ 2 4 5 λ 1 + 0λ 2 + µ 1 = 1 2 sujeito a : 5 λ 1 + 3 5 λ 2 + µ 2 = 1 0λ 1 + 9 10 λ 2 + µ 3 = 1 λ 1 R, λ 2 R. (18) Em que: µ 1, µ 2, µ 3 0 são as variáveis de folga do dual. Thiago Queiroz (IMTec) Parte 5 1/2016 23 / 29
3. Busque uma solução que atenda as folgas complementares µ 1 x 1 = 0, µ 2 x 2 = 0 e µ 3 x 3 = 0; Note que a solução do primal foi dada, ou seja, x 1 = 35, x 2 = 200, x 3 = 0. Então, para atender as folgas complementares, temos: µ 1 = 0, µ 2 = 0 e µ 3 0; Isto faz com que as restrições do dual associada as folgas nulas sejam satisfeitas com igualdade: 4 5 λ 1 + 0λ 2 = 1, pois µ 1 = 0, 2 5 λ 1 + 3 5 λ 2 = 1, pois µ 2 = 0; Resolvendo o sistema de equações lineares acima, obtemos: λ 1 = 5 4 e λ 2 = 5 6 ; Thiago Queiroz (IMTec) Parte 5 1/2016 24 / 29
Resta verificar se tal solução dual satisfaz à terceira restrição do dual: 9 10 λ 2 1, é satisfeita pois λ 2 = 5 6. Isto permite obter o valor de µ 3, já que: 9 10 λ 2 + µ 3 = 1 9 10 5 6 + µ 3 = 1 µ 3 = 1 4. 4. Caso as soluções primais e duais sejam factíveis e satisfaçam as folgas complementares, conclui-se que elas são soluções ótimas primal e dual, respectivamente. Veja que a solução do dual é: λ 1 = 5 4 e λ 2 = 5 6, que juntamente com a solução do primal: x 1 = 35, x 2 = 200, x 3 = 0, satisfazem às folgas complementares, dado que µ 1 = 0, µ 2 = 0, µ 3 = 1 4 ; Então, tais soluções são ótimas e o valor da função objetivo é: z = 35 + 200 = 235 = g(λ) = 108 5 4 + 120 5 6 = 235; Thiago Queiroz (IMTec) Parte 5 1/2016 25 / 29
Substituindo µ T = c T λ T A nas folgas complementares µ T x = 0, obtemos (c T λ T A)x = 0 ou c T x = λ T Ax; Note que Ax = b, para x factível fornece f (x) = c T x = λ T b = g(λ); Propriedade 13. (dualidade forte) As soluções x P e λ D são ótimas, primal e dual respectivamente, se e somente se f (x ) = g(λ ). Propriedade 14. O vetor multiplicador simplex na solução ótima primal λ T = c T B B 1 é uma solução ótima dual. Note que o vetor multiplicador simplex é uma solução dual factível e os objetivos primal e dual: g(λ) = λ T b = c T B B 1 b = c T B x B + c T N x N = f (x); Ou seja, os objetivos são iguais; Lembre que uma solução básica primal é: x B = B 1 b e x N = 0. Thiago Queiroz (IMTec) Parte 5 1/2016 26 / 29
Vejamos que a condição de otimalidade do primal garante que o vetor multiplicador seja uma solução dual factível. Pela definição λ T = c T B B 1, temos que: λ T B = c T B λt a j = c i para todo i básico; Isto é, as restrições duais associadas às variáveis básicas são satisfeitas com igualdade. Então, as folgas complementares associadas a tais restrições duais são nulas; Considerando as restrições de otimalidade satisfeitas, segue que os custos relativos: c j λ T a j 0 para todo j não-básico; Portanto, λ T a j c j para todo j não-básico, ou seja, todas as restrições duais associadas às variáveis não básicas (x N = 0) também são satisfeitas; Assim, todas as restrições duais são satisfeitas (as folgas complementares também) de forma que λ T = c T B B 1 é uma solução factível dual. De fato, ela é ótima. Thiago Queiroz (IMTec) Parte 5 1/2016 27 / 29
Exemplo. Seja o problema abaixo: (Primal) Minimizar z = x 1 + x 2 + x 3 4 5 x 1 + 2 5 x 2 = 108 3 sujeito a : 5 x 2 + 9 10 x 3 = 120 x 1 0, x 2 0, x 3 0. (19) Cuja solução ( ) ( ótima) é: x 1 = 35, x 2 = 200, x 3 = 0, a qual é básica: x1 108 x B = = e x x 2 200 N = (x 3 ) = (0); [ 5 A inversa da matriz básica associada é: B 1 = 4 5 ] 6 5 ; 0 3 Thiago Queiroz (IMTec) Parte 5 1/2016 28 / 29
Para obter a solução ótima do dual, basta calcular o vetor multiplicador simplex, conforme garante a Propriedade 14, isto é: λ T = c T B B 1. Calculando o vetor multiplicado [ simplex: 5 λ T = cb T B 1 = (1 1) 4 5 ] 6 5 = ( 5 5 0 4 6 ); 3 Portanto, a solução ótima do dual é: λ 1 = 5 4 e λ 2 = 5 6. Thiago Queiroz (IMTec) Parte 5 1/2016 29 / 29