Você está na página 1de 8

Investigao Operacional- 2009/10 - Programas Lineares 14

A Dualidade em Programao Linear

Para melhor ilustrar este conceito vamos estudar dois problemas intimamente relacionadas:
o problema da dona de casa que quer alimentar a sua famlia da forma mais econmica
possvel, tendo o cuidado de incluir na alimentao 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 alimentao.

Primeiro problema:

Uma dona de casa est a tentar gastar o mnimo possvel para, com 6 alimentos bsicos,
obter os mnimos de vitamina A e C necessrios por dia. A composio dos alimentos em
termos destas vitaminas, assim como os seus custos por quilo esto resumidos no quadro
seguinte:

No de unidades de vitamina por KG requisitos


Alimento 1 2 3 4 5 6 mninos
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 necessrios para suprir os mnimos
dirios de vitamina A e C ao menor preo possvel. As variveis de deciso deste problema
vo ser as quantidades de alimentos a adquirir. Seja xi a quantidade do alimento i. Obtm-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 econmica ele tem que a
convencer que as pastilhas so mais baratas que os alimentos. Seja y1 o preo duma unidade
de vitamina A em forma de plula e y2 o preo de uma unidade de vitamina C em forma de
plula. Como, por exemplo, o alimento 5 fornece 1 unidade de vitamina A e 3 de vitamina
C e custa 27 u.m. ento 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 necessrias aos requisitos
mnimos dirios de vitaminas, as vendas sero: v(y) = 9y1 + 19y2 . Est ser a funo
objectivo do ponto de vista do vendedor que quer maximizar as suas vendas.
Investigao Operacional- 2009/10 - Programas Lineares 15

Obtm-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; y2 0

Temos assim dois problemas que se articulam do seguinte modo:

Min z = cT x Max v = bT y
s. a. Ax b s. a. AT y c
x 0 y 0

A um dos problemas chama-se primal e ao outro dual. Diz-se que os dois problemas so
duais ou que os problemas so duais um do outro.

Vamos agora resolver ambos os problemas para vermos se encontramos alguma relao entre
as solues.

Primeiro Problema

Inserindo variveis de afastamento, pode-se escrever o quadro inicial:

x1 x2 x3 x4 x5 x6 x7 x8
x1 9 1 0 2 2 1 2 1 0
x2 19 0 1 3 1 3 2 0 1
z 35 30 60 50 27 22 0 0

Antes de comear necessrio escrever a funo objectivo s custa das variveis no bsicas,
ou seja, anular os valores correspondentes a x1 e x2 na ltima linha:

x1 x2 x3 x4 x5 x6 x7 x8
x1 9 1 0 2 2 1 2 1 0
x2 19 0 1 3 1 3 2 0 1
z 885 0 0 100 50 98 108 35 30

x1 x2 x3 x4 x5 x6 x7 x8
x6 9=2 1=2 0 1 1 1=2 1 1=2 0
x2 10 1 1 1 1 2 0 1 1
z 399 54 0 8 58 44 0 19 30
Investigao Operacional- 2009/10 - Programas Lineares 16

x1 x2 x3 x4 x5 x6 x7 x8
x6 2 3=4 1=4 3=4 5=4 0 1 3=4 1=4
x5 5 1=2 1=2 1=2 1=2 1 0 1=2 1=2
z 179 32 22 30 36 0 0 3 8

Temos ento a soluo 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 econmica deve incluir 5 Kg do alimento 5 e 2 Kg do alimento 6 a um


custo de 179 unidades monetrias.

Segundo Problema

Como temos um problema s com duas variveis podemos resolv-lo gracamente:

Soluo: y1 = 3; y2 = 8 a que corresponde um valor para v = 179:

Ou seja o preo de cada unidade de vitamina A deve ser 3 unidades monetrias e o preo de
cada unidade monetria de vitamina C deve ser de 8 unidades monetrias, a que correspon-
der um volume de vendas de 179 unidades monetrias.

Neste exemplo conbstata-se que o valor da funo objectivo igual para as solues ptimas
de ambos os problemas. Como veremos mais frente, esta uma caracterstica que se verica
sempre que resolvem pares de problemas duais com soluo.
Investigao Operacional- 2009/10 - Programas Lineares 17

Regras para escrever o dual

Pr o problema na forma de um dos anteriores.


- Se a funo objectivo for minimizada as restries devem ser de maior ou igual;

- Se a funo objectivo for maximizada as restries devem ser de menor ou igual;

De notar que a cada coluna da matriz A corresponde uma varivel no primal. Como no dual
trabalhamos com AT , as colunas passam a linhas e a cada linha corresponde uma restrio.

Pode-se ento dizer que: A cada restrio do primal corresponde uma varivel do dual e a
cada varivel do primal corresponde uma restrio do dual.

Como a cada restrio de desigualdade por sua vez corresponde uma varivel de afastamento,
ento ode-se dizer que a cada varivel do primal corresponde uma varivel de afstamento do
dual e a cada varivel do dual corresponde uma varivel de afastamento do primal.

Se tivermos uma restrio 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
transformao verica-se que a varivel correspondente a uma restrio de igualdade sem
restrio de sinal.

Do mesmo modo, se uma varivel for sem restrio de sinal a restrio correspondente ser
de igualdade.

Propriedades dos problemas duais

PRIMAL DUAL
Min z = cT x Max v = bT y
s. a Ax b s. a AT y c
x 0 y 0

1. O dual do dual o primal.

2. Seja x uma soluo admissvel do primal e y uma soluo admissvel do dual. Ento:

z(x) v(y)

Demonstrao:

(Ax b^y 0) =) y T Ax yT b ^ yT A cT =) y T Ax yT x =) y T b cT x =)

z(x) v(y)

3. O valor da f. o. do primal um limite superior para o ptimo da f. o. do dual.


Investigao 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 no existe nenhum limite inferior para a f. o. e


por isso o dual no tem soluo admissvel.

6. Se o dual ilimitado superiormente no existe limite superior para o valor da f. o. e


por isso o primal no tem soluo admissvel

7. Se um dos problemas no tem soluo admissvel, o outro s ilimitado se tiver alguma


soluo admissvel, quer isto dizer que podem ambos os problemas no ter soluo
admissvel.

8. Se z(x) soluo admissvel do primal e v(y) soluo admissvel do dual e z(x) = v(y)
ento x soluo ptima do primal e y soluo ptima do dual.
Demonstrao:

z(x) v(y) para todo o x que seja soluo admissvel do primal. Por hiptese
z(x) = v(y) logo z(x) z(x) para todo o x que seja soluo admissvel do primal.
Ento x soluo ptima do primal. Do mesmo modo se mostra que y soluo
ptima do dual.

9. Num par de problemas primal-dual se um deles tem uma soluo ptima o outro
tambm tem e, alm disso, os valores das f.o. so iguais.
Demonstrao:

Seja A uma matrix m n. Suponhamos que o primal tem uma soluo ptima
admissvel. Seja B a base associada ao vector xI . O vector dos custos actualizados
dado por cT = cT cTI B 1 A 0 ( porque o problema de minimizar). Ou seja
cTI B 1 A c. Alm disso a funo objectico vale cTI B 1 b. Denindo y T = cTI B 1

temos que y T A c e v(y) = y T b = cTI B 1 b = f. o. primal. Pelo nmero anterior


ento y soluo 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 restrio
Investigao Operacional- 2009/10 - Programas Lineares 19

A soluo bsica do primal correspondente base B dada por: xJ = 0 e xI = B 1 b e


esta base corresponde a uma soluo admissvel se e s se xI = B 1 b 0. A soluo do
T
dual correspondente base B dada por y = cTI B 1 T
y B= cTI e soluo admissvel
se satiszer as outras restries, isto se y T D cTJ . Ou seja, se cTJ cTI B 1 D 0, o
que representa a condio de optimalidade do primal. Isto , a qualquer soluo admissvel
do primal, que no seja ptima, corresponde uma soluo no admissvel para o dual. Se
a uma soluo admissvel do primal corresponder uma soluo tambm admissvel para o
dual, ento so ambas ptimas.

Para este problema primal os custos actualizados em cada iterao so dados por: cT =
cT cTI B 1 A = cT y T A . Ou seja cada componenete do vector c pode ser calculada do
seguinte modo: cj = cj cTI B 1 A:j em que A:j reperesenta a coluna j da matriz A. Ento
os custos actualizados do problema primal so os valores das variveis de afastamento do
problema dual. Estes valores so designados por preos sombra das actividades do primal.

TEOREMA DO EQUILBRIO (OU DA COMPLEMENTARIDADE)

Um par de solues admissveis para os problemas primal-dual so ptimas se e s se as


variveis de afastamento do primal positivas correspondem a variveis do dual nulas.

Demonstrao:

Considere-se novamente o par de problemas primal-dual na forma:

PRIMAL DUAL
T
Min z = c x Max v = bT y
s. a Ax b s. a AT y c
x 0 y 0

A varivel do dual yi est associada restrio do primal Ai: x bi , qual se associa a varivel
de afastamento ui = Ai: x bi . Por outro lado, a varivel xj do primal est associada
T
restrio do dual y A:j cj qual se associa a varivel de afastamento wj = cj y T A:j
. Sejam x e y um par de solues admissveis para os problemas primal e dual. Ento,
u = Ax b e w T = cT y T A so os vectores das variveis 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:


Investigao Operacional- 2009/10 - Programas Lineares 20

Como se trata de solues admissveis sabe-se que Ai: x bi e y i 0 . Pode ento multiplicar-
se ambos os membros da 1a desigualdade por y i vindo y i Ai: x y i bi , mas por hiptese
verica-se o sinal de igualdade. Somando para todos os i vir :

X X
y i Ai: x = y i bi

De modo anlogo se conclui ser:

X X
xj (yAi: ) = xj cj

Mas .
X X
y i Ai: x = xj (yAi: )

Ento,
X X
y i bi = xj cj

e, por isso, x e y so solues ptimas dos respectivos problemas.


P
Reciprocamente, como cT x = bT y = y T Ax , vem que cT x y T Ax = 0 donde cj y T A:j xj =
0, mas, como se trata de uma soma de parcelas no negativas, todas elas tero de ser nulas,
isto , para cada j, cj y T A:j = 0 =) xj = 0. E do mesmo modo para as variveis do dual.

MTODO SIMPLEX DUAL

Considere-se o PL:
Minimizar z(x) = cT x
sujeito a Ax = b
x 0

Seja B uma base. B uma base admissvel para o primal se B 1 b 0 e admissvel para o
dual se c cTI B 1 A 0 e uma base ptima se ambos se realizarem.

O mtodo simplex comea com uma base admissvel para o primal e percorre sempre solues
admissveis correspondentes a vrtices da regio admissvel at atingir o critrio do ptimo
(dual admissvel). O mtodo simplex-dual comea com uma soluo admissvel para o dual
e percorre sempre solues admissveis adjacentes para o dual mas no admissveis para o
primal terminando quando atinge uma soluo admissvel para o primal que a ptima.
Cada iterao deste algoritmo reduz o nmero de inadmissibilidades do primal, mantendo a
admissibilidade do dual.
Investigao Operacional- 2009/10 - Programas Lineares 21

ALGORITMO

1. Escolher uma linha tal que br < 0 ( varivel a sair da base); Se todos os br 0,
termina.
cs cj
2. Escolher o pivot ars tal que = min : arj < 0
ars arj
Esta escolha tem o objectivo de manter todos os custos do primal no negativos ou seja
manter o problema dual admissvel. Se todos os arj 0, o problema no tem soluo.

3. Efectuar a pivotagem.

4. Voltar a 1.