Investigação Operacional- 2009/10 - Programas Lineares 14 A Dualidade em Programação Linear Para melhor ilustrar este conceito vamos estudar dois problemas intimamente relacionadas: o problema da dona de casa que quer alimentar a sua família da forma mais económica possível, tendo o cuidado de incluir na alimentação quantidades adequadas de vitaminas A e C e, por outro lado, o problema do fabricante de comprimidos de vitaminas que quer convencer a dona de casa a comprar os seus comprimidos em vez de se preocupar com a qualidade da alimentação. Primeiro problema: Uma dona de casa está a tentar gastar o mínimo possível para, com 6 alimentos básicos, obter os mínimos de vitamina A e C necessários por dia. A composição dos alimentos em termos destas vitaminas, assim como os seus custos por quilo estão resumidos no quadro seguinte: No de unidades de vitamina por KG Alimento 1 2 3 4 5 6 requisitos míninos Vitamina A 1 0 2 2 1 2 9 Vitamina C 0 1 3 1 3 2 19 custo/Kg 35 30 60 50 27 22 A dona de casa vai comprar quantidades de alimentos necessários para suprir os mínimos diários de vitamina A e C ao menor preço possível. As variáveis de decisão deste problema vão ser as quantidades de alimentos a adquirir. Seja xi a quantidade do alimento i. Obtém-se o seguinte PL: Min z = 35x1 + 30x2 + 60x3 + 50x4 + 27x5 + 22x6 s. a. x1 + 2x3 + 2x4 + x5 + 2x6 9 x2 + 3x3 + x4 + 3x5 + 2x6 19 x1 0; x2 0; x3 0; x4 0; x5 0; x6 0 Segundo problema Por sua vez, o fabricante de vitaminas vai convencer a dona de casa a comprar as suas pastilhas em vez dos alimentos. Como a dona de casa é muito económica ele tem que a convencer que as pastilhas são mais baratas que os alimentos. Seja y1 o preço duma unidade de vitamina A em forma de pílula e y2 o preço de uma unidade de vitamina C em forma de pílula. Como, por exemplo, o alimento 5 fornece 1 unidade de vitamina A e 3 de vitamina C e custa 27 u.m. então deve ser y1 + 3y2 27 . E o mesmo se deve passar com os outros alimentos. Como a dona de casa só vai comprar as pastilhas necessárias aos requisitos mínimos diários de vitaminas, as vendas serão: v(y) = 9y1 + 19y2 . Está será a função objectivo do ponto de vista do vendedor que quer maximizar as suas vendas. Investigação Operacional- 2009/10 - Programas Lineares 15 Obtém-se o seguinte PL para formalizar o problema do vendedor de pastilhas: Max v(y) = 9y1 + 19y2 s. a. y1 35 y2 30 2y1 + 3y2 60 2y1 + y2 50 y1 + 3y2 27 2y1 + 2y2 22 y1 0 0; y2 Temos assim dois problemas que se articulam do seguinte modo: Min z = cT x s. a. Max v = bT y Ax x AT y s. a. b 0 y c 0 A um dos problemas chama-se primal e ao outro dual. Diz-se que os dois problemas são duais ou que os problemas são duais um do outro. Vamos agora resolver ambos os problemas para vermos se encontramos alguma relação entre as soluções. Primeiro Problema Inserindo variáveis de afastamento, pode-se escrever o quadro inicial: x1 x2 x3 x4 x5 x6 x7 x8 1 0 x1 9 1 0 2 2 1 2 x2 19 0 1 3 1 3 2 0 z 35 30 60 50 27 22 0 1 0 Antes de começar é necessário escrever a função objectivo só à custa das variáveis não básicas, ou seja, anular os valores correspondentes a x1 e x2 na última linha: x1 x2 x3 x4 x5 x6 x7 x8 1 0 x1 9 1 0 2 2 1 2 x2 19 0 1 3 1 3 2 0 1 0 0 100 50 98 108 35 30 z 885 x1 x2 x3 x4 x5 x6 x7 x8 1 1=2 1 1=2 0 2 0 1 44 0 19 x6 9=2 1=2 0 1 x2 10 1 1 1 1 54 0 8 58 z 399 1 30 Investigação Operacional- 2009/10 - Programas Lineares x6 2 x5 5 z 179 x1 x2 x3 3=4 1=4 3=4 16 x4 x5 x6 x7 x8 5=4 0 1 3=4 1=4 1=2 1=2 1=2 1=2 1 0 1=2 32 22 30 36 0 0 3 1=2 8 Temos então a solução do problema: x1 = x2 = x3 = x4 = 0; x5 = 5; x6 = 2 a que corresponde um valor para z de 179. Ou seja, a dieta mais económica deve incluir 5 Kg do alimento 5 e 2 Kg do alimento 6 a um custo de 179 unidades monetárias. Segundo Problema Como temos um problema só com duas variáveis podemos resolvê-lo gra…camente: Solução: y1 = 3; y2 = 8 a que corresponde um valor para v = 179: Ou seja o preço de cada unidade de vitamina A deve ser 3 unidades monetárias e o preço de cada unidade monetária de vitamina C deve ser de 8 unidades monetárias, a que corresponderá um volume de vendas de 179 unidades monetárias. Neste exemplo conbstata-se que o valor da função objectivo é igual para as soluções óptimas de ambos os problemas. Como veremos mais à frente, esta é uma característica que se veri…ca sempre que resolvem pares de problemas duais com solução. Investigação Operacional- 2009/10 - Programas Lineares 17 Regras para escrever o dual Pôr o problema na forma de um dos anteriores. - Se a função objectivo for minimizada as restrições devem ser de maior ou igual; - Se a função objectivo for maximizada as restrições devem ser de menor ou igual; De notar que a cada coluna da matriz A corresponde uma variável no primal. Como no dual trabalhamos com AT , as colunas passam a linhas e a cada linha corresponde uma restrição. Pode-se então dizer que: A cada restrição do primal corresponde uma variável do dual e a cada variável do primal corresponde uma restrição do dual. Como a cada restrição de desigualdade por sua vez corresponde uma variável de afastamento, então ode-se dizer que a cada variável do primal corresponde uma variável de afstamento do dual e a cada variável do dual corresponde uma variável de afastamento do primal. Se tivermos uma restrição de igualdade ela pode ser desdobrada em duas desigualdades (a = b () (a b^a b) () (a b^ a b)) : Passando ao dual depois de fazer esta transformação veri…ca-se que a variável correspondente a uma restrição de igualdade é sem restrição de sinal. Do mesmo modo, se uma variável for sem restrição de sinal a restrição correspondente será de igualdade. Propriedades dos problemas duais PRIMAL DUAL Min z = cT x Max v = bT y s. a Ax x AT y s. a b 0 y c 0 1. O dual do dual é o primal. 2. Seja x uma solução admissível do primal e y uma solução admissível do dual. Então: z(x) v(y) Demonstração: (Ax b^y 0) =) y T Ax yT b ^ yT A z(x) cT =) y T Ax yT x =) y T b v(y) 3. O valor da f. o. do primal é um limite superior para o óptimo da f. o. do dual. cT x =) Investigação Operacional- 2009/10 - Programas Lineares 18 4. O valor da f. o. do dual é um limite inferior para o óptimo da f.o. do primal. 5. Se o primal é ilimitado inferiormente não existe nenhum limite inferior para a f. o. e por isso o dual não tem solução admissível. 6. Se o dual é ilimitado superiormente não existe limite superior para o valor da f. o. e por isso o primal não tem solução admissível 7. Se um dos problemas não tem solução admissível, o outro só é ilimitado se tiver alguma solução admissível, quer isto dizer que podem ambos os problemas não ter solução admissível. 8. Se z(x) é solução admissível do primal e v(y) é solução admissível do dual e z(x) = v(y) então x é solução óptima do primal e y é solução óptima do dual. Demonstração: z(x) v(y) para todo o x que seja solução admissível do primal. Por hipótese z(x) = v(y) logo z(x) z(x) para todo o x que seja solução admissível do primal. Então x é solução óptima do primal. Do mesmo modo se mostra que y é solução óptima do dual. 9. Num par de problemas primal-dual se um deles tem uma solução óptima o outro também tem e, além disso, os valores das f.o. são iguais. Demonstração: Seja A uma matrix m n. Suponhamos que o primal tem uma solução óptima admissível. Seja B a base associada ao vector xI . O vector dos custos actualizados é dado por cT = cT cTI B 1 A cTI B 1 A 0 ( porque o problema é de minimizar). Ou seja c. Além disso a função objectico vale cTI B 1 b. De…nindo y T = cTI B temos que y T A 1 c e v(y) = y T b = cTI B 1 b = f. o. primal. Pelo número anterior então y é solução óptima do dual. Considere-se o problema primal: Minimizar z(x) = cTI xI + cTJ xJ sujeito a BxI + DxJ = b xI 0; xJ 0 O seu dual pode ser escrito: Maximizar v(y) = y T b sujeito a yT B cTI yT D cTJ y sem restrição Investigação Operacional- 2009/10 - Programas Lineares 19 A solução básica do primal correspondente à base B é dada por: xJ = 0 e xI = B 1 b e esta base corresponde a uma solução admissível se e só se xI = B 1 b T dual correspondente à base B é dada por y = se satis…zer as outras restrições, isto é se y T D cTI B 1 cTJ . T y B= cTI 0. A solução do e é solução admissível Ou seja, se cTJ cTI B 1 D 0, o que representa a condição de optimalidade do primal. Isto é, a qualquer solução admissível do primal, que não seja óptima, corresponde uma solução não admissível para o dual. Se a uma solução admissível do primal corresponder uma solução também admissível para o dual, então são ambas óptimas. Para este problema primal os custos actualizados em cada iteração são dados por: cT = cT cTI B 1 A = cT y T A . Ou seja cada componenete do vector c pode ser calculada do cTI B 1 A:j em que A:j reperesenta a coluna j da matriz A. Então seguinte modo: cj = cj os custos actualizados do problema primal são os valores das variáveis de afastamento do problema dual. Estes valores são designados por preços sombra das actividades do primal. TEOREMA DO EQUILÍBRIO (OU DA COMPLEMENTARIDADE) Um par de soluções admissíveis para os problemas primal-dual são óptimas se e só se as variáveis de afastamento do primal positivas correspondem a variáveis do dual nulas. Demonstração: Considere-se novamente o par de problemas primal-dual na forma: PRIMAL DUAL T Min z = c x s. a Max v = bT y Ax x b s. a 0 AT y y A variável do dual yi está associada à restrição do primal Ai: x de afastamento ui = Ai: x T restrição do dual y A:j c 0 bi , à qual se associa a variável bi . Por outro lado, a variável xj do primal está associada à cj à qual se associa a variável de afastamento wj = cj y T A:j . Sejam x e y um par de soluções admissíveis para os problemas primal e dual. Então, u = Ax b e w T = cT y T A são os vectores das variáveis de afastamento correspondentes. O teorema diz que: (ui = Ai: x bi > 0 =) y i = 0) ^ wj = cj y T A:j > 0 =) xj = 0 ou, escrevendo de outro modo: ui y i = (Ai: x bi )y i = 0 ^ wj xj = (cj y T A:j )xj = 0 para i = 1; :::; m e j = 1; :::; n: Investigação Operacional- 2009/10 - Programas Lineares Como se trata de soluções admissíveis sabe-se que Ai: x bi e y i 20 0 . Pode então multiplicar- se ambos os membros da 1a desigualdade por y i vindo y i Ai: x y i bi , mas por hipótese veri…ca-se o sinal de igualdade. Somando para todos os i virá : De modo análogo se conclui ser: X X Mas . X Então, y i Ai: x = X xj (yAi: ) = y i Ai: x = X X X y i bi = y i bi xj cj xj (yAi: ) X xj cj e, por isso, x e y são soluções óptimas dos respectivos problemas. Reciprocamente, como cT x = bT y = y T Ax , vem que cT x y T Ax = 0 donde P cj y T A:j xj = 0, mas, como se trata de uma soma de parcelas não negativas, todas elas terão de ser nulas, isto é, para cada j, cj y T A:j = 0 =) xj = 0. E do mesmo modo para as variáveis do dual. MÉTODO SIMPLEX DUAL Considere-se o PL: Minimizar z(x) = cT x sujeito a Ax = b x 0 Seja B uma base. B é uma base admissível para o primal se B 1 b dual se c cTI B 1 A 0 e é admissível para o 0 e é uma base óptima se ambos se realizarem. O método simplex começa com uma base admissível para o primal e percorre sempre soluções admissíveis correspondentes a vértices da região admissível até atingir o critério do óptimo (dual admissível). O método simplex-dual começa com uma solução admissível para o dual e percorre sempre soluções admissíveis adjacentes para o dual mas não admissíveis para o primal terminando quando atinge uma solução admissível para o primal que é a óptima. Cada iteração deste algoritmo reduz o número de inadmissibilidades do primal, mantendo a admissibilidade do dual. Investigação Operacional- 2009/10 - Programas Lineares 21 ALGORITMO 1. Escolher uma linha tal que br < 0 ( variável a sair da base); Se todos os br 0, termina. cs cj = min : arj < 0 ars arj Esta escolha tem o objectivo de manter todos os custos do primal não negativos ou seja 2. Escolher o pivot ars tal que manter o problema dual admissível. Se todos os arj 3. Efectuar a pivotagem. 4. Voltar a 1. 0, o problema não tem solução.