Combinando inequações lineares A multiplicação por um número > 0 não altera uma inequação 2x x 5 4x 2x 10 1 2 1 2 A soma de duas inequações (com o mesmo sentido) produz uma inequação válida x 3x x 3 1 2 5x 10 1 2 4x 6x 13 1 2 1
Combinando inequações lineares A soma de duas inequações (com mesmo sentido) produz uma inequação válida 3x x 3 x 1 2 x 1 2 1 2 2 4x 2x 5 x 2 :3x 2 1 x2 3, x1 x2 2 x : 4x1 2x2 5 2
Combinando inequações lineares Geometricamente: x 2 3 3x 1 + x 2 3 x 1 + x 2 2 4x 1 + 2x 2 5 2 1 1 2 3 x 1 3
Combinando inequações lineares Também é possível multiplicar as inequações por números 0 antes de somá-las 2 3x x 3 1 2 1 x x 2 1 2 1 2 7x 3x 8 x 2 : 6x 2 1 2x2 6, x1 x2 2 x : 7x1 3x2 8 4
Combinando inequações lineares Geometricamente: x 2 3 6x 1 + 2x 2 6 x 1 + x 2 2 7x 1 + 3x 2 8 2 1 1 2 3 x 1 5
Combinando inequações lineares Considere o PPL: Max z = 5x 1 + x 2 s.a. 3x 1 + x 2 3 x 1 + x 2 2 x 1, x 2 0 6
Combinando inequações lineares Considere o PPL: Max z = 5x 1 + x 2 s.a. 3x 1 + x 2 3 x 1 + x 2 2 x 1, x 2 0 x 2 3 2 1 1 2 3 x 1 7
Combinando inequações lineares Considere o PPL: Max z = 5x 1 + x 2 s.a. 3x 1 + x 2 3 x 1 + x 2 2 x 1, x 2 0 x 2 3 2 1 Solução ótima: x 1 = 1, x 2 = 0, z = 5 1 2 3 x 1 8
Combinando inequações lineares Considere o PPL: Max z = 5x 1 + x 2 s.a. 3x 1 + x 2 3 x 1 + x 2 2 x 1, x 2 0 O que acontece com a solução ótima se substituirmos todas as restrições por uma única que seja combinação delas? x 2 3 2 1 1 2 3 x 1 9
Combinando inequações lineares Considere o PPL: Max z = 5x 1 + x 2 s.a. 3x 1 + x 2 3 x 1 + x 2 2 x 1, x 2 0 O que acontece com a solução ótima se substituirmos todas as restrições por uma única que seja combinação delas? Vamos tomar por exemplo: x 2 3 2 1 2 3x x 3 1 2 1 x x 2 1 2 1 2 7x 3x 8 1 2 3 x 1 10
Combinando inequações lineares Novo PPL: Max z = 5x 1 + x 2 s.a. 7x 1 + 3x 2 8 x 1, x 2 0 11
Combinando inequações lineares Novo PPL: Max z = 5x 1 + x 2 s.a. 7x 1 + 3x 2 8 x 1, x 2 0 x 2 3 2 1 1 2 3 12
Combinando inequações lineares Novo PPL: Max z = 5x 1 + x 2 s.a. 7x 1 + 3x 2 8 x 1, x 2 0 x 2 3 2 Novos pontos extremos surgem e a solução ótima pode mudar. 1 1 2 3 13
Combinando inequações lineares Novo PPL: Max z = 5x 1 + x 2 s.a. 7x 1 + 3x 2 8 x 1, x 2 0 x 2 3 Novos pontos extremos surgem e a solução ótima pode mudar. No entanto, a observação interessante aqui é que cada coeficiente da nova restrição é maior ou igual ao coeficiente da função objetivo associado 2 1 1 2 3 14
Combinando inequações lineares Novo PPL: Max z = 5x 1 + x 2 s.a. 7x 1 + 3x 2 8 x 1, x 2 0 Assim: z = 5x 1 + x 2 7x 1 + 3x 2 8 x 2 3 2 Novos pontos extremos surgem e a solução ótima pode mudar. Logo: z 8 1 1 2 3 15
Combinando inequações lineares Novo PPL: Max z = 5x 1 + x 2 s.a. 7x 1 + 3x 2 8 x 1, x 2 0 Assim: z = 5x 1 + x 2 7x 1 + 3x 2 8 x 2 3 2 Novos pontos extremos surgem e a solução ótima pode mudar. Logo: z 8 Em outras palavras, encontramos um limite superior para o custo ótimo do PPL original. 1 1 2 3 16
Combinando inequações lineares Conclusão: dado um PPL de Maximização na forma canônica. Se substituirmos as restrições por uma combinação linear destas onde o coeficiente de cada variável é maior ou igual ao coeficiente da função objetivo associado, encontramos um limite superior para o custo ótimo do PPL original. Resultado semelhante pode ser derivado quando um problema é de minimização. Neste caso, encontraríamos um limite inferior.
Dualidade em Programação Linear Prof.: Marcos Roboredo http://www.logis.uff.br/~roboredo/po1.html 18
Dualidade em Programação Linear Considere o seguinte PL: max z 4x x 5x 3x 4 s. a x x x 3x 1 4 5x x 3x 8x 55 4 x 2x 3x 5x 3 4 x, x, x, x 0 4 19
Dualidade em Programação Linear Sem resolver pelo Simplex, vamos estimar o valor ótimo z* da FO Para conseguir um bom limite inferior para z*, precisamos apenas de uma boa solução viável max z 4x x 5x 3x 4 s. a x x x 3x 1 4 5x x 3x 8x 55 4 x 2x 3x 5x 3 4 x, x, x, x 0 4 Chutando algumas soluções viáveis, temos: (0,0,1,0) z* 5 (2,1,1,1/3) z* 15 (3,0,2,0) z* 22 (0,14,0,5) z* 29 20
Dualidade em Programação Linear Este método de tentativa e erro é muito inferior à abordagem sistemática do Simplex Mesmo se encontrarmos por sorte a solução ótima, não teremos como provar que ela é mesmo ótima No entanto, tentaremos encontrar limites superiores para z* também por tentativa e erro, através de combinações de inequações. 21
Dualidade em Programação Linear limites superiores para z* podem ser encontrados combinando as inequações, como vimos na introdução desta aula e veremos com mais detalhes agora. z Limite superior z* Limite inferior 22
Dualidade em Programação Linear Exemplo 1: z* 275/3 = 91,66 Multiplicando 5 x 1 + x 2 + 3 x 3 + 8 x 4 55 por 5/3: Logo: F.O. = 25 x1 5 x 40 275 2 5x3 x4 3 3 3 3 25 5 40 275 4x1 x2 5x3 3x4 x1 x2 5x3 x4 3 3 3 3 23
Dualidade em Programação Linear Exemplo 2: z* 58 Somando 5 x 1 + x 2 + 3 x 3 + 8 x 4 55 com x 1 + 2 x 2 + 3 x 3 5 x 4 3: 4x 3x 6x 3x 58 4 Logo, F.O. = 4 x 1 + x 2 + 5 x 3 + 3 x 4 4x 3x 6x 3x 58 4 Existe um procedimento para achar o melhor limite! 24
Dualidade em Programação Linear O procedimento geral consiste em multiplicar cada restrição por um multiplicador 0 y 1 para a primeira restrição y 2 para a segunda restrição y 3 para a terceira restrição e depois somar as desigualdades resultantes 25
Dualidade em Programação Linear Este procedimento gera a seguinte desigualdade: 5 2 3 3 3y 8y 5y x y 55y 3y y y y x y y y x y y y x 1 2 3 4 No nosso exemplo 1, usamos y 1 = 0, y 2 = 5/3, y 3 = 0 No nosso exemplo 2, usamos y 1 = 0, y 2 = 1, y 3 = 1 26
Dualidade em Programação Linear Queremos usar a inequação 5 2 3 3 3y 8y 5y x y 55y 3y y y y x y y y x y y y x 1 2 3 4 para obter um limite superior para a FO z 4x x 5x 3 x. 4 27
Dualidade em Programação Linear Para um limite válido, y 1, y 2, y 3, y 4 0 e F.O. = 4 x 1 + x 2 + 5 x 3 + 3 x 4 5 2 3 3 3y 8y 5y x y 55y 3y y y y x y y y x y y y x 1 2 3 4 Logo, y 5y y 4 y y 2y 1 y 3y 3y 5 3y 8y 5y 3 28
Dualidade em Programação Linear Chegamos ao seguinte PL: min w y 55y 3y s. a y 5y y 4 y y 2y 1 y 3y 3y 5 3y 8y 5y 3 y, y, y 0 Este problema é chamado de dual do problema original. O problema original é chamado de primal. 29
Dualidade em Programação Linear max z 4x x 5x 3x 4 s. a x x x 3x 1 4 5x x 3x 8x 55 4 x 2x 3x 5x 3 4 x, x, x, x 0 4 PRIMAL DUAL min w y 55y 3y s. a y 5y y 4 y y 2y 1 y 3y 3y 5 3y 8y 5y 3 y, y, y 0 30
Dualidade em Programação Linear min w y 55y 3y s. a y 5y y 4 y y 2y 1 y 3y 3y 5 3y 8y 5y 3 y, y, y 0 Suponha que por tentativa e erro encontramos a solução viável (11,0,6) do dual com w=29. Logo, z* 29. Mas já sabíamos que z* 29. Logo, z*=29 e a solução (0,14,0,5) do problema original (primal) é ótima! 31
Definição geral de PL dual Dado um PL qualquer (o primal), existe outro PL que é o seu dual. Suponha que esse PL é um problema de maximização na forma canônica: n max z c x n j1 j1 j j S. a a x b i 1,2,..., m ij j i x 0 j 1,2,..., n j 32
Definição geral de PL dual Primal: max z n j1 n j1 c x j j S. a a x b i 1,2,..., m ij j i x 0 j 1,2,..., n j Dual: min w m i1 m i1 i i S. a a y c j 1,2,..., n ij i j y 0 i 1,2,..., m i b y 33
Dualidade em Programação Linear O dual de um problema de maximização é um problema de minimização As m restrições primais estão em correspondência um-para-um com as m variáveis duais y i As n restrições duais estão em correspondência um-para-um com as n variáveis primais x j O coeficiente de cada variável na FO, primal ou dual, aparece no outro problema como lado direito da restrição correspondente A matriz A de coeficientes do primal aparece transposta no dual. 34
Exercícios de dualidade Encontre o dual dos seguintes PPL: a) max z 5x1 7x2 3x3 b) s. a 2x 3x 4x 240 1 2x 1x 3x 150 1x 80 x, x, x, 0 max z 2x 3x 1x s. a 2x 3x 1x 10 1x 2x 2x 8 1x 3x 5x 6 x, x, 0, x irrestrita 35
Propriedades do PL dual Teorema 1 O dual do dual é o primal. 36
Prova do Teorema 1 n m max cx j j min by i i j1 i1 n m P S. a aijx j bi i 1,2,..., m D( P) S. a aij yi c j j 1,2,..., n j1 i1 x 0 1,2,..., yi 0 i 1,2,..., m j j n 37
Prova do Teorema 1 m m min bi yi max ( bi ) yi i1 i1 m m D( P) S. a aij yi c j j 1,2,..., n S. a ( aij ) yi c j j 1,2,..., n i1 i1 yi 0 i 1,2,..., m yi 0 i 1,2,..., m 38
Prova do Teorema 1 m n max ( b) min ( ) i yi cj xj i1 j1 m n ( P) S. a ( aij ) yi c j j 1,2,..., n D( D( P)) S. a ( aij) x j bi i 1,2,..., m i1 j1 yi 0 i1,2,..., m x j 0 j 1,2,..., n 39
Prova do Teorema 1 n n min ( c j ) x j max c jx j j1 j1 n n D( D( P)) S. a ( aij ) x j bi i 1,2,..., m P S. a aijx j bi i 1,2,..., m j1 j1 x j 0 j 1,2,..., n x j 0 j 1,2,..., n 40
É igualmente válido definir o primal como sendo um problema de minimização Primal: min z m i1 m i1 b y i i S. a a y c j 1,2,..., n ij i j y 0 i 1,2,..., m i Dual: max w n j1 n j1 j S. a a x b i 1,2,..., m j ij j i x 0 j 1,2,..., n j c x 41
Propriedades do PL dual Teorema da dualidade fraca Se x é viável e tem valor z para um PL de maximização e y é viável e tem valor w para o seu dual, então z w. 42
Versão minimização do Teorema Teorema da dualidade fraca Se x é viável e tem valor z para um PL de minimização e y é viável e tem valor w para o seu dual, então z w. 43
Simetria da Dualidade Na verdade, temos um par de PLs na forma canônica, um de minimização, outro de maximização. Escolhendo um deles para ser o primal, o outro fica sendo o dual. min z m i1 m i1 b y i i S. a a y c j 1,2,..., n ij i j y 0 i 1,2,..., m i max w n j1 n j1 j S. a a x b i 1,2,..., m j ij j i x 0 j 1,2,..., n j c x 44
Prova do Teorema da dualidade fraca Para qualquer x viável para o primal e qualquer y viável para o dual: n n m m n m z c x ( a y ) x ( a x ) y b y w. j j ij i j ij j i i i j1 j1 i1 i1 j1 i1 * Em particular, se o primal e o dual tiverem soluções ótimas x e * * z w. y *, 45
Propriedades do PL dual Teorema da dualidade forte Se o primal tem solução ótima x* com valor z*, então o dual tem solução ótima y* com valor w* e z*=w*. Consequência: sempre é possível usar uma solução do dual para provar a que uma solução ótima do primal realmente é ótima. 46
Relações entre os PLs primal e Dual Pelo Teorema da dualidade fraca: Se o Primal for ilimitado, o dual é inviável. Se o dual for ilimitado, o primal é inviável. 47
É possível que tanto o primal quanto o dual sejam inviáveis Exemplo: max z 2x x min w y 2y 1 2 1 2 S. a x x 1 S. a y y 2 1 2 1 2 x x 2 y y 1 1 2 1 2 x, x 0 y, y 0 1 2 1 2 48
Relações entre o primal e o dual PRIMAL Ótimo Inviável Ilimitado DUAL Ótimo Inviável Ilimitado Possível Impossível 49
Teorema das folgas complementares * * Seja x viável para o primal e y viável para o dual. Ambas as soluções serão ótimas se e somente se: n * * i i ij j j1 y ( b a x ) 0 i 1,, m e m * * ( aij yi - c j ) x j 0 j 1,, n. i1 50
Teorema das folgas complementares * * Seja x viável para o primal e y viável para o dual. Ambas as soluções serão ótimas se e somente se: Folga da restrição i do primal n * * i i ij j j1 y ( b a x ) 0 i 1,, m e m * * ( aij yi - c j ) x j 0 j 1,, n. i1 Se a folga de uma restrição primal for > 0 => a variável dual correspondente = 0 Se uma variável dual >0 => a folga da restrição primal correspondente = 0 51
Teorema das folgas complementares * * Seja x viável para o primal e y viável para o dual. Ambas as soluções serão ótimas se e somente se: n * * i i ij j j1 y ( b a x ) 0 i 1,, m e m * * ( aij yi - c j ) x j 0 j 1,, n. i1 Excesso da restrição j do dual Se o excesso de uma restrição dual for > 0 => a variável primal correspondente = 0 Se uma variável primal >0 => o excesso da restrição dual correspondente = 0 52
Implicação do Teorema das folgas complementares Uma solução primal viável x 1 *, x 2 *,..., x n * é ótima se e somente se existem números y 1 *, y 2 *,..., y m * tais que: m i1 i1 a y c sempre que x 0 * * ij i j j n * * i 0 sempre que ij j i j1 e que sejam dual viáveis, i.e.: m y a x b a y c j 1,2,..., n * ij i j y 0 i 1,2,..., m. * i (1) (2) 53
Exemplo de aplicação de dualidade: teste de otimalidade de solução obtida por chute * * * * * * x1 2, x2 4, x3 0, x4 0, x5 7, x6 0 é uma solução ótima para o PL? max z 18x 7x 12x 5x 8x 4 6 s. a 2x 6x 2x 7x 3x 8x 1 4 5 6 3x x 4x 3x x 2x 2 4 5 6 8x 3x 5x 2x 2x 4 4 6 4x 8x 7x x 3x 1 1 3 4 5 6 5x 2x 3x 6x 2x x 5 4 5 6 x, x, x, x, x, x 0 4 5 6 54
Exemplo de aplicação de dualidade: teste de otimalidade de solução obtida por chute * * * * * * x1 2, x2 4, x3 0, x4 0, x5 7, x6 0 é uma solução ótima para o PL? max z 18x 7x 12x 5x 8x 4 6 s. a 2x 6x 2x 7x 3x 8x 1 4 5 6 3x x 4x 3x x 2x 2 4 5 6 8x 3x 5x 2x 2x 4 4 6 4x 8x 7x x 3x 1 1 3 4 5 6 5x 2x 3x 6x 2x x 5 4 5 6 x, x, x, x, x, x 0 4 5 6 55
Exemplo de aplicação de dualidade: teste de otimalidade de solução obtida por chute * * * * * * x1 2, x2 4, x3 0, x4 0, x5 7, x6 0 é uma solução ótima para o PL? max z 18x 7x 12x 5x 8x 4 6 s. a 2x 6x 2x 7x 3x 8x 1 4 5 6 3x x 4x 3x x 2x 2 4 5 6 8x 3x 5x 2x 2x 4 4 6 4x 8x 7x x 3x 1 1 3 4 5 6 5x 2x 3x 6x 2x x 5 4 5 6 x, x, x, x, x, x 0 4 5 6 Folga 0 Folga 1 Folga 0 Folga 0 Folga 1 56
Exemplo de aplicação de dualidade: teste de otimalidade de solução obtida por chute * * * * * * x1 2, x2 4, x3 0, x4 0, x5 7, x6 0 é uma solução ótima para o PL? max z 18x 7x 12x 5x 8x 4 6 s. a 2x 6x 2x 7x 3x 8x 1 4 5 6 3x x 4x 3x x 2x 2 4 5 6 8x 3x 5x 2x 2x 4 4 6 4x 8x 7x x 3x 1 1 3 4 5 6 5x 2x 3x 6x 2x x 5 4 5 6 x, x, x, x, x, x 0 4 5 6 Folga 0 Folga 1 Folga 0 Folga 0 Folga 1 y 2 = 0 y 5 = 0 57
Teorema das folgas complementares Queremos achar a solução dual ótima. Nesse caso, em (1) teremos: 2y 3y 8y 4y 5y 18 * * * * * 4 5 * * * * 5 * * * * 1 2 4 5 * y2 * y5 6y y 3y 2y 7 3y y y 2y 0 Note que não construímos as restrições associadas as variáveis x 3, x 4 e x 6 pois já sabemos que elas possuirão folga. 0 0 58
Teorema das folgas complementares Queremos achar a solução dual ótima. Nesse caso, em (1) teremos: 2y 3y 8y 4y 5y 18 * * * * * 4 5 * * * * 5 * * * * 1 2 4 5 * y2 * y5 6y y 3y 2y 7 3y y y 2y 0 Note que não construímos as restrições associadas as variáveis x 3, x 4 e x 6 pois já sabemos que elas possuirão folga. Além disso, consideramos as demais restrições como igualdade pois já sabemos que elas não possuirão folga. 0 0 59
Teorema das folgas complementares Nesse caso, em (1) teremos: 2y 3y 8y 4y 5y 18 * * * * * 4 5 * * * * 5 * * * * 1 2 4 5 * y2 * y5 6y y 3y 2y 7 3y y y 2y 0 0 0 Como y 2 = 0 e y 5 = 0, então... 60
Teorema das folgas complementares Resolver um sistema 3 x 3: 2y 8y 4y 18 * * * 1 3 4 * * 1 y3 * * 1 y4 6y 3 7 3y 0 61
Teorema das folgas complementares Resolver um sistema 3 x 3: 2y 8y 4y 18 * * * 1 3 4 * * 1 y3 * * 1 y4 6y 3 7 3y 0 Se este sistema tiver solução e esta for dual viável, a solução inicial do primal é realmente ótima 62
Teorema das folgas complementares 2y 3y 8y 4y 5y 18 * * * * * 4 5 * * * * 5 * * * * 1 2 4 5 * y2 * y5 6y y 3y 2y 7 3y y y 2y 0 Dado que a solução (1/3, 0, 5/3, 1, 0) satisfaz o sistema e ela é dual viável (verifique) e a solução primal x 1 *, x 2 *,..., x 6* é ótima. 0 0 63
Teorema das folgas complementares 2y 3y 8y 4y 5y 18 * * * * * 4 5 * * * * 5 * * * * 1 2 4 5 * y2 * y5 6y y 3y 2y 7 3y y y 2y 0 Note que além de provarmos que a solução inicial fornecida era ótima encontramos também a solução dual ótima. 0 0 64
Exercício x 0, x 2, x 0, x 7, x 0 * * * * * 4 5 é uma solução ótima para o PL? max z 8x 9x 12x 4x 11x 4 5 s. a 2x 3x 4x x 3x 1 4 5 x 7x 3x 2x x 1 4 5 5x 4x 6x 2x 3x 22 4 5 x, x, x, x, x 0 4 5 65
Como encontrar o dual de um PL que não está na forma canônica? Uma possibilidade é converter para a forma canônica max z 2x x max z 2x x 1 2 1 2 S. a x x 1 S. a x x 1 1 2 1 2 x x 4 x x 4 1 2 1 2 x, x 0 x x 4 1 2 1 2 x, x 0 1 2 69
Como encontrar o dual de um PL que não está na forma canônica? O dual então fica: min w y 4y 4y S. a y y y 2 y y y 1 y, y, y 0 70
Como encontrar o dual de um PL que não está na forma canônica? As variáveis y2 e y3 podem ser substituídas por uma única variável irrestrita min w y 4y 4y S. a y y y 2 y y y 1 y, y, y 0 71
Como encontrar o dual de um PL que não está na forma canônica? O dual então é equivalente a: min w y 4y 1 2 S. a y y 2 y y 1 2 1 2 1 y y 2 1 0 irrestrito 72
É possível encontrar o dual de um PL que não está na forma canônica diretamente PRIMAL maximizar minimizar DUAL b i 0 Restrições b i 0 Variáveis = b i irrestrita 0 c j Restrições Variáveis 0 irrestrita c j = c j 73
É possível encontrar o dual de um PL que não está na forma canônica diretamente PRIMAL minimizar maximizar DUAL b i 0 Restrições b i 0 Variáveis = b i irrestrita 0 c j Restrições Variáveis 0 irrestrita c j = c j 74
Exercício: refazer o item b), agora utilizando a tabela de conversão max z 2x 3x 1x s. a 2x 3x 1x 10 1x 2x 2x 8 1x 3x 5x 6 x, x, 0, x irrestrita 75
Exercício Escreva o dual do problema abaixo e use o teoremas das folgas complementares para achar a solução dual ótima: maximizar z = 2 x 1 + x 2 Sujeito a 3 x 1 + x 2 9 x 1 + 3 x 2 12 x 1 + x 2 5 x 1, x 2 0 Solução ótima: x 1 = 2 x 2 = 3 z = 7 76
Exercício Escreva o dual do problema abaixo e use o teoremas das folgas complementares para achar a solução dual ótima: maximizar z = 2 x 1 x 2 Sujeito a 3 x 1 + x 2 9 x 1 + 3 x 2 12 x 1 + x 2 5 x 1, x 2 0 Solução ótima: x 1 = 3 x 2 = 0 z = 6 77