Buscar

Dualiadade - Primal/Dual

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

X - D U A L I D A D E 
 
 
 
 
 
 • 1 - Introdução. Regras de transformação "Primal - Dual" 
 
Consideremos os dois problemas P1 e P2 de Programação Linear seguintes: 
 
P1 : 
 n 
 Maximizar F = Σ ck . Xk 
 k = 1 
sujeito a: 
 n 
 Σ aik . Xk ≤ bi i = 1, 2, ... , m 
 k = 1 
 
 Xk ≥ 0 k = 1, 2, ... , n 
 
 
P2 : 
 m 
 Minimizar G = Σ bi . Ui 
 i = 1 
sujeito a: 
 m 
 Σ aik . Ui ≥ ck k = 1, 2, ... , n 
 i = 1 
 
 Ui ≥ 0 i = 1, 2, ... , m 
 
 
ou, utilizando a notação matricial: 
 
 
P1 : 
 
 Maximizar F = C . X 
 
sujeito a: 
 A . X ≤ b 
 
 X ≥ 0n 
 
 
 P2 : 
 
 Minimizar G = bT . U 
 
 sujeito a: 
 AT . U ≥ CT 
 
 U ≥ 0m 
R
uy
 C
os
ta
, 2
00
6 
 100
 Na representação anterior, o vector das incógnitas de P1, X, é um vector coluna 
( n x 1 ), o vector das incógnitas de P2, U, é um vector coluna ( m x 1 ), C é um vector linha 
( 1 x n ), A é uma matriz ( m x n ) e b é um vector coluna ( m x 1 ). De notar que 0n é o vector 
nulo do tipo ( n x 1 ) e que 0m é o vector nulo do tipo ( m x 1 ). 
 
 
 P1 e P2 formam um par de problemas duais, isto é, P1 é o problema dual de P2 
e vice-versa. 
 
 
 Algumas Regras de Transformação "Primal-Dual" podem ser enunciadas: 
 
R1 : A cada restrição do problema primal corresponde uma variável do 
problema dual. 
 
 A cada variável do problema primal corresponde uma restrição do 
problema dual. 
 
 
R1 : 
 
restrição P ↔ variável D ; variável P ↔ restrição D 
 
 
 
 
R2 : A matriz dos coeficientes das restrições do problema dual é a 
transposta da matriz dos coeficientes das restrições do correspondente 
problema primal. 
 
 
R2 : 
 
A P = ATD ; A D = ATP 
 
 
 
 
R3 : Os termos independentes das restrições de um dos problemas 
(primal/dual) são os coeficientes da função objectivo no outro problema 
(dual/primal). 
 
 
 
R3 : 
 
Termos independentes P ↔ Coeficientes da f.o. D 
 
Termos independentes D ↔ Coeficientes da f.o. P 
 
 
 
 
R4 : A um problema primal de maximização com restrições do tipo ≤ e 
variáveis não negativas, corresponde um problema dual de minimização 
com restrições do tipo ≥ e variáveis não negativas. 
 
 
 
R4 : 
 
Problema Primal 
 
Max 
restrições ' ≤ ' 
variáveis ' ≥ 0 ' 
 
 
 
 
↔
 
Problema Dual 
 
Min 
restrições ' ≥ ' 
variáveis ' ≥ 0 ' 
 
 
 
 Para podermos aplicar as 'Regras de Transformação' apresentadas, resolvamos os 
seguintes exercícios: 
R
uy
 C
os
ta
, 2
00
6 
 101
Ex.1 : 
 
 
 
 
 Escreva o dual do problema de Programação Linear seguinte: 
 
 MAX F = 2 . X1 + 3 . X2 
 
sujeito a: 
 
 2 . X1 - 3 . X2 ≤ 4 
 - 1 . X1 + 4 . X2 ≤ 5 
 5 . X1 + 2 . X2 ≤ 9 
 6 . X1 - 2 . X2 ≤ 7 
 
 X1 , X2 ≥ 0 . 
 
 
 
ê 
 
Resolução : 
 
 
 
 MIN G = 4 . U1 + 5 . U2 + 9 . U3 + 7 . U4 
 
sujeito a: 
 
 2 . U1 - 1 . U2 + 5 . U3 + 6 . U4 ≥ 2 
 - 3 . U1 + 4 . U2 + 2 . U3 - 2 . U4 ≥ 3 
 
 U1 , U2 , U3 , U4 ≥ 0 . 
 
 
 Note-se que o problema primal apresentado tem m = 4 (número de equações) e 
n = 2 + 4 (número de incógnitas), pelo que a sua resolução pelo Algoritmo Simplex Revisto 
implicaria a manipulação (incluindo inversão) de matrizes B ( 4 x 4 ). O problema dual 
correspondente tem m = 2 (número de equações) e n = 4 + 2 (número de incógnitas), pelo 
que a sua resolução pelo Algoritmo Simplex Revisto implicaria a manipulação de matrizes 
B ( 2 x 2 ) ! Assim, a priori, é mais fácil resolver o problema dual, já que este corresponderá a 
um menor esforço de cálculo... Posteriormente retomaremos esta questão. 
 
 
 
 Ao observarmos as 'Regras de Transformação' apresentadas, em particular a regra 
 
 
 
R4 : 
 
Problema Primal 
 
Max 
restrições ' ≤ ' 
variáveis ' ≥ 0 ' 
 
 
 
 
↔
 
Problema Dual 
 
Min 
restrições ' ≥ ' 
variáveis ' ≥ 0 ' 
 
 
 
 
 
, 
 
pode surgir-nos uma interrogação: O que acontece se uma das restrições for uma 
desigualdade de 'sentido oposto' à regra " Max ; restrição ≤ / Min ; restrição ≥ " ? Para 
tentarmos responder a esta questão, poderemos considerar o seguinte exercício: 
R
uy
 C
os
ta
, 2
00
6 
 
 
 
 102
Ex.2 : 
 
 
 
 
 Escreva o dual do problema de Programação Linear seguinte: 
 
 MIN F = 4 . X1 + 2 . X2 + 1 . X3 
 
sujeito a: 
 
 2 . X1 + 1 . X2 + 3 . X3 ≥ 5 
 2 . X1 - 1 . X2 ≥ 6 
 - 1 . X1 + 3 . X2 + 4 . X3 ≤ 5 
 2 . X2 - 3 . X3 ≥ 4 
 
 X1 , X2 , X3 , X4 ≥ 0 . 
 
 
 
 
 
 
 
 
 
 
 
ê 
 
Resolução : 
 
 A terceira restrição pode ser re-escrita de modo a respeitar a regra 
" Min ; restrição ≥ " : 1 . X1 - 3 . X2 - 4 . X3 ≥ - 5 . Ter-se-ia, 
então, o seguinte problema dual: 
 
 
 MAX G = 5 . U1 + 6 . U2 - 5 . U3 + 4 . U4 
 
sujeito a: 
 
 2 . U1 + 2 . U2 + 1 . U3 ≤ 4 
 1 . U1 - 1 . U2 - 3 . U3 + 2 . U4 ≤ 2 
 3 . U1 - 4 . U3 - 3 . U4 ≤ 1 
 
 U1 , U2 , U3 , U4 ≥ 0 . 
 
 Para mantermos as regras anteriormente enunciadas, muito
especialmente, R2 e R3 deveríamos ter os simétricos dos coeficientes 
de U3 (relativamente ao problema dual apresentado), o que se 
consegue facilmente considerando U3 ≤ 0, ou seja, 
 
 
 MAX G = 5 . U1 + 6 . U2 + 5 . U3 + 4 . U4 
 
sujeito a: 
 
 2 . U1 + 2 . U2 - 1 . U3 ≤ 4 
 1 . U1 - 1 . U2 + 3 . U3 + 2 . U4 ≤ 2 
 3 . U1 + 4 . U3 - 3 . U4 ≤ 1 
 
 
 U1 , U2 , U4 ≥ 0 ; 
 
 
U3 ≤ 0 .
 
 R
uy
 C
os
ta
, 2
00
6 
 
 
Poderemos, assim, enunciar uma nova Regra de Transformação "Primal-Dual" : 
 
R5 : A uma restrição do problema primal de tipo 'oposto' à regra 
" Max / restrições ≤ ; Min / restrições ≥ " corresponderá no problema 
dual, uma variável não positiva, e vice-versa. 
 
 103
 
 
R5 : 
 
Problema Primal 
 
Max 
restrição ' ≥ ' 
 
 
 
↔
 
Problema Dual 
 
Min 
variável ' ≤ 0 ' 
 
 
Problema Primal 
 
Max 
variável ' ≤ 0 ' 
 
 
 
↔
 
Problema Dual 
 
Min 
restrição ' ≤ ' 
 
 
 Aproveitemos o problema dual do exercício nº 2 anterior e determinemos o 
correspondente problema dual: 
 
 
 MAX G = 5 . U1 + 6 . U2 + 5 . U3 + 4 . U4 
 
sujeito a: 
 
 2 . U1 + 2 . U2 - 1 . U3 ≤ 4 
 1 . U1 - 1 . U2 + 3 . U3 + 2 . U4 ≤ 2 
 3 . U1 + 4 . U3 - 3 . U4 ≤ 1 
 
 
 U1 , U2 , U4 ≥ 0 ; 
 
 
U3 ≤ 0 .
 
 
 
ê 
 
Resolução : 
 
 
 
 
 
 
 MIN F = 4 . X1 + 2 .X2 + 1 . X3 
 
sujeito a: 
 
 2 . X1 + 1 . X2 + 3 . X3 ≥ 5 
 2 . X1 - 1 . X2 ≥ 6 
 - 1 . X1 + 3 . X2 + 4 . X3 ≤ 5 
 2 . X2 - 3 . X3 ≥ 4 
 
 X1 , X2 , X3 , X4 ≥ 0 . 
 
 
F Não sei se notaram, mas o dual do 'problema dual' é igual ao 'problema primal' ! 
 
 
 Para aplicarmos as 'regras de transformação' apresentadas, resolvamos agora o 
exercício seguinte: 
R
uy
 C
os
ta
, 2
00
6 
I 
 
 
 104
Ex.3 Escreva o dual do problema de Programação Linear seguinte: 
 
 MAX G = 2 . X1 + 3 . X2 + 4 . X3 
 
sujeito a: 
 
 3 . X1 - 2 . X2 ≤ 5 
 4 . X1 - 1 . X2 + 1 . X3 ≥ 6 
 2 . X1 + 3 . X2 - 1 . X3 ≤ 4 
 
 
 X1 , X2 ≥ 0 ; 
 
 
X3 ≤ 0 .
 
 
 
ê 
 
Resolução : 
 
 
 
 
 
 
 MIN F = 5 . U1 + 6 . U2 + 4 . U3 
 
sujeito a: 
 
 3 . U1 + 4 . U2 + 2 . U3 ≥ 2 
 - 2 . U1 - 1 . U2 + 3 . U3 ≥ 3 
 1 . U2 - 1 . U3 ≤ 4 
 
 
 U1 , U3 ≥ 0 ; 
 
 
U2 ≤ 0 .
 
 
 
 
 Já sabemos o que fazer se uma das restrições for uma desigualdade de 'sentido 
oposto' à regra " Max ; restrição ≤ / Min ; restrição ≥ " . Mas, o que fazer se se tiver uma 
restrição do tipo ' = ' ? Para tentarmos responder a esta questão, poderemos considerar o 
seguinte exercício: 
 
Ex.4 : 
 
 
 
 
 Escreva o dual do problema de Programação Linear seguinte: 
 
 MAX F = 2 . X1 + 3 . X2 
 
sujeito a: 
 
 - 1 . X1 + 4 . X2 ≤ 5 
 7 . X1 - 1 . X2 ≤ 8 
 2 . X1 - 2 . X2 = 3 
 3 . X1 + 5 . X2 ≤ 7 
 
 X1 , X2 , X3 , X4 ≥ 0 . 
 R
uy
 C
os
ta
, 2
00
6 
 105
 
 
 
ê 
 
Resolução : 
 
 A terceira restrição pode ser re-escrita do modo seguinte: 
 
 2 . X1 - 2 . X2 ≤ 3 ∧ 2 . X1 - 2 . X2 ≥ 3 , ou, equivalentemente: 
 
 2 . X1 - 2 . X2 ≤ 3 ∧ - 2 . X1 + 2 . X2 ≤ - 3 . 
 
 
 
 
 
 
 
 Ter-se-ia, então, o seguinte problema: 
 
 MAX F = 2 . X1 + 3 . X2 
 
sujeito a: 
 
 - 1 . X1 + 4 . X2 ≤ 5 
 7 . X1 - 1 . X2 ≤ 8 
 2 . X1 - 2 . X2 ≤ 3 
 - 2 . X1 + 2 . X2 ≤ - 3 
 3 . X1 + 5 . X2 ≤ 7 
 
 
 
 
 
ê 
 
 X1 , X2 ≥ 0 . 
 
 
 A este problema corresponde o seguinte dual: 
 
 MIN G = 5 . U1 + 8 . U2 + 3 . U3 - 3 . U4 + 7 . U5 
 
sujeito a: 
 
 - 1 . U1 + 7 . U2 + 2 . U3 - 2 . U4 + 3 . U5 ≥ 2 
 4 . U1 - 1 . U2 - 2 . U3 + 2 . U4 + 5 . U5 ≥ 3 
 
 U1 , U2 , U3 , U4 , U5 ≥ 0 . 
 
 
 Os coeficientes das variáveis não negativas U3 e U4 são simétricos, 
pelo que poderemos fazer a substituição V = U3 - U4 , com V ∈ ℜ: 
 
MIN G = 5 . U1 + 8 . U2 + 3 . V + 7 . U5 
 
sujeito a: 
 
 - 1 . U1 + 7 . U2 + 2 . V + 3 . U5 ≥ 2 
 4 . U1 - 1 . U2 - 2 . V + 5 . U5 ≥ 3 
 
 
 
ê 
 
 U1 , U2 , U5 ≥ 0 ; V ∈ ℜ. 
 
 
 Se designarmos V por U3 e U5 por U4, poderemos escrever o 
problema dual do problema dado na forma seguinte: 
 
R
uy
 C
os
ta
, 2
00
6 
 
 
 
 
 106
 
 MIN G = 5 . U1 + 8 . U2 + 3 . U3 + 7 . U4 
 
sujeito a: 
 
 - 1 . U1 + 7 . U2 + 2 . U3 + 3 . U4 ≥ 2 
 4 . U1 - 1 . U2 - 2 . U3 + 5 . U4 ≥ 3 
 
 
 U1 , U2 , U4 ≥ 0 ; 
 
U3 ∈ ℜ.
 
 
 
 
 
Poderemos, assim, enunciar uma nova Regra de Transformação "Primal-Dual" : 
 
R6 : A uma restrição do problema primal de tipo 'igualdade' corresponderá 
no problema dual, uma variável livre, e vice-versa. 
 
 
 
R6 : 
 
Problema Primal 
 
restrição ' = ' 
 
 
 
↔
 
Problema Dual 
 
variável ' ∈ ℜ ' 
 
 
 Exercitemos a utilização das 'regras de transformação' apresentadas, com o exercício 
seguinte: 
 
Ex.5 Escreva o dual do problema de Programação Linear seguinte: 
 
 MIN F = 2 . X1 + 3 . X2 + 4 . X3 + 2 . X4 
 
sujeito a: 
 2 . X1 - 3 . X2 -5 . X3 ≤ 20 
 4 . X1 - 2 . X3 + 1 . X4 ≥ 15 
 3 . X2 + 1 . X3 - 1 . X4 = 7 
 
 
 X1 , X4 ≥ 0 ; 
 
 
X2 ≤ 0;
 
X3 ∈ ℜ.
 
 
 
ê 
 
Resolução : 
 
 
 
 MAX G = 20 . U1 + 15 . U2 + 7 . U3 
 
sujeito a: 
 2 . U1 + 4 . U2 ≤ 2 
 - 3 . U1 + 3 . U3 ≥ 3 
 - 5 . U1 - 2 . U2 + 1 . U3 = 4 
 1 . U2 - 1 . U3 ≤ 2 
 
 
U1 ≤ 0 , 
 
 U2 ≥ 0 ; 
 
 
U3 ∈ ℜ.
 
 
R
uy
 C
os
ta
, 2
00
6 
 
 Sintetizemos, agora as Relações "Primal - Dual" no quadro seguinte: 
 
 107
 
Relações ' Primal ↔ Dual ' 
 
 
Problema de 
Maximização 
 
 
Problema de 
Minimização 
 
i-ésima restrição 
i = 1, 2, ..., m. 
≤
=
≥
≥ 0 
∈ ℜ 
≤ 0 
 
i-ésima variável 
i = 1, 2, ..., m. 
 
k-ésima variável 
k = 1, 2, ..., m. 
≥ 0
∈ ℜ
≤ 0
≥ 
= 
≤ 
 
k-ésima restrição 
k = 1, 2, ..., m. 
matriz dos coeficientes das 
restrições 
A ( m x n ) 
 matriz dos coeficientes das 
restrições 
AT ( n x m ) 
coeficientes da função 
objectivo ck , C ( 1 x n ) 
k = 1, 2, ..., n. 
 termos independentes das 
restrições ck , CT ( 1 x n ) 
k = 1, 2, ..., n. 
termos independentes das 
restrições bi , b ( m x 1 ) 
i = 1, 2, ..., m. 
 coeficientes da função 
objectivo bi , bT ( 1 x m ) 
i = 1, 2, ..., n. 
 
Nota: Quadro adaptado de 'Programação Linear' ( vol. II ), Guerreiro et al, Mc Graw Hill 
 
 E aproveitemos as 'regras de transformação' apresentadas, para resolver o exercício 
seguinte: 
 
Ex.6 Escreva o dual do problema tipo de Programação Linear apresentado na 
sua 'forma standard': 
 
 
 n 
 Maximizar F = Σ ck . Xk 
 k = 1 
sujeito a: 
 n 
 Σ aik . Xk = bi i = 1, 2, ... , m 
 k = 1 
 
 Xk ≥ 0 k = 1, 2, ... , n 
 
 
 
ê 
 
Resolução : 
 
 m 
 Minimizar G = Σ bi . Ui 
 i = 1 
sujeito a: 
 m 
 Σ aik . Ui ≥ ck k = 1, 2, ... , n 
 i = 1 
 
 Ui ∈ ℜ i = 1, 2, ... , m 
 R
uy
 C
os
ta
, 2
00
6 
 
 
 108
 
 
 • 2 - Propriedades Fundamentais da Dualidade 
 
P1 : O dual do problema dual de um dado problema de Programação Linear é o 
próprio problema de Programação Linear. 
 
P2: Considerando o problema primal, um problema de Programação Linear 
cujo objectivo é maximizar a função objectivo F, pode garantir-se que o o 
valor da função objectivo F ( F = C .X ) não excede o valor da função 
objectivo G ( g = bT . U ) qualquer solução admissível do problema dual, ou 
seja, n m 
 F = Σ ck . Xk ≤ G = Σ bi . Ui , para ( Xk ), ( Ui ) soluções 
 k = 1 i = 1 
 admissíveis do problema primal e dual, respectivamente. 
 
 
P3 : Se X* = [ X1*, X2*, ... , Xn* ]T e U* = [ U1*, U2*, ... , UM* ]T são soluções 
admissíveis para os problemas primal e dual, respectivamente, tais que 
. n m 
 F* = Σ ck . Xk* = G* = Σ bi . Ui* , 
 k = 1i = 1 
então X* e U* são as soluções óptimas do problema primal e do problema 
dual, respectivamente. 
 
P4 : Para qualquer par de problemas primal-dual, a existência de solução 
óptima finita para um deles garante a existência de solução óptima finita para 
o outro, verificando-se F* = G*. 
 
 Esquematicamente, pode indicar-se: 
 
 ↓ Min G 
 F* = G* [em geral, F ≤ G ( ver P2 ), mas, 
 Max F ↑ no "óptimo finito", F* = G* ( P4 ).] 
 
 
 Recordemo-nos que 
 
 F* = C . X* = CB . XB* = CB . B-1 . b e que G* = bT . U* = U*T . b . 
 ↑ ↑ ↑ 
 ( relativamente à base óptima do problema primal ) 
 
 
 Assim, se F* = G * ( P4 ), U*T . b = CB . B-1 . b, ou seja, 
 
 
U*T = CB . B-1 
 ↑ ↑ 
( relativamente à base óptima do problema primal ) 
 
 
 
 
.
 
 
 Assim, se um problema de Programação Linear admitir solução óptima finita, a 
partir da sua base óptima será possível determinar a solução óptima do correspondente 
problema dual. 
 
 
 De notar que o valor óptimo das variáveis duais intervém no cálculo dos coeficientes r 
(a partir dos quais se verifica a optimalidade das soluções de um problema de Programação 
R
uy
 C
os
ta
, 2
00
6 
 109
Linear). Com efeito, relativamente à solução óptima de um problema de Programação Linear 
pode escrever-se 
 
 r* = - CD + ( CB . B-1 ) . D ≥ 0, o que é equivalente a r* = - CD + ( U*T ) . D ≥ 0. 
 
 Particularmente interessante se torna a determinação da solução óptima do problema 
dual quando é possível escrever-se o problema primal na forma: 
 
 
 B D1 I b è I B-1. D1 B-1 B-1. b 
 - CB - CD1 0 0 0 - CD1 + CB . B-1. D1 CB . B-1 CB . B-1. b
 
 ↑ 
 U*T 
 
 Estando agora clara a relação entre o par de problemas primal-dual, poderemos 
retomar as considerações feitas no final da resolução do exercício nº1. 
 
 Então, referimos que o problema primal apresentado tinha m = 4 (número de 
equações) e n = 2 + 4 (número de incógnitas), pelo que a sua resolução pelo Algoritmo 
Simplex Revisto implicaria a manipulação (incluindo inversão) de matrizes B ( 4 x 4 ), enquanto 
que o problema dual correspondente tinha m = 2 (número de equações) e n = 4 + 2 
(número de incógnitas), pelo que a sua resolução pelo Algoritmo Simplex Revisto implicaria a 
manipulação de matrizes B ( 2 x 2 ) ! Concluímos, então, que, a priori, seria mais fácil 
resolver o problema dual, já que este corresponderia a um menor esforço de cálculo... 
 
 Poderemos generalizar o raciocínio apresentado e referir que, dado um problema de 
Programação Linear que se pretende resolver, deve verificar-se se a resolução do 
correspondente problema dual não será mais fácil. Em caso afirmativo, deverá determinar-se 
a solução óptima do problema dual e, a partir da correspondente base óptima, determinar a 
solução óptima do problema (primal) dado. 
 
 De recordar que quanto maior for o número de restrições de um problema de 
Programação Linear, maior será a ordem das correspondentes matrizes B e, 
consequentemente, maior será o volume de cálculo envolvido. 
 
 Assim, dado um problema de Programação Linear, se o número de restrições for muito 
superior ao número de incógnitas (não incluindo as variáveis de folga) deve resolver- -se o 
correspondente problema dual, já que as matrizes BPrimal ( m x m ) são de ordem muito 
superior que as matrizes BDual. 
 
 
 Para terminarmos a indicação das propriedades fundamentais da Dualidade, refiramos 
ainda mais duas propriedades: 
 
P5: Um problema de Programação Linear admite solução óptima finita se e só 
se existirem soluções admissíveis para esse problema e para o seu dual. 
 
P6: Se um problema de Programação Linear não admitir solução óptima finita, 
então o correspondente dual não tem soluções admissíveis. 
 
 Primal (Max F) → 
Dual (Min G)↓ 
 
 
Explo. 
Problema Possível 
 S ≠ ∅ 
 
 
Explo. 
Problema Impossível 
S = ∅ 
Problema Possível 
S ≠ ∅ 
1 F* = G* ambos problemas 
têm solução óptima finita 
3 G* → - ∝ o problema dual 
não tem solução óptima finita 
Problema Impossível 
S = ∅ 
2 F*→+ ∝ o problema primal 
não tem solução óptima finita
4 Nenhum dos problemas tem soluções admissíveis 
R
uy
 C
os
ta
, 2
00
6 
 Exemplos das situações referidas no Quadro anterior (resolva os problemas graficamente): 
 
 110
 
 
Explo. 
 
 Problema Primal 
 
 
Problema Dual 
 
1 
 
 Max F = 5 . X 
 sujeito a X + Y = 1 
 X, Y ≥ 0 
 
 
X* = 1 , Y * = 0 ; F* = 5 
 
 Min G = U 
 sujeito a U ≥ 5 
 U ≥ 0 
 U ∈ ℜ 
 
X* = 1 , Y * = 0 ; F* = 5 
 
 
2 
 
 Max F = X + Y 
 sujeito a X - Y = 2 
 X, Y ≥ 0 
 
F* → + ∝ 
 
 Min G = 2 . U 
 sujeito a U ≥ 1 
 - U ≥ 1 
 
Problema impossível ( S = ∅ ) 
 
 
3 
 
 Max F = - X 
 sujeito a - X = 4 
 X ≥ 0 
 
Problema impossível ( S = ∅ ) 
 
 Min G = 4 . U 
 sujeito a - U ≥ - 1 
 U ∈ ℜ 
 
G* → - ∝ 
 
 
4 
 
 Max F = X + Y 
 sujeito a -X +Y = 4 
 X -Y = 4 
 X, Y ≥ 0 
 
Problema impossível ( S = ∅ ) 
 
 
 Min G = 4 . U + 4 . V 
 sujeito a - U + V ≥ 1 
 U - V ≥ 1 
 
 
Problema impossível ( S = ∅ ) 
 
 
Nota: Exemplos retirados de 'Programação Linear' ( vol. II ), Guerreiro et al, Mc Graw Hill 
 
 
 
 
 
 • 3 - Teorema da Complementaridade 
 
 
 Considerando o par de problemas 'primal-dual' 
 
Problema 'primal': 
 
Max F = C . X 
 
sujeito a A . X ≤ b 
 X ≥ 0 
Problema 'dual': 
 
Min G = bT . U 
 
sujeito a AT . U ≥ CT 
 U ≥ 0 , 
R
uy
 C
os
ta
, 2
00
6 
 
poderemos enunciar o Terorema da Complementaridade: 
 
 
 
 
 111
 
 É condição necessária e suficiente para que X e U, soluções admissíveis dos problemas 
primal e dual, respectivamente, sejam soluções óptimas, que verifiquem as seguintes 
condições: 
 
 Xk* > 0 ⇒ U*T . ak = ck [ 1 ] 
 
 U*T . ak > ck ⇒ Xk* = 0 [ 2 ] 
 
 Ui* > 0 ⇒ ai . X* = bi [ 3 ] 
 
 ai . X* < bi ⇒ Ui* = 0 [ 4 ] 
 
para i = 1, 2, ..., m e k = 1, 2, ..., n e representando ak e ai , respectivamente, a 
k-ésima coluna e a i-ésima linha de A. 
 
 
 De acordo com o Teorema da Complementaridade, podemos concluir que, 
relativamente à solução óptima: 
 
 • se uma 'variável primal' é positiva, então a correspondente 'restrição dual' é activa 
[ 1 ] e que se uma 'restrição dual' é não activa, então a correspondente 'variável primal' é nula 
[ 2 ]. 
 
 • se uma 'variável dual' é positiva, então a correspondente 'restrição primal' é activa 
[ 3 ] e que se uma 'restrição primal' é não activa, então a correspondente 'variável dual' é nula 
[ 4 ]. 
 
 
 
 Poderemos sintetizar o Teorema da Complementaridade, nas afirmações seguintes: 
 
 
 
 Relativamente às soluções óptimas do par de problemas 'primal-dual' de Programação 
Linear, 
 
 • é nulo o produto da k-ésima 'variável primal' pela variável de folga correspondente à k-
ésima 'restrição dual': 
 
 m 
 xk* . [ ( Σ aik . ui* ) - ck] = 0 ⇔ xk* . um+k* = 0 
 i = 1 
 k = 1, 2, ..., n 
 
 
 • é nulo o produto da i-ésima 'variável dual' pela variável de folga correspondente à 
i-ésima 'restrição primal': 
 
 n 
 ui* . [ ( Σ aik . xk* ) - bi ] = 0 ⇔ ui* . xn+i* = 0 
 k = 1 
 i = 1, 2, ..., m 
 
 
 
 
 Consideremos o seguinte par de problemas 'primal-dual' de Programação Linear: 
R
uy
 C
os
ta
, 2
00
6 
 
 112
 Max F = 2 X1 + 3 X2 Min G = 5 U1 + 3 U2 + 4 U3 
 
sujeito a sujeito a 
 3 X1 + 4 X2 ≤ 5 3 U1 + 6 U2 + 2 U3 ≥ 2 
 6 X1 - 1 X2 ≤ 3 4 U1 - 1 U2 + 4 U3 ≥ 3 
 2 X1 + 4 X2 ≤ 4 
 U1 , U2 , U3 ≥ 0 
 X1 , X2 ≥ 0 
 
 
 
 O Teorema da Complementaridade permite afirmar que, relativamente ao óptimo: 
 
 X1* > 0 ⇒ 3 U1* + 6 U2* + 2 U3* = 2 
 X2* > 0 ⇒ 4 U1* - 1 U2* + 4 U3* = 3 
 
 3 U1* + 6 U2* + 2 U3* > 2 ⇒ X1* = 0 
 4 U1* - 1 U2* + 4 U3* > 3 ⇒ X2* = 0 
 
 
 U1* > 0 ⇒ 3 X1* + 4 X2* = 5 
 U2* > 0 ⇒ 6 X1* - 1 X2* = 3 
 U3* > 0 ⇒ 2 X1* + 4 X2* = 4 
 
 3 X1* + 4 X2* < 5 ⇒ U1* = 0 
 6 X1* - 1 X2* < 3 ⇒ U2* = 0 
 2 X1* + 4 X2* < 4 ⇒ U3* = 0 
 
 
 
 
 Resolva, recorrendo ao Método gráfico o problema 'primal' dado. 
 
 [ Nós aguardamos, pacatamente, que resolva mesmo o problema ! ] 
 
 Como pode observar, a 1ª restrição é dominada pelas duas outras. A 
solução óptima do problema ( X1* = 8/13 ; X2* = 9/13 , com F* = 43/13 ) 
corresponde à intersecção das rectas respeitantes à 2ª e 3ª restrições. 
 
 Assim, relativamente ao óptimo, podemos concluir que a 2ª e a 3ª 
restrições são activas (isto é, têm folga nulas). Pelo Teorema da 
Complementaridade, podemos, imediatamente, concluir que se a 1ª restrição 
é a única restrição não activa, então a correspondente variável dual, U1* é a 
única variável dual 'original' nula. 
 
 Mas, se o problema dual tem duas restrições (e três variáveis 'originais'), 
então as correspondentes matrizes B são do tipo ( 2 x 2 ). Ora se U1* é 
nula, então U2* e U3* serão obrigatoriamente não nulas, isto é pertencerão à 
base óptima do problema dual. 
 
 Como, neste caso, é mais fácil resolver analiticamente o problema dual do 
que o problema primal e já sabemos quais as variáveis que integram a 
respectiva base óptima ... 
 R
uy
 C
os
ta
, 2
00
6 
 113
F ... resolva o problema 'dual' utilizando a formulação matricial do Simplex. 
¸ [ Nós aguardamos, pacatamente, que resolva mesmo o problema ! ] 
 
 Deve ter obtido U2* = 1/13 ; U3* = 10/13 , com G* = 43/13 [ Claro que se tinha 
que obter F* = G * ! ]. 
 
 A partir do problema 'dual' pode obter a solução óptima do problema 
'primal' (calculando CB . B-1 relativamente à base óptima do problema 'dual') 
- deve obter X1* = 8/13 ; X2* = 9/13 , verificando os resultados obtidos 
anteriormente. 
 
 
 
 Relativamente à solução óptima, os valores assumidos pelas variáveis duais 
costumam ser designados por preços-sombra associados às restrições do problema primal. 
A uma 'restrição primal' não activa corresponde um preço-sombra nulo. Um preço-sombra não 
nulo corresponde a uma restrição activa. A designação de preço-sombra, prende-se com o 
facto de, em aplicações de carácter económico, o preço-sombra correspondente a uma dada 
'restrição primal' representar a quantia máxima que estaríamos dispostos a pagar para 
incrementar em uma unidade a disponibilidade do correspondente recurso (isto é, aumentar em 
uma unidade o termo independente da restrição). 
 
 Se se alterar os termos independentes do problema primal (que, em geral, exprimem 
disponibilidades de recursos) - e se se mantiver a mesma base - é possível calcular facilmente 
a variação produzida na função objectivo: 
 
 Com efeito, sabemos que F = CB . B-1 . b = UT . b , pelo que se se alterar b para 
b' = b + ∆b, ter-se-á: 
 
 F' = UT . b' = UT . ( b + ∆b ) = UT . b + UT . ∆b = F + UT . ∆b , 
 
ou seja, ∆F = F' - F = UT . ∆b, isto é, ∆F = UT . ∆b , ou seja os valores óptimos das variáveis 
duais constituem coeficientes de sensibilidade da função objectivo, em relação aos termos 
independentes das restrições. 
 
 Apliquemos algumas das noções apresentadas, a partir da análise do seguinte par de 
problemas 'primal-dual' de Programação Linear: 
 
 Min F = - X1 + 2 X2 Max G = 5 U1 + 3 U2 + 4 U3 
 
sujeito a sujeito a 
 1 X1 + 1 X2 ≤ 10 1 U1 + 1 U2 + 1 U3 ≤ - 1 
 1 X1 + 1 X2 ≥ 5 1 U1 + 1 U2 - 1 U3 ≤ 2 
 1 X1 - 1 X2 ≤ 0 
 U1 ≤ 0 ; U2 ≥ 0 ; U3 ≤ 0 
 X1 , X2 ≥ 0 
 
 
 
X2 
 
Ð 10 + 
Max P = 1 X1 - 2 X2 
sujeito a 
 
 1 X1 + 1 X2 + 1 X3 = 10 
 1 X1 + 1 X2 - 1 X4 = 5 
 1 X1 - 1 X2 + 1 X5 = 0 
 
 X1 , X2 , X3 , X4 , X5 ≥ 0 
 
Î
5
 
5/2
 F 
  
 5/2 5 10 1 X
R
uy
 C
os
ta
, 2
00
6 
 114
 
 Como se pode observar, pela resolução gráfica, a solução óptima do problema 'primal' 
é ( X1* = 5/2 ; X2* = 5/2 ), a que corresponde F* = 5/2. De notar que o vértice do espaço de 
soluções admissíveis correspondente à solução óptima é definido pela intersecção da 2ª e 3ª 
restrições, ou seja, a base óptima é ( X1 ; X2 ; X3 ), já que X3*é a variável de folga 
correspondente à primeira restrição. Por outro lado, se a 2ª e 3ª 'restrições primais' são 
activas, então, as correspondentes variáveis duais estarão na base correspondente à solução 
óptima do problema dual, isto é, essa base é ( U2 ; U3 ). 
 
F Utilizando a formulação matricial do Simplex, verifique que ( X1 ; X2 ; X3 ) é a base óptima do problema primal. 
 
 ... Deve ter obtido r = [ + 1/2 ; + 3/2 ], ( X1* = 5/2 ; X2* = 5/2 ) e P*= - 5/2 ⇔ F * = 5/2 
 
F A partir da base óptima do problema primal, determine a solução óptima do problema dual. 
 
 ... Deve ter obtido UT* = [ 0 ; + 1/2 ; - 3/2 ] , isto é, U1* = 0 ; U2* = + 1/2 ; U3* = - 3/2. 
 ... De notar que G* = 5/2 = F* ü 
 
F Utilizando a formulação matricial do Simplex, aplicada ao problema dual (na forma standard), verifique que ( U2 ; U'3 ) é a base óptima desse problema. 
 
 ... Não se esqueça de fazer U3 = - U'3 . Deverá obter U2* = + 1/2 ; U'3* = + 3/2. 
 
F Utilizando a formulação matricial do Simplex, aplicada à base óptima do problema dual, verifique a solução óptima do problema primal. 
 
 ... Deverá obter ( X1* = 5/2 ; X2* = 5/2 ). 
 
 Recordemo-nos que X1* = 5/2 ; X2* = 5/2, pelo que facilmente determinamos os 
valores correspondentes das variáveis de folga X3*, X4* e X5* : X3* = 10 - ( X1* + X2* ) = 5 e 
X4* = X5* = = 0 (de recordar que a 2ª e 3ª 'restrições primais' são activas, pelo que as 
correspondentes variáveis de folga são nulas). Por outro lado, U1* = 0 ; U2* = + 1/2 ; U3* = 
- 3/2, pelo que os valores das correspondentes variáveis de folga do problema dual serão U4* 
= - 1 - ( U1*+ U2* + U3* ) = 0 e U5* = 2 - ( 1 U1* + 1 U2* - 1 U3 ) = 0 (ou seja as duas 
'restrições duais' são activas). 
 
 Verifiquemos o cumprimento das condições estabelecidas pelo Teorema da 
Complementaridade: 
 
 X3* . U1* = 0 ⇔ 5 . 0 = 0 ü 
 X4* . U2* = 0 ⇔ 0 . 1/2 = 0 ü 
 X5* . U3* = 0 ⇔ 0 . (-3/2) = 0 ü 
 
 X1* . U4* = 0 ⇔ 5/2 . 0 = 0 ü 
 X2* . U5* = 0 ⇔ 5/2 . 0 = 0 ü 
 
 
 
 Aproveitemos para retomar a noção de preço-sombra. Comecemos com U2* = + 1/2. 
Tal indica-nos que, se se incrementar uma unidade ao termo independente da segunda 
'restriçãoprimal', a função objectivo F sofrerá um incremento de + 1/2 ( o que, por acaso, não 
nos interessaria muito, já que o objectivo do problema primal é Minimizar F ! ). De notar que o 
que se referiu só é válido na hipótese de se manter óptima a mesma base ! 
R
uy
 C
os
ta
, 2
00
6 
 
 115
F Considere o problema primal 'alterado' (na forma standard): 
Max P = 1 X1 - 2 X2 
sujeito a 
 
 1 X1 + 1 X2 + 1 X3 = 10 
 1 X1 + 1 X2 - 1 X4 = 5 + 1 
 1 X1 - 1 X2 + 1 X5 = 0 
 
 X1 , X2 , X3 , X4 , X5 ≥ 0 
 
Utilizando a formulação matricial do Simplex, verifique que ( X1 ; X2 ; X3 ) 
se mantém a base óptima do problema primal. 
 
 ... Deve ter obtido r = [ + 1/2 ; + 3/2 ], ( X1* = 3 ; X2* = 3 ) e P*= - 3 ⇔ F * = 3 = 5/2 + 1/2 
 ↑ ↑ 
 F*orig. U2* 
 
 
 Se considerermos, agora, U3* = - 3/2, tal indicar-nos-á que, a um incremento de uma 
unidade no termo independente da terceira 'restrição primal', a função objectivo F sofrerá um 
'incremento' de - 3/2 ( o que, por acaso, nos interessaria, já que o objectivo do problema primal 
é Minimizar F ! ). ( Continuamos a assumir que se mantem óptima a mesma base ! ) 
 
F Considere o problema primal 'alterado' (na forma standard): 
Max P = 1 X1 - 2 X2 
sujeito a 
 
 1 X1 + 1 X2 + 1 X3 = 10 
 1 X1 + 1 X2 - 1 X4 = 5 
 1 X1 - 1 X2 + 1 X5 = 0 + 1 
 
 X1 , X2 , X3 , X4 , X5 ≥ 0 
 
Utilizando a formulação matricial do Simplex, verifique que ( X1 ; X2 ; X3 ) 
se mantém a base óptima do problema primal. 
 
 ... Deve ter obtido r = [ + 1/2 ; + 3/2 ], ( X1* = 3 ; X2* = 2 ) e P*= - 1 ⇔ F * = 1 = 5/2 + (- 3/2) 
 ↑ ↑ 
 F*orig. U3* 
 
 
 
 
 
 Assim, a Dualidade tem, pelo menos, duas importantes aplicações: por um lado, 
relativamente a um per de problemas 'primal-dual' de Programação Linear, permite-nos 
resolver o problema 'mais simples' e obter a solução de ambos; por outro lado, os valores 
óptimos das variáveis duais de um problema de Programação Linear podem ser encarados 
como coeficientes de sensibilidade da função objectivo, face a eventuais variações dos termos 
independentes ('disponibilidades de recursos'), o que é muito importante, numa interpretação 
de 'caractér económico'. R
uy
 C
os
ta
, 2
00
6 
 116

Continue navegando

Outros materiais