Combinando inequações lineares A multiplicação por um número > 0 não altera uma inequação 2x x 5 4x 2x 0 2 2 A soma de duas inequações (com o mesmo sentido) produz uma inequação válida x 3x + x 3 2 + 5x 0 2 4x + 6x 3 2
Combinando inequações lineares A soma de duas inequações (com mesmo sentido) produz uma inequação válida 3x + x 3 x 2 + x 2 2 2 4x + 2x 5 { x R 2 :3x } { 2 } + x2 3, x + x2 2 x R : 4x + 2x2 5 2
Combinando inequações lineares Geometricamente: x 2 3 3x + x 2 3 x + x 2 2 4x + 2x 2 5 2 2 3 x 3
Combinando inequações lineares Também é possível multiplicar as inequações por números 0 antes de somá-las ( x x2 ) ( x x ) 2 3 + 3 + 2 2 7x + 3x 8 2 { x R 2 : 6x } { 2 } + 2x2 6, x + x2 2 x R : 7x + 3x2 8 4
Combinando inequações lineares Geometricamente: x 2 3 6x + 2x 2 6 x + x 2 2 7x + 3x 2 8 2 2 3 x 5
Dualidade em Programação Linear Prof.: Eduardo Uchoa http://www.logis.uff.br/~uchoa/poi 6
Dualidade em Programação Linear Considere o seguinte PL: max z = 4x + x + 5x + 3x 2 3 4 s. a x x x + 3x 2 3 4 5x + x + 3x + 8x 55 2 3 4 x + 2x + 3x 5x 3 2 3 4 x, x, x, x 0 2 3 4 7
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 2 3 4 s. a x x x + 3x 2 3 4 5x + x + 3x + 8x 55 2 3 4 x + 2x + 3x 5x 3 2 3 4 x, x, x, x 0 2 3 4 Chutando algumas soluções viáveis, temos: (0,0,,0) z* 5 (2,,,/3) z* 5 (3,0,2,0) z* 22 (0,4,0,5) z* 29 8
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. 9
Dualidade em Programação Linear Por exemplo, podemos notar que z* 275/3 = 9,66 Multiplicando a segunda restrição por 5/3: 25 x + 5 x2 + 5x3 + 40 x4 275 3 3 3 3 Para qualquer solução viável (x,x 2,x 3,x 4 ) temos: 25 5 40 275 4x + x2 + 5x3 + 3x4 x + x2 + 5x3 + x4 3 3 3 3 0
Dualidade em Programação Linear Por exemplo, podemos notar que z* 275/3 = 9,33 Multiplicando a segunda restrição por 5/3: 25 x + 5 x2 + 5x3 + 40 x4 275 3 3 3 3 Para qualquer solução viável (x,x 2,x 3,x 4 ) temos: FO 25 5 40 275 4x + x2 + 5x3 + 3x4 x + x2 + 5x3 + x4 3 3 3 3 Esta desigualdade vale para a solução ótima. Logo z* 275/3.
Dualidade em Programação Linear Um limite superior melhor pode ser obtido somando a segunda e a terceira restrições: Assim, z* 58. 4x + 3x + 6x + 3x 58 2 3 4 2
Dualidade em Programação Linear Um limite superior melhor pode ser obtido somando a segunda e a terceira restrições: Assim, z* 58. 4x + 3x + 6x + 3x 58 2 3 4 Agora, ao invés de usarmos tentativa e erro, vamos usar um procedimento geral pra encontrar o menor limite superior possível. 3
Dualidade em Programação Linear O procedimento geral consiste em multiplicar cada restrição por um multiplicador 0 y 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 4
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 2 3 2 3 2 2 3 3 2 3 4 2 3 Na primeira tentativa, usamos y = 0, y 2 = 5/3, y 3 = 0 No segunda tentativa, usamos y = 0, y 2 =, y 3 = 5
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 2 3 2 3 2 2 3 3 2 3 4 2 3 para obter um limite superior para a FO z = 4x + x + 5x + 3 x. 2 3 4 6
Dualidade em Programação Linear Isso só é possível se o coeficiente de cada x em y + 5y y x + y + y + 2y x + y + 3y + 3y x ( ) ( ) ( ) ( ) 2 3 2 3 2 2 3 3 + 3y + 8y2 5y3 x4 y + 55y2 + 3y3 for ao coeficiente correspondente da FO z = 4x + x + 5x + 3 x. 2 3 4 Logo, y + 5y y 4 2 3 y + y + 2y 2 3 y + 3y + 3y 5 2 3 3y + 8y 5y 3 2 3 7
Dualidade em Programação Linear Se escolhermos multiplicadores y i 0 que satisfaçam y + 5y y 4 2 3 y + y + 2y 2 3 y + 3y + 3y 5 2 3 3y + 8y 5y 3 2 3 podemos concluir que toda solução viável (x,x 2,x 3,x 4 ) satisfaz 4x + x + 5x + 3x y + 55y + 3 y. 2 3 4 2 3 8
Dualidade em Programação Linear Em particular, a desigualdade 4x + x + 5x + 3x y + 55y + 3y 2 3 4 2 3 é satisfeita pela solução ótima. Logo, z* y + 55y + 3y 2 3 9
Dualidade em Programação Linear Obviamente, queremos o menor limite superior possível para o valor z* da FO. Dessa forma, chegamos ao seguinte PL: min w = y + 55y + 3y 2 3 s. a y + 5y y 4 2 3 y + y + 2y 2 3 y + 3y + 3y 5 2 3 3y + 8y 5y 3 2 3 y, y, y 0 2 3 20
Dualidade em Programação Linear Obviamente, queremos o menor limite superior possível para o valor z* da FO. Dessa forma, chegamos ao seguinte PL: min w = y + 55y + 3y 2 3 s. a y + 5y y 4 2 3 y + y + 2y 2 3 y + 3y + 3y 5 2 3 3y + 8y 5y 3 2 3 y, y, y 0 2 3 Este problema é chamado de dual do problema original. O problema original é chamado de primal. 2
Dualidade em Programação Linear min w = y + 55y + 3y 2 3 s. a y + 5y y 4 2 3 y + y + 2y 2 3 y + 3y + 3y 5 2 3 3y + 8y 5y 3 2 3 y, y, y 0 2 3 Suponha que por tentativa e erro encontramos a solução viável (,0,6) do dual com w=29. Logo, z* 29. Mas á sabíamos que z* 29. Logo, z*=29 e a solução (0,4,0,5) do problema original (primal) é ótima! 22
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 = = S. a a x b i =, 2,..., m i i x 0 =,2,..., n 23
Definição geral de PL dual Primal: max z = n = n = c x S. a a x b i =, 2,..., m i i x 0 =,2,..., n Dual: min w = m i= m i= i i S. a a y c =, 2,..., n i i y 0 i =, 2,..., m i b y 24
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 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. 25
Propriedades do PL dual Teorema O dual do dual é o primal. 26
Prova do Teorema n m max c x min bi yi = i= n m P = S. a ai x bi i =, 2,..., m D( P) = S. a ai yi c =,2,..., n = i= x 0, 2,..., yi 0 i,2,..., m = n = 27
Prova do Teorema m m min bi yi max ( bi ) yi i= i= m m D( P) = S. a ai yi c =, 2,..., n = S. a ( ai ) yi c =,2,..., n i= i= yi 0 i =, 2,..., m yi 0 i =, 2,..., m 28
Prova do Teorema m n max ( b ) min ( ) i yi c x i= = m n D( P) = S. a ( ai ) yi c =, 2,..., n D( D( P)) = S. a ( ai ) x bi i =, 2,..., m i= = yi 0 i =, 2,..., m x 0 =, 2,..., n 29
Prova do Teorema n n min ( c ) x max c x = = n n D( D( P)) = S. a ( ai ) x bi i =, 2,..., m = P = S. a ai x bi i =, 2,..., m = = x 0 =, 2,..., n x 0 =, 2,..., n 30
É igualmente válido definir o primal como sendo um problema de minimização Primal: min z = m i= m i= b y i i S. a a y c =,2,..., n i i y 0 i =,2,..., m i Dual: max w = n = n = S. a a x b i =, 2,..., m i i x 0 =,2,..., n c x 3
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 i= m i= b y i i S. a a y c =,2,..., n i i y 0 i =,2,..., m i max w = n = n = S. a a x b i =, 2,..., m i i x 0 =,2,..., n c x 32
Propriedades do PL dual Teorema da dualidade fraca Se o primal for um PL de maximização que tem uma solução viável x com valor z e o seu dual tem solução viável y com valor w, então z w. 33
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. i i i i i i = = i= i= = i= Em particular, se o primal e o dual tiverem soluções ótimas * * z w. x * e y *, 34
Versão minimização do Teorema Teorema da dualidade fraca Se o primal for um PL de minimização que tem uma solução viável x com valor z e o dual tem solução viável y com valor w, então z w. 35
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. 36
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. 37
É possível que tanto o primal quanto o dual seam inviáveis Exemplo: max z = 2x x min w = y 2y 2 2 S. a x x S. a y y 2 2 2 x + x 2 y + y 2 2 x, x 0 y, y 0 2 2 38
Relações entre o primal e o dual PRIMAL Ótimo Inviável Ilimitado Ótimo DUAL Inviável Ilimitado Possível Impossível 39
Exemplo de aplicação de dualidade: prova dos 9 do Simplex Imagine que resolvemos o seguinte PL pelo Simplex maximizar z = 4,0 x + 6,0 x 2 Sueito a,5 x + 4,0 x 2 24 3,0 x +,5 x 2 2,0 x +,0 x 2 8 x, x 2 0 40
O dicionário final é: 24 2 3 x2 = x3 + x5 5 5 5 2 3 39 x = x + x 5 5 0 6 2 8 x = + x3 x5 5 5 5 208 4 4 z = x x 5 5 5 4 3 5 3 5 A solução associada: x =3,2 x 2 = 4,8 z = 4,6 Queremos verificar se não houve nenhum erro, ou sea, que essa solução é realmente viável e ótima. 4
Dualidade em Programação Linear Verificar se a solução é viável é fácil Como verificar se a solução é ótima? 4/5 (,5 x + 4,0 x 2 24) 0 (3,0 x +,5 x 2 2) 4/5 (,0 x +,0 x 2 8) Não é possível existir solução viável com z > 4,6. Logo, x = 3,2, x 2 = 4,8 é ótima! 4 x + 6 x 2 4,6 42
Dualidade em Programação Linear Geometricamente x al,2x + 3,2x 2 9,2 2,8x + 2,8x 2 22,4 4x + 6x 2 4,6 5 x mad 43
A solução dual ótima (4/5,0,4/5) que permite provar a otimalidade está escondida no dicionário final! 24 2 3 x2 = x3 + x5 5 5 5 2 3 39 x = x + x 5 5 0 6 2 8 x = + x3 x5 5 5 5 208 4 4 z = x x 5 5 5 4 3 5 3 5 44
A solução dual ótima (4/5,0,4/5) que permite provar a otimalidade está escondida no dicionário final! 24 2 3 x2 = x3 + x5 5 5 5 2 3 39 x = x + x 5 5 0 6 2 8 x = + x3 x5 5 5 5 208 4 4 z = x x 5 5 5 4 3 5 3 5 A mágica será explicada nas próximas aulas. O importante agora é saber que quando se resolve um PL pelo Simplex, seu dual também está sendo resolvido. 45
Teorema das folgas complementares * * Sea 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 i = y ( b a x ) = 0 i =,, m m * * e ( ai yi - c ) x = 0 =,, n. i= 46
Teorema das folgas complementares * * Sea 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 i = y ( b a x ) = 0 i =,, m m * * e ( ai yi - c ) x = 0 =,, n. i= 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 47
Teorema das folgas complementares * * Sea 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 i = y ( b a x ) = 0 i =,, m m * * e ( ai yi - c ) x = 0 =,, n. i= Excesso da restrição 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 48
Implicação do Teorema das folgas complementares Uma solução primal viável x *, x 2 *,..., x n * é ótima se e somente se existem números y *, y 2 *,..., y m * tais que: m i= i= a y = c sempre que x > 0 * * i i n * * i = 0 sempre que i < i = e que seam dual viáveis, i.e.: m y a x b a y c =,2,..., n * i i y 0 i =,2,..., m. * i () (2) 49
Exemplo de aplicação de dualidade: teste de otimalidade de solução obtida por chute * * * * * * x = 2, x2 = 4, x3 = 0, x4 = 0, x5 = 7, x6 = 0 é uma solução ótima para o PL? max z = 8x 7x + 2x + 5x + 8x 2 3 4 6 s. a 2x 6x + 2x + 7x + 3x + 8x 2 3 4 5 6 3x x + 4x 3x + x + 2x 2 2 3 4 5 6 8x 3x + 5x 2x + 2x 4 2 3 4 6 4x + 8x + 7x x + 3x 3 4 5 6 5x + 2x 3x + 6x 2x x 5 2 3 4 5 6 x, x, x, x, x, x 0 2 3 4 5 6 50
Teorema das folgas complementares Nesse caso, em () teremos: 2y 3y + 8y + 4y + 5y = 8 * * * * * 2 3 4 5 * * * * 2 3 5 * * * * 2 4 5 * y2 * y5 6y y 3y + 2y = 7 3y + y y 2y = 0 = 0 = 0 5
Teorema das folgas complementares Resolver um sistema 3 x 3: 2y + 8y + 4y = 8 * * * 3 4 * * y3 * * y4 6y 3 = 7 3y = 0 52
Teorema das folgas complementares 2y 3y + 8y + 4y + 5y = 8 * * * * * 2 3 4 5 * * * * 2 3 5 * * * * 2 4 5 * y2 * y5 6y y 3y + 2y = 7 3y + y y 2y = 0 Dado que a solução (/3, 0, 5/3,, 0) satisfaz (2), ela é dual viável (e ótima) e a solução primal x *, x 2 *,..., x 6* é ótima. = 0 = 0 53
Teorema das folgas complementares x = 0, x = 2, x = 0, x = 7, x = 0 * * * * * 2 3 4 5 é uma solução ótima para o PL? max z = 8x 9x + 2x + 4x + x 2 3 4 5 s. a 2x 3x + 4x + x + 3x 2 3 4 5 x + 7x + 3x 2x + x 2 3 4 5 5x + 4x 6x + 2x + 3x 22 2 3 4 5 x, x, x, x, x 0 2 3 4 5 54
Teorema das folgas complementares Em () teremos: 3y + 7y + 4y = 9 * * * 2 3 * * * 2 3 * y2 y 2y + 2y = 4 = 0 55
Teorema das folgas complementares Resolver um sistema 2 x 2: 3y + 4y = 9 y * * 3 * * y3 + 2 = 4 56
Teorema das folgas complementares 3y + 7y + 4y = 9 * * * 2 3 * * * 2 3 * y2 y 2y + 2y = 4 = 0 Dado que a solução única desse sistema (7/5,0,3/0) não é dual viável, a solução proposta não é ótima. 57
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 2 2 S. a x x S. a x + x 2 2 x + x = 4 x + x 4 2 2 x, x 0 x x 4 2 2 x, x 0 2 58
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 2 3 S. a y + y y 2 2 3 y + y y 2 3 y, y, y 0 2 3 59
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 2 3 S. a y + y y 2 2 3 y + y y 2 3 y, y, y 0 2 3 60
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 2 S. a y + y 2 y y 2 2 + y y 2 0 irrestrito 6
É 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 Variáveis 0 c Restrições irrestrita = c 62
É 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 Variáveis 0 c Restrições irrestrita = c 63
OBSERVAÇÃO Este material refere-se às notas de aula do curso TEP7 (Pesquisa Operacional I) da Universidade Federal Fluminense (UFF) e não pode ser reproduzido sem autorização prévia do autor. Quando autorizado, seu uso é exclusivo para atividades de ensino e pesquisa em instituições sem fins lucrativos. 64