You are on page 1of 9

C A P T U L O 4

Teoria da Dualidade

1. Introduo
Uma dos conceitos mais importantes em programao linear o de dualidade. Qualquer
problema de PL tem associado um outro problema de PL, chamado o Dual. Neste contexto, o
problema original denomina-se por Primal.
Um dos principais papis da teoria da dualidade a interpretao e implementao da anlise
de sensibilidade, que uma parte muito importante de um estudo de PL.
2. Formulao do problema Dual
Dado um problema de PL, de maximizao, na forma tpica :
Maximizar Z = C X
Sujeito a A X b
X 0
existe um outro problema de PL que lhe est associado, o dual, que consiste em :
Minimizar W = b Y
Sujeito a A
T
Y C
Y 0
Por outro lado, dado um problema de PL, de minimizao, na forma tpica :
Minimizar Z = C X
Sujeito a A X b
X 0

46 Formulao do problema Dual
existe um outro problema de PL que lhe est associado, o dual, que consiste em :
Maximizar W = b Y
Sujeito a A
T
Y C
Y 0
As regras de transformao que se aplicaram, foram as seguintes :
i) A cada varivel do primal corresponde uma restrio no dual;
ii) A cada restrio do primal corresponde uma varivel do dual;
iii) Os coeficientes da funo objectivo do primal correspondem aos termos independentes das
restries do dual;
iv) Os termos independentes das restries do primal correspondem aos coeficientes da funo
objectivo do dual;
v) A transposta da matriz das restries do primal, a matriz das restries do dual;
vi) Se o primal for um problema de maximizao (minimizao) na forma tpica, ento o problema
dual ser um problema de minimizao (maximizao) na forma tpica.
Relaes PrimalDual
Maximizao
Passagem ao Dual
Minimizao
0
i-sima restrio 0 i-sima varivel
= livre
0
j-sima varivel 0 j-sima restrio
livre =
Matriz das restries A Matriz das restries A
T

Coeficientes da funo objectivo Termos independentes
Termos independentes Coeficientes da funo objectivo
Exemplo :
Primal Dual
Maximizar Z = 2 x
1
+ x
2
Minimizar Z = 5 y
1
+ 3 y
2
+ 3 y
3

Sujeito a x
1
+ x
2
= 5 Sujeito a y
1
+ y
2
2
x
1
3 y
1
+ y
3
1
x
2
3 y
1
R, y
2
0, y
3
0
x
1
, x
2
0
Teoria da Dualidade
Um exemplo 47
3. Propriedades fundamentais da dualidade
Nesta seco sero apresentados os principais resultados da dualidade, que relacionam as
solues de qualquer par de problemas duais, em particular as ptimas.
Resultado 1. O valor da funo objectivo, Z, de qualquer soluo admissvel do problema primal, X
= (x
1
, x
2
, ..., x
n
), no excede o valor da funo objectivo, W, de qualquer soluo admissvel do
problema dual, Y = (y
1
, y
2
, ..., y
n
), isto ,


= =
i
i i
j
j j
y b W x c Z
Resultado 2. Se X* e Y* so solues admissveis para os problemas primal e dual, respectivamente,
tais que Z* = W*, ento X* e Y* so as solues ptimas do primal e do dual, respectivamente.
Resultado 3.
a) Para qualquer par de problemas duais, a existncia de soluo ptima (finita) para um deles
garante a existncia de soluo ptima (finita) para o outro e os respectivos valores das funes
objectivo so iguais : Z* = W*.
b) As componentes do vector encontram-se no quadro ptimo do primal na
linha (z
j
c
j
), associados aos valores de z
j
, nas colunas correspondentes s variveis folga
(quando uma restrio no tem associada qualquer varivel folga, considera-se a varivel que
deu origem matriz identidade de partida).
) y , , y , y ( Y
m 2 1

= L
c) Os valores das variveis folga na soluo ptima do dual, so os valores dos elementos da linha
(z
j
c
j
), correspondentes apenas s variveis principais do primal.
Resultado 4. Um problema de programao linear tem soluo ptima (finita) se e s se existirem
solues admissveis para os problemas primal e dual.
Resultado 5. Se para algum dos problemas existir soluo no limitada, ento o outro no possui
solues admissveis.
4. Um exemplo
Considere-se o problema das secretrias e das estantes, j resolvido no Captulo 2. O dual deste
problema, o seguinte :
Minimizar W = 720 y
1
+ 880 y
2
+ 160 y
3

Sujeito a 2 y
1
+ 4 y
2
+ y
3
6
4 y
1
+ 4 y
2
3
y
1
, y
2
, y
3
0
Teoria da Dualidade
48 Um exemplo
Passando o problema para a sua forma padro, tem-se :
Minimizar W = 720 y
1
+ 880 y
2
+ 160 y
3

Sujeito a 2 y
1
+ 4 y
2
+ y
3
y
4
= 6
4 y
1
+ 4 y
2
y
5
+ y
6
= 3
y
1
, y
2
, y
3
, y
4
, y
5
, y
6
0 (y
6
varivel artificial)
Este problema equivalente ao seguinte (de Maximizao) :
Maximizar W = 720 y
1
880 y
2
160 y
3

Sujeito a y Y (Y a regio admissvel do problema dual)
Aplicando o mtodo das DuasFases, tem-se :
1 Fase :
Construo do seguinte problema auxiliar :
Minimizar W = y
6

Sujeito a y Y
Este problema, equivalente ao seguinte (de maximizao) :
Maximizar W = y
6

Sujeito a y Y (Y a regio admissvel do problema dual)
Resolvendo este ltimo problema pelo algoritmo Simplex, vem :
Passo inicial :
Y
B
y
1
y
2
y
3
y
4
y
5
y
6
2 m.
y
3
2 4 1 1 0 0 6
y
6
4 4 0 0 1 1 3
w
j
c
j
4 4 0 0 1 0 3

1 iterao :
Y
B
y
1
y
2
y
3
y
4
y
5
y
6
2 m.
y
3
2 0 1 1 1 1 3
y
2
1 1 0 0 1/4 1/4 3/4
w
j
c
j
0 0 0 0 0 1 0
Desta forma, completou-se a 1 fase, pois y
6
est fora da base, com w* = 0. Assim, a soluo
ptima do problema de Minimizao a mesma do de Maximizao, agora determinada :
w' = ( 0, 3/4, 3, 0, 0, 0 ).
Teoria da Dualidade
Algoritmo Dual Simplex 49
2 fase :
Utiliza-se o quadro anterior, apenas alterando a ltima linha :
Passo inicial :
Y
B
y
1
y
2
y
3
y
4
y
5
y
6
2 m.
y
3
2 0 1 1 1 1 3
y
2
1 1 0 0 1/4 1/4 3/4
w
j
c
j
720 880 160 0 0 0 0
w
j
c
j
160 0 0 160 60 60 1140
Como para todo o j, w
j
c
j
0 (para j = 6 no interessa), a soluo associada a esta base
ptima. Portanto, tem-se o seguinte :

|
.
|

\
|
= 0 , 0 , 0 , 3 ,
4
3
, 0 * y com W
min
= 1140 (W
max
= 1140 e W
min
= W
max
).
Concluso :
x* = (160, 60, 160, 0, 0) com Z
max
(primal) = W
min
(dual) = 1140.
com w
4
c
4
= 160 w
4
0 = 160 (c
4
= 0) = 160
4
*
1
w x =
4
*
1
w x =
com w
5
c
5
= 60 w
5
0 = 60 (c
5
= 0) = 60
5
*
2
w x =
5
*
2
w x =

1 1
*
3
c w x = 160 x
*
3
=

2 2
*
4
c w x = 0
0
x
*
4
=

3 3
*
5
c w x = x
*
5
=
5. Algoritmo Dual Simplex
O algoritmo Simplex estudado at aqui, o primal, no nico, nem mesmo, em certos casos, o
mais eficiente. Com efeito :
raramente a utilizao do algoritmo Simplex dispensa a tcnica das variveis artificiais;
a imposio de limites s variveis aumenta substancialmente o nmero de restries;
em problemas de grande dimenso, este algoritmo torna-se em geral bastante pesado;
alteraes posteriores nos parmetros exigem, em muitos casos, a resoluo do problema a
partir do inicio.
Por outro lado, os problemas de PL apresentam por vezes estruturas to particulares, que podem ser
resolvidos, mais eficientemente, por mtodos especificamente concebidos para o efeito.
Neste sentido, tm vindo a ser desenvolvidos mtodos de resoluo, cujo objectivo fundamental
consiste em reduzir o nmero de iteraes necessrio no algoritmo primal Simplex, como o caso do
mtodo Dual Simplex, que deriva do mtodo Simplex.
Teoria da Dualidade
50 Algoritmo Dual Simplex
O algoritmo dual Simplex consiste num processo, que partindo duma SBA do dual, a qual
corresponde inicialmente a uma SBNA do primal, desenvolve-se iterativamente, at se atingir um par
de solues admissveis do primal e do dual, que so as solues ptimas respectivas, ou se concluir
que o problema apresenta soluo no limitada, sendo ento o primal impossvel.
Em muitos problemas, mais fcil obter uma soluo admissvel para o dual do que para o
primal. Nestes casos, este algoritmo revela-se til, em princpio prefervel ao algoritmo primal.
Tambm na anlise de ps-optimizao, este algoritmo dispensa muitas vezes a resoluo do
problema a partir do inicio, perante variaes discretas ou contnuas de parmetros do modelo.
Ao aplicar-se o algoritmo primal Simplex, passa-se de SBA em SBA do Primal e,
simultaneamente, de SBNA em SBNA do Dual, at se atingir uma SBA do Dual (que tambm do
primal); neste momento, o processo termina, pois est-se em presena da soluo ptima do primal,
que tambm soluo ptima do dual. Esquematicamente, tem-se
Primal : SBA
. . .
SBA SBA (X* finito) / SBA (Soluo no limitada)

z* = w*

Dual : SBNA
. . .
SBNA SBA (Y* finito) / SBNA (Problema impossvel)
O algoritmo Dual Simplex, um processo que, embora aplicado ao problema primal, tem um
comportamento homlogo ao algoritmo Primal Simplex aplicado ao problema dual. Este processo
consiste em partir duma SBA do Dual, a que corresponde uma SBNA do Primal, prosseguindo at se
atingir um par de solues admissveis do primal e do dual, que so as solues ptimas respectivas,
ou se concluir que o problema dual apresenta soluo ptima no limitada, sendo ento o primal
impossvel. Esquematicamente, tem-se :
Dual : SBA
. . .
SBA SBA (Y* finito) / SBA (Soluo no limitada)

w* = z*

Primal : SBNA
. . .
SBNA SBA (X* finito) / SBNA (Problema impossvel)
O algoritmo Dual Simplex, para problemas de maximizao, consiste nos seguintes passos :
Passo 1. Construir o quadro Simplex correspondente SBA do dual (SBNA do primal) em presena,
isto , uma soluo em que z
j
c
j
0, para j = 1, 2, ..., n.
Passo 2. Se
B
i
I i , 0 b , o processo termina : est-se em presena de uma soluo ptima finita para
o problema dual, logo, uma soluo ptima finita para o primal.
O processo prossegue no caso de existir algum
B
i
I i , 0 < b .
Passo 3. Escolher a VNB a sair na base, de acordo com o critrio
{ } 0 b : b
i i
i
< min (escolha da linha do elemento redutor linha t)
Teoria da Dualidade
Algoritmo Dual Simplex 51
Passo 4. Escolher a varivel a entrar na base, de acordo com o critrio

<

0 a :
a
c z
min
a
c z
tj
tj
j j
j
tk
k k
(escolha da coluna do elemento redutor coluna k)
Se 0 a
tj
, para j = 1, 2, ..., n, o processo termina : est-se em presena de uma soluo no limitada
para o problema dual (w ), logo, o problema primal no possui solues admissveis. O
processo prossegue no caso de existir algum 0 a
tj
< .
Passo 5. Substituir
t
A por
k
A na base, obtendo nova base, tal que z
j
c
j
0, j = 1, 2, ..., n; para tal,
aplicar o mtodo de eliminao de GaussJordan tomando a como elemento redutor (pivot).
Voltar ao passo 2.
tk
Para resolver o problema de degenerescncia no dual, que se manifesta pela existncia de pelo
menos um z
j
c
j
= 0 para j I
B
, possvel desenvolver um processo similar ao apresentado para o
primal Simplex. Neste caso, perante a situao de empate no critrio de entrada, isto ,

<

= =

0 a :
a
c z
min
a
c z
a
c z
tj
tj
j j
j
tr
r r
tk
k k
L
procede-se determinao de

<
=
0 a :
a
a
min
tj
tj
j 1
q ,..., k j
,
para j correspondente s variveis empatadas, indicando o valor obtido a varivel a introduzir na
base. Se o empate persistir, procede-se da mesma forma com
j 2
a , e assim sucessivamente.
Exemplo :
Considere-se o seguinte problema de PL :
Minimizar Z = 10 x
1
+ 5 x
2
Sujeito a 20 x
1
+ 50 x
2
200
50 x
1
+ 10 x
2
150
30 x
1
+ 30 x
2
210
x
1
, x
2
0
Teoria da Dualidade
52 Algoritmo Dual Simplex
Passando o problema para a sua forma padro, tem-se :
Minimizar Z = 10 x
1
+ 5 x
2
Sujeito a 20 x
1
+ 50 x
2
x
3
= 200
50 x
1
+ 10 x
2
x
4
= 150
30 x
1
+ 30 x
2
x
5
= 210
x
1
, x
2
, x
3
, x
4
, x
5
0
no qual no se encontra I
3
, mas que ao multiplicar-se todas as restries por (1) isso j acontece :
Minimizar Z = 10 x
1
+ 5 x
2
Sujeito a 20 x
1
50 x
2
+ x
3
= 200
50 x
1
10 x
2
+ x
4
= 150
30 x
1
30 x
2
+ x
5
= 210
x
1
, x
2
, x
3
, x
4
, x
5
0
Para se resolver este problema, tem-se que se converter num de maximizao :
Maximizar Z + 10 x
1
+ 5 x
2
= 0
Sujeito a x X
Portanto, como no existem variveis artificiais no problema, mas os termos independentes so
negativos, tem que se aplicar o algoritmo Dual Simplex :
Passo inicial :
X
B
x
1
x
2
x
3
x
4
x
6
2 m.
x
3
20 50 1 0 0 200
x
4
50 10 0 1 0 150
x
5
30 30 0 0 1 210
z
j
c
j
10 5 0 0 0 0

x
5
a varivel que sai da base, pois, x
5
= min { 200, 150, 210 } = 210
x
2
a varivel que entra na base, pois,
30
5
30
5
,
30
10
min x
2
=
)
`


=
Aplicando o mtodo de GaussJordan, obtm-se o seguinte quadro (1 iterao) :
X
B
x
1
x
2
x
3
x
4
x
6
2 m.
x
3
30 0 1 0 5/3 150
x
4
40 0 0 1 1/3 80
x
2
1 1 0 0 1/30 7
z
j
c
j
5 0 0 0 5/30 35

x
4
a varivel que sai da base, pois, x
4
= min { 80} = 80
x
1
a varivel que entra na base, pois,
40
5
,
40
5
min x
30
1
30
5
1
=


=
Teoria da Dualidade
Algoritmo Dual Simplex 53
Aplicando de novo o mtodo de GaussJordan, obtm-se o seguinte quadro (2 iterao) :
X
B
x
1
x
2
x
3
x
4
x
6
2 m.
x
3
0 0 1 3/4 23/12 90
x
1
1 0 0 1/40 1/120 2
x
2
0 1 0 1/40 1/24 5
z
j
c
j
0 0 0 1/8 1/8 45
Como os termos independentes so todos no negativos, a soluo obtida admissvel, logo
ptima do problema primal. Portanto, a soluo ptima a seguinte :
X* = (2, 5, 90, 0, 0) Z
min
= Z
max
= (45) = 45 .
O problema dual composto por 3 variveis de deciso e por 2 restries (logo, por 2 variveis
folga).
Variveis de deciso : y
1
, y
2
e y
3
.
Variveis folga : y
4
e y
5
.
Funo objectivo : Max W = 200 y
1
+ 150 y
2
+ 210 y
3
.
Soluo ptima :
= z
3
com z
3
- c
3
= 0 z
3
= 0 (c
3
= 0) = 0
*
1
y
*
1
y
= z
4
com z
4
- c
4
= 1/8 z
4
= 1/8 (c
4
= 0) = 1/8
*
2
y
*
2
y
= z
5
com z
5
- c
5
= 1/8 z
5
= 1/8 (c
5
= 0) = 1/8
*
3
y
*
3
y
= z
1
- c
1
= 0 = 0
*
4
y
*
4
y
= z
2
- c
2
= 0 = 0
*
5
y
*
5
y

|
.
|

\
|
= 0 , 0 ,
8
1
,
8
1
, 0 * Y
min max
Z 45
8
360
8
1
210
8
1
150 0 200 W = =
|
.
|

\
|
= + + = .

Teoria da Dualidade

You might also like