O documento discute a dualidade entre problemas de programação linear primal e dual. Explica como o problema dual é formado a partir do problema primal, com as restrições do primal se tornando a função objetivo do dual e vice-versa. Também mostra como a solução ótima do problema primal está relacionada à solução ótima do problema dual através do princípio da dualidade forte e fraca.
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
[Robson] 4. Dualidade
1. Dualidade
Alexandre Salles da Cunha
DCC-UFMG, Abril 2010
Alexandre Salles da Cunha Dualidade
2. Motiva¸˜o
ca
(P) max z = 4x1 +x2 +5x3 +3x4
s.t.: x1 −x2 −x3 +3x4 ≤ 1
5x2 +x2 +3x3 +8x4 ≤ 55
−x1 +2x2 +3x3 −5x4 ≤ 3
xi ≥ 0
Para obtermos limites inferiores: qualquer solu¸˜o vi´vel, por exemplo
ca a
1
x = (2, 1, 1, 2 ).
Como obtemos limites superiores ?
Alexandre Salles da Cunha Dualidade
3. Obtendo limites superiores
max z ∗ = 4x1 +x2 +5x3 +3x4
s.t.: x1 −x2 −x3 +3x4 ≤ 1
5x1 +x2 +3x3 +8x4 ≤ 55
−x1 +2x2 +3x3 −5x4 ≤ 3
xi ≥ 0
5
Multiplicando a segunda restri¸˜o por
ca 3 e a primeira e terceira por 0 e
somando o resultado temos:
5 5
(5x1 +x2 +3x3 +8x4 ) ≤ 55
3 3
25 40 275
= x1 + 5 x2 +5x3 + x4 ≤
3
3 3 3
Alexandre Salles da Cunha Dualidade
4. Obtendo limites superiores
Considerando a n˜o negatividade das vari´veis de decis˜o e comparando os
a a a
coeficientes na fun¸˜o objetivo com os coeficientes da restri¸˜o
ca ca
25 5 40 275
x1 + x2 + 5x3 + x4 ≤
3 3 3 3
25
x1 ≥ 0 e 3 ≥ 4,
5
x2 ≥ 0 e 3 ≥ 1,
x3 ≥ 0 e 5 ≥ 5,
40
x4 ≥ 0 e 3 ≥ 3,
25
temos que 4x1 + x2 + 5x3 + 3x4 ≤ 3 x1 + 5 x2 + 5x3 +
3
40
3 x4 ≤ 275
3 .
Logo o objetivo de qualquer solu¸˜o vi´vel ´ limitado superiormente por
ca a e
275 ∗ ≤ 275 .
3 e, em particular, z 3
Alexandre Salles da Cunha Dualidade
5. Qual o melhor limite superior que podemos obter ?
Mutiplicando cada linha i das restri¸˜es por uma quantidade pi ≥ 0:
co
p1 (x1 −x2 −x3 +3x4 ) ≤ 1p1
p2 (5x1 +x2 +3x3 +8x4 ) ≤ 55p2
p3 (−x1 +2x2 +3x3 −5x4 ) ≤ 3p3
Somando o resultado temos:
x1 (p1 + 5p2 − p3 ) +
x2 (−p1 + p2 + 2p3 ) +
x3 (−p1 + 3p2 + 3p3 ) +
x4 (+3p1 + 8p2 − 5p3 ) ≤ p1 + 55p2 + 3p3
Alexandre Salles da Cunha Dualidade
6. Qual o melhor limite que podemos obter ?
Se impusermos que os coeficientes em x1 , . . . , x4 na restri¸˜o sejam
ca
pelo menos t˜o grandes quanto os da fun¸˜o objetivo
a ca
(4x1 + x2 + 5x3 + 3x4 )
p1 + 5p2 − p3 ≥ 4
−p1 + p2 + 2p3 ≥ 1
−p1 + 3p2 + 3p3 ≥ 5
+3p1 + 8p2 − 5p3 ≥ 3
podemos dizer que w = p1 + 55p2 + 3p3 fornece um limite superior
para o objetivo de qualquer solu¸˜o vi´vel, em particular para a
ca a
solu¸˜o ´tima.
ca o
Alexandre Salles da Cunha Dualidade
7. Qual o melhor limite que podemos obter ?
Ent˜o ´ natural desejarmos conhecer o menor dos limites inferiores,
a e
gerados por um vetor (p1 , p2 , p3 ) conveniente. Ou seja, ´ natural
e
formularmos o seguinte Programa Linear:
O Problema Dual associado a (P)
(D) min w = p1 + 55p2 + 3p3
p1 + 5p2 − p3 ≥ 4
−p1 + p2 + 2p3 ≥ 1
−p1 + 3p2 + 3p3 ≥ 5
+3p1 + 8p2 − 5p3 ≥ 3
p1 , p2 , p3 ≥ 0
Alexandre Salles da Cunha Dualidade
8. De uma forma geral
Problema Primal Problema Dual
n m
max cj xj min bi pi
j=1 i =1
n m
aij xj ≤ bi i = 1, . . . , m aij pi ≥ cj j = 1, . . . , n
j=1 i =1
xj ≥ 0 j = 1, . . . , n pi ≥ 0 i = 1, . . . , n
Cada uma das restri¸˜es primais
co aij xj ≤ bi associa-se a uma
vari´vel dual pi e vice-versa.
a
Cada uma das restri¸˜es duais
co aij pi ≥ cj associa-se a uma vari´vel
a
primal xj e vice-versa.
Os coeficientes de cada vari´vel de um programa (primal ou dual) na
a
fun¸˜o objetivo aparecem no outro programa, como termo
ca
independente do sistema de restri¸˜es.
co
Alexandre Salles da Cunha Dualidade
9. Um outro ponto de partida
min c ′x
s.t.: Ax = b
x ≥ 0
onde A ∈ Rm×n , b ∈ Rm , c ∈ Rn .
Problema Relaxado
O sistema de restri¸˜es Ax = b ´ relaxado, e a sua viola¸˜o ´ penalizada
co e ca e
na fun¸˜o objetivo:
ca
min c ′ x + p ′ (b − Ax)
s.t.: x≥ 0
onde p ∈ Rm ´ um vetor da mesma dimens˜o de b.
e a
Alexandre Salles da Cunha Dualidade
10. O problema relaxado
L(p) :
g (p) = min c ′ x + p ′ (b − Ax)
s.t.: x≥ 0
Observe que o conjunto de viabilidade do problema relaxado inclui o
conjunto de viabilidade do problema original.
g (p) = minx≥0 c x + p ′ (b − Ax) ≤ (pela otim. de g (p))
′ ∗ ′ ∗
c x + p (b − Ax ) = (pela viab. de x ∗ )
c ′x ∗
Ou seja...
g (p) fornece um limite dual (neste caso inferior) para c ′ x ∗ .
Alexandre Salles da Cunha Dualidade
11. O melhor limite que podemos obter
O Problema Dual Lagrangeano
max g (p)
s.t.: p ∈ Rm sem restri¸˜es !
co
Os principais resultados te´ricos:
o
j´ mostramos que g (p) ≤ c ′ x ∗ (dualidade fraca)
a
vamos mostrar que maxg (p) = c ′ x ∗ (dualidade forte).
Quando os pre¸os p s˜o aqueles que resolvem o Problema Dual
c a
Lagrangeano, p ∗ , violar ou n˜o as restri¸˜es Ax = b ´ irrelevante.
a co e
Isto ´, basta resolvermos o problema minx≥0 g (p ∗ ) que obtemos uma
e
solu¸˜o ´tima para o problema primal !
ca o
Alexandre Salles da Cunha Dualidade
12. Explorando esta ´ltima observa¸˜o
u ca
g (p) = minx≥0 c ′ x + p ′ (b − Ax)
= p ′ b + minx≥0 c ′ − p ′ A)x
0, se c ′ − p ′ A ≥ 0
Logo: minx≥0 [(c ′ − p ′ A)x] =
−∞ c.c.
Ent˜o para maximizarmos g (p) basta considerarmos os valores de p
a
para os quais g (p) n˜o ´ −∞.
a e
Portanto, o Problema Dual Lagrangeano ´ equivalente a:
e
Dual de Programa¸˜o Linear
ca
max p ′b
s.t.: p ′A ≤ c
Alexandre Salles da Cunha Dualidade
13. Varia¸˜es
co
Primal
Fun¸˜o Lagrangeana, p ≥ 0
ca
min c ′x
g (p) = c ′ x + p ′ (b − Ax)
s.t.: Ax ≤ b
s.t.: x ≥0
x ≥0
g (p) = minx≥0 c x + p ′ (b − Ax) ≤ (pela otim. de g (p))
′ ∗ ′ ∗
c x + p (b − Ax ) ≤ (pela viab. de x ∗ , p ≤ 0)
c ′x ∗
Dual Lagrangeano
Dual Lagrangeano
max p ′b
max g (p)
s.t.: c ′ ≥ p ′A
s.t.: p≤0
p≤0
Alexandre Salles da Cunha Dualidade
14. Estrutura geral do par primal-dual
primal dual
min c ′x max b′p
ai′ x ≥ bi , i ∈ M1 pi ≥ 0, i ∈ M1
ai′ x ≤ bi , i ∈ M 2 pi ≤ 0, i ∈ M2
ai′ x = bi , i ∈ M 3 pi irrestrito , i ∈ M3
xj ≥ 0, j ∈ N1 p ′ Aj ≤ cj , j ∈ N1
xj ≤ 0, j ∈ N2 p ′ Aj ≥ cj , j ∈ N2
xj irrestrito, j ∈ N3 p ′ Aj = cj , j ∈ N3
Alexandre Salles da Cunha Dualidade
15. O dual do dual ´ o primal
e
Teorema
Se transformarmos o problema dual em um problema de minimiza¸˜o e
ca
escrevermos o seu dual, iremos obter um problema de otimiza¸˜o
ca
equivalente ao problema primal.
Exemplo:
min x1 +2x2 +3x3 max 5p1 +6p2 +4p3
−x1 +3x2 = 5 −p1 +2p2 ≤ 1
2x1 −x2 +3x3 ≥ 6 3p1 −p2 ≥ 2
x3 ≤ 4 3p2 +p3 = 3
x1 ≥ 0 p1 ≷ 0
x2 ≤ 0 p2 ≥ 0
x3 ≷ 0 p3 ≤ 0
Alexandre Salles da Cunha Dualidade
16. Equivalˆncias entre pares primal-dual
e
Par primal-dual I
min c′x max p′ b
Ax ≥ b p≥0
x ≷0 p′ A = c ′
Par primal-dual II - introduzindo folgas
min c ′ x + 0s max p′ b
Ax − Is = b p ≷0
x ≷0 p′ A = c ′
s ≥0 −p ≤ 0
Par primal-dual III - introduzindo vari´veis n˜o negativas
a a
min c′x + − c′x − max p′ b
+ −
Ax − Ax ≥b p≥0
x+ ≥ 0 p′ A ≤ c ′
x− ≥ 0 −p ′ A ≤ −c ′
17. Efeito no dual de restri¸˜es redundantes no primal
co
min c ′x
max p ′b
Ax = b
p′A ≤ c ′
x ≥0
Vamos assumir que am = m−1 γai para escalares γ1 , . . . , γm−1 .
i =1
Para qualquer x vi´vel: bm = a′ x = m−1 γi ai′ x = m−1 γi bi .
a i =1 i =1
As restri¸˜es duais m pi ai′ ≤ c ′ podem ser reescritas como:
co i =1
m−1 ′ ′
i =1 (pi + γi pm )ai ≤ c .
Al˜m disto, temos que o custo dual m pi bi = m−1 (pi + γi pm )bi .
e i =1 i =1
Defina qi = pi + γi pm e verifique dual anterior equivale a:
m−1
max qi bi
i =1
m−1
qi ai′ ≤ c ′
i =1
Alexandre Salles da Cunha Dualidade
18. Em s´
ıntese
Teorema
1 Suponha que tenhamos transformado um programa linear Π1 em
outro programa linear Π2 , por uma sequˆncia de transforma¸˜es da
e co
seguinte forma:
1 Substitua uma vari´vel livre pela diferen¸a de duas vari´veis n˜o
a c a a
negativas;
2 Substitua uma desigualdade por uma restri¸˜o de igualdade,
ca
introduzindo vari´veis de folga (excesso) convenientes;
a
3 Se alguma das linhas da matriz A em na forma padr˜o vi´vel ´ uma
a a e
combina¸˜o linear das outras linhas, elimine a correspondente linha do
ca
sistema na forma padr˜o.
a
Ent˜o os dois problemas Π1 , Π2 s˜o equivalentes, isto ´, ou os dois s˜o
a a e a
invi´veis ou possuem o mesmo custo ´timo.
a o
Alexandre Salles da Cunha Dualidade
19. Dualidade Fraca
Par primal-dual
(P) min c ′x
(D) max p′b
Ax = b
p ′A ≤ c ′
x ≥0
Teorema
Se x ´ uma solu¸˜o vi´vel para o problema primal (P) e p ´ uma solu¸˜o
e ca a e ca
vi´vel para o dual (D) de (P), ent˜o p
a a ′ b ≤ c ′ x.
Prova
Ax = b → p ′ Ax = p ′ b
p ′ A ≤ c ′ → p ′ Ax ≤ c ′ x
p′b ≤ c ′x
Alexandre Salles da Cunha Dualidade
20. Corol´rios
a
1 Se o custo primal ´timo ´ −∞, ent˜o o dual deve ser invi´vel.
o e a a
2 Se o custo dual ´timo ´ ∞, ent˜o o problema primal deve ser invi´vel.
o e a a
3 Se x e p s˜o solu¸˜es vi´veis para P e D, respetivamente e se
a co a
p ′ b = c ′ x, ent˜o x, p resolvem P,D.
a
Alexandre Salles da Cunha Dualidade
21. Dualidade Forte
Teorema
Se o programa primal (P) possui uma solu¸˜o ´tima x ∗ , ent˜o o seu dual
ca o a
(D) possui uma solu¸˜o p
ca ∗ tal que p ′ b = c ′ x.
Prova
Caso 1 - Vamos considerar o primal na forma padr˜o e posto de A
a
completo.
Assumindo que o m´todo simplex tenha sido implementado com o
e
crit´rio de pivoteamento lexicogr´fico, obtemos uma solu¸˜o ´tima
e a ca o
associada ` base B, isto ´, x
a e ∗ = (x ∗ , x ∗ ) = (c B −1 , 0). Assuma que
B N B
N seja o conjunto dos ´ındices das vari´veis n˜o b´sicas na solu¸˜o
a a a ca
o
´tima.
Defina p ∗′ = cB B −1 e verifique que p ∗ ´ dual vi´vel (o simplex
′ e a
terminou com condi¸˜es de custo reduzido n˜o negativos).
co a
uma vez que p ∗′ b = cB B −1 b = (cB , cN )′ (xB , 0)b, segue o resultado.
′
Alexandre Salles da Cunha Dualidade
22. Dualidade Forte
Prova
Caso 2 - posto de A incompleto e o problema n˜o escrito na forma
a
padr˜o.
a
Reescreva o problema primal na forma padr˜o, elimine as linhas
a
redundantes e redefina as vari´eis duais.
v
Alexandre Salles da Cunha Dualidade
24. Analogia mecˆnica da dualidade forte
a
Vamos imaginar que uma bola seja introduzida em um poliedro (n˜o
a
vazio), definido pelas restri¸˜es ai x ≥ bi , ∀i .
co
O ponto de energia m´ ınima da bola corresponde ao canto mais
inferior poss´ do poliedro, dado por x ∗ . Ou seja, o ponto de
ıvel
ıbrio x ∗ corresponde a solu¸˜o do Programa Linear:
equil´ ca
min c ′x
ai′ x ≥ bi ∀i
onde c ´ um vetor na dire¸˜o oposta ao campo gravitacional.
e ca
As for¸as normais `s retri¸˜es ativas em x ∗ comp˜em a for¸a que
c a co o c
equilibra a for¸a exercida pelo campo gravitacional. Isto ´:
c e
c = i pi ai , onde pi s˜o pesos n˜o negativos.
a a
Alexandre Salles da Cunha Dualidade
25. Analogia mecˆnica da dualidade forte
a
Em particular, p ´ uma solu¸˜o vi´vel para o Programa Dual
e ca a
max p′b
p′A = c ′
p≥0
Dado que as for¸as s´ podem se exercidas pelas restri¸˜es ativas em
c o co
x ∗ , devemos ter pi = 0 quando ai′ x ∗ > bi .
Consequentemente, temos pi (bi − ai′ x ∗ ) = 0, ∀i
Logo p ′ b = i pi bi = i pi ai′ x ∗ = c ′ x ∗ .
Ent˜o p ´ uma solu¸˜o ´tima do dual.
a e ca o
Alexandre Salles da Cunha Dualidade
26. Possibilidades do par primal-dual
´
Otimo Finito Ilimitado Invi´vel
a
´
Otimo finito Poss´
ıvel Imposs´ıvel Imposs´ıvel
Ilimitado Imposs´ıvel Imposs´ıvel Poss´
ıvel
Invi´vel
a Imposs´ıvel Poss´
ıvel Possivel
Alexandre Salles da Cunha Dualidade
27. Caso Invi´vel-Invi´vel
a a
Primal
min x1 + 2x2
x1 + x2 = 1
2x1 + 2x2 = 3
Dual
max 2p1 + 2x2
p1 + 2p2 = 1
p1 + 2p2 = 2
Alexandre Salles da Cunha Dualidade
28. Teorema das Folgas Complementares
Uma importante rela¸˜o entre os pares primal-dual ´ expresso na forma da
ca e
condi¸˜o de complementaridade-folga (ccf):
ca
Teorema
Sejam x e p duas solu¸˜es vi´veis, respectivamente para os programas
co a
primal e dual. Os vetores x e p s˜o ´timos se e somente se:
a o
pi (ai′ x − bi ) = 0 ∀i
(cj − p ′ Aj )xj = 0 ∀j
Alexandre Salles da Cunha Dualidade
29. Prova
Prova
(1) Se satisfaz x, p s˜o vi´veis e satisfazem ccf, ent˜o o par x, p ´ ´timo.
a a a eo
pi (ai′ x − bi ) = 0 → pi ai′ x = pi bi
i i i
′ ′
xj (cj − p Aj ) = 0 → cj xj = p A j xj = p′b
j j j
Tendo em vista a Dualidade Fraca, p ′ b = c ′ x, logo demonstra-se a
otimalidade de x, p.
Alexandre Salles da Cunha Dualidade
30. Prova
Prova
(2) Se o par x, p ´ vi´vel e ´timo, ent˜o ccf s˜o satisfeitas.
e a o a a
Defina ui = pi (ai′ x − bi ) e vj = (cj − p ′ Aj )xj .
Observe que dado a viabilidade de x, p temos que ui ≥ 0, ∀i e
vj ≥ 0, ∀j.
Observe ainda que:
ui + vj = i pi a′ x − i pi bi +
i j
′
j cj xj − p j A j xj =
c ′x − p′b = 0
Logo, como ui ≥ 0, ∀i , vj ≥ 0, ∀j temos que:
ui = 0 ∀i
i ui + j vj = 0 → vj = 0 ∀j
Alexandre Salles da Cunha Dualidade
31. Exemplo
min 13x1 + 10x2 + 6x3 max 8p1 + 3p2
5x1 + x2 + 3x3 = 8 5p1 + 3p2 ≤ 13
3x1 + x2 = 3 p1 + p2 ≤ 10
x ≥0 3p1 ≤ 6
As condi¸˜es pi (bi −
co ai′ x) = 0 s˜o automaticamente satisfeitas para
a
qualquer x vi´vel.
a
Vamos considerear a solu¸˜o ´tima x ∗ = (1, 0, 1). Para a vari´vel n˜o
ca o a a
∗ (c − p ′ A ) = 0, uma vez que x ∗ = 0.
b´sica x2 , temos que x2 2
a 2 2
Resolvendo o sistema linear associado a p ′ B = cB :
′
5p1 + 3p2 = 13
3p1 = 6
cuja solu¸˜o ´ p1 = 2, p1 = 1 e custo dual ´ 19
ca e e
Alexandre Salles da Cunha Dualidade
32. Representa¸˜o geom´trica do dual
ca e
min c ′x max p′b
ai′ x ≥ bi i = 1, . . . , m m
pi ai = c
i =1
p≥0
Vamos assumir que:
I denota um subconjunto de {1, . . . , m}, |I | = n, tal que os vetores
ai : i ∈ I s˜o l.i..
a
Como o sistema ai x = bi , i ∈ I admite solu¸˜o unica, denote x I esta
ca ´
solu¸˜o, que ´ b´sica para o primal.
ca e a
Assuma que x I ´ n˜o degenerada, isto ´ ai′ x I = bi , i ∈ I .
e a e
Vamos assumir que p ∈ Rm seja um vetor de vari´veis duais, n˜o
a a
necessariamente ´timo.
o
Alexandre Salles da Cunha Dualidade
33. Representa¸˜o geom´trica do dual
ca e
Vamos estabelecer as condi¸˜es requeridas para que o par x, p sejam
co
otimos para os programas primal e dual, respectivamente:
´
1 a′ x ≥ b , ∀i ∈ 1, . . . , m (viabilidade primal)
i i
2 p = 0, ∀i ∈ I (complementaridade folga)
i
m
i =1 pi ai = c (viabilidade dual)
3
4 p ≥ 0 (viabilidade dual)
Ent˜o temos:
a
Diante das ccf, a condi¸˜o (3) ficam:
ca i ∈I pi ai = c, que admite
solu¸˜o unica, uma vez que os vetores ai : i ∈ I s˜o li. Vamos denotar
ca ´ a
por p I esta solu¸˜o.
ca
Observe que os vetores ai : i ∈ I formam uma base para o dual (n
restri¸˜es de igualdade satisfeitas e m − n restri¸˜es de n˜o
co co a
negatividade justas para i ∈ I )
Para o vetor p I ser via´vel, ´ necess´rio que p I ≥ 0. Isto significa que
a e a
c deve ser uma combina¸˜o n˜o negativa das linhas ai : i ∈ I
ca a
Alexandre Salles da Cunha Dualidade
36. Vari´veis duais interpretadas como custos marginais
a
primal
min c ′x
Ax = b
x ≥ 0
Hip´teses:
o
linhas de A s˜o li.
a
existe solu¸˜o b´sica ´tima n˜o degenerada x ∗
ca a o a
vamos assumir que B seja a base ´tima associada.
o
Vamos assumir tamb´m que p ′ = cB B −1 seja o vetor dual ´timo
e o
associado a esta base.
Alexandre Salles da Cunha Dualidade
37. Vari´veis duais interpretadas como custos marginais
a
O que acontece se perturbarmos por d o vetor b ?
Desde que a perturba¸˜o seja pequena o suficiente para
ca
B −1 (b + d) ≥ 0, a base ´tima permanece a mesma.
o
Esta perturba¸˜o suficientemente pequena para que a base otima
ca ´
permane¸a a mesma existe como consequˆncia da n˜o degenera¸˜o
c e a ca
primal.
A base permanece ´tima porque al´m de permanecer vi´vel, n˜o h´
o e a a a
modifica¸˜o na condi¸˜o de otimalidade primal (ou viabilidade dual).
ca ca
Com a introdu¸˜o da perturba¸˜o, o custo dual passa de p ′ b para
ca ca
p ′ (b + d).
Logo uma mudan¸a de di de uma unidade no i −´simo termo
c e
independente acarreta uma modifica¸˜o de custo de pi , na fun¸˜o
ca ca
objetivo dual e, consequentemetne no novo objetivo primal.
Assim sendo, as vari´veis duais podem ser interpretadas como o custo
a
marginal por unidade de aumento de bi .
Alexandre Salles da Cunha Dualidade
38. Cada vari´vel possui um custo em termos dos pre¸os duais
a c
Vamos considerar a vari´vel (primal) j cujo custo ´ cj .
a e
Podemos sintetizar o custo da vari´vel primal utilizada (b´sica) em
a a
termos dos pre¸os das vari´veis duais (interpretados como pre¸os por
c a c
unidades de recursos dos insumos empregados).
Ou seja, se j ´ uma vari´vel b´sica utilizada, cj = p ′ Aj .
e a a
Toda vari´vel tem ent˜o um custo em termos dos fatores de produ¸˜o.
a a ca
Alexandre Salles da Cunha Dualidade
39. M´todo Dual Simplex
e
Na demonstra¸˜o do Teorema da Dualidade Forte, definimos o vetor
ca
dual p ′ = cb B −1 e observamos que a condi¸˜o de otimalidade primal
′ ca
c ′ − c ′ B −1 A ≥ 0 equivale na verdade ` condi¸˜o de viabilidade dual
a ca
B
p′A ≤ c ′.
Podemos ent˜o pensar no m´todo Simplex como um algoritmo que
a e
mant´m a viabilidade primal durante todo seu curso e quando se
e
depara com a viabilidade dual, comprova a otimalidade primal (e dual
tamb´m !).
e
O M´todo Simplex ´ portanto um algoritmo primal.
e e
Uma alternativa ao Simplex Primal ´ o M´todo Dual Simplex que
e e
gera solu¸˜es b´sicas vi´veis para o problema dual e caminha para a
co a a
viabilidade dual - M´todo Dual Simplex.
e
Alexandre Salles da Cunha Dualidade
40. M´todo Dual Simplex
e
Quadro Simplex
min z = cB B −1 xB + (cN − cB B −1 N)xN
′ ′ ′
xB = B −1 b − B −1 NxN
Full Tableau Correspondente:
−cB B −1 b c
B −1 b B −1 A
Ao longo de todo o algoritmo c ≥ 0, p = cB B −1 ≷ 0 (dual vi´vel)
′ a
Quando observarmos B −1 b ≥ 0 temos viabilidade primal e portanto a
solu¸˜o dual em m´os ´ ´tima.
ca a eo
Alexandre Salles da Cunha Dualidade
41. M´todo Dual Simplex
e
Vamos assumir que B −1 b ≥ 0.
Ent˜o obtenha l tal que xB(l) < 0 e considere a linha l do Tableau,
a
chamada linha pivot. Esta linha tem as seguintes entradas:
xB(l) , v1 , . . . , vn , onde vi ´ a l -´sima entrada do vetor B −1 Ai .
e e
Para todo i : vi < 0 (caso tal ´ a c
ındice exista), calculamos a raz˜o |vii | .
Seja j o ´ ındice da vari´vel para a qual a raz˜o m´
a a ınima ´ atingida, isto
e
c c
´, vj < 0 e |vjj | = min{ |vii | , ∀i : vi < 0}. A entrada vj ´ chamada
e e
elemento pivot.
Realizamos uma mudan¸a de base: a coluna Aj entra na base e a
c
coluna AB(l) sai da base. Esta opera¸˜o de pivoteamento ocorre da
ca
mesma forma que no m´todo Simplex Primal: somamos a todas as
e
linhas do Full Tableau (exceto a linha l ) um m´ltiplo da linha pivot
u
de forma que todos os elementos da coluna j sejam zero, exceto o
elemento vj que ser´ transformado em um 1.
a
Em particular, para zerar o custo reduzido da linha zero do tableau,
c
multiplicamos a linha pivot por |vjj | e somamos ` linha zero.
a
Alexandre Salles da Cunha Dualidade
42. Alguns casos a considerar
1 ındice j ∈ N (n˜o b´sico) temos a
Caso c j = 0 para algum ´ a a
degenera¸˜o dual e o algoritmo termina dependendo das regras de
ca
pivoteamento empregadas (lexicogr´fica e de Bland).
a
2 Dado uma escolha de vari´vel B(l ) para sair da base, caso n˜o exista
a a
i : vi < 0, o custo dual ´timo ´ ∞ e o problema primal ´ invi´vel. O
o e e a
algoritmo ent˜o termina.
a
Alexandre Salles da Cunha Dualidade
43. Exemplo
Quadro simplex, dual vi´vel
a
x1 x2 x3 x4 x5
-w= 0 2 6 10 0 0
x4 = 2 -2 4 1 1 0
x5 = -1 4 -2 -3 0 1
Opera¸˜o de pivoteamento:
ca
Sai da base: x5 uma vez que (B −1 b)2 < 0.
Candidatos a entrar na base: x2 , x3 .
Quem entra na base, x2 , uma vez que determina o teste da raz˜o.
a
Como efetuar o pivoteamento ?
Alexandre Salles da Cunha Dualidade
44. Exemplo - implementando o pivoteamento
Devemos ”re-inverter”a matriz, expressando as novas vari´veis b´sicas
a a
em termos das novas n˜o b´sicas.
a a
Devemos fazer opera¸˜es linha elementares de forma a obter, nas
co
colunas do tableau associadas a uma vari´vel b´sica, um vetor de
a a
zeros, exceto por uma entrada 1, que ocorre na linha associada aquela
vari´vel b´sica.
a a
Da mesma forma, devemos fazer com que a nova linha zero reflita a
escolha das vari´veis n˜o b´sicas, isto ´, devemos zerar a entrada do
a a a e
custo reduzido associado ` vari´vel i .
a a
Alexandre Salles da Cunha Dualidade
45. Quadro inicial
x1 x2 x3 x4 x5
-w= 0 2 6 10 0 0
x4 = 2 -2 4 1 1 0
x5 = -1 4 -2 -3 0 1
Opera¸˜es linha elementares:
co
c
L0 ← L0 + |vjj | Ll .
para todo k = 1, . . . , m, k = l , Lk ← Lk + mk,l Ll , onde mk,l ´ o
e
multiplicador associado.
Ao final, dividimos a linha l por vi .
Quadro resultante
x1 x2 x3 x4 x5
-w= -3 14 0 1 0 3
x4 = 0 6 0 -5 1 2
1 3
x2 = 2 -2 1 2 0 -1
2
Alexandre Salles da Cunha Dualidade
46. Quando usar o Dual Simplex
Quando o dual tiver alguma estrutura desej´vel (exemplo: problema
a
de fluxo em redes que admite alguma especializa¸˜o do Simplex).
ca
Quando uma base dual vi´vel for prontamente dispon´
a ıvel.
Isto tipicamente ocorre em situa¸˜es de re-otimiza¸˜o onde:
co ca
◮ Algum elemento de b foi perturbado e a base ´tima do programa
o
anterior n˜o ´ mais primal vi´vel e sim dual vi´vel.
a e a a
◮ Alguma restri¸˜o adicional foi inserida no problema primal. Observe
ca
que a introdu¸˜o desta restri¸˜o n˜o afeta a viabilidade dual.
ca ca a
Alexandre Salles da Cunha Dualidade
47. Interpreta¸˜o geom´trica do dual
ca e
Continuamos considerando que o problema primal est´ na forma padr˜o e
a a
que as linhas de A s˜o li.
a
Dado que temos a base B formada pelas linhas AB(1) , . . . , AB(m) ,
temos a solu¸˜o b´sica xB = B −1 b.
ca a
Com a mesma base, podemos resolver o sistema linear p ′ B = cB .
′
Uma vez que B admite inversa, este sistema tem solu¸˜o unica
ca ´
p ′ = B −1 cb .
′
Esta solu¸˜o dual p ´ tal que o n´mero de restri¸˜es duais justas, tais
ca e u co
que seus vetores de coeficientes s˜o l.i. ´ igual ` dimens˜o do espa¸o
a e a a c
dual.
Por este motivo, a solu¸˜o p ´ uma solu¸˜o b´sica para o dual.
ca e ca a
Alexandre Salles da Cunha Dualidade
48. Exemplo
min x1 + x2 max 2p1 + p2
x1 + 2x2 − x3 = 2 p1 + p2 ≤ 1
x1 − x4 = 1 2p1 ≤ 1
x ≥0 p≥0
Alexandre Salles da Cunha Dualidade
50. Dualidade e degenera¸˜o
ca
Vamos continuar assumindo que o problema primal encontra-se na forma
padr˜o e que a matriz de coeficientes A possui posto m.
a
min c ′x
Ax = b
x ≥0
Qualquer matriz B que forme uma base leva a uma solu¸˜o dual
ca
b´sica, dada por p ′ = cB B −1 .
a
As restri¸˜es do programa dual s˜o p ′ A ≥ c ′ que podem ser
co a
desmembradas em dois conjuntos de restri¸˜es, envolvendo as colunas
co
b´sicas e n˜o b´sicas:
a a a
◮ p ′ B ≥ cB . Estas m restri¸oes s˜o naturalmente satisfeitas de forma
c˜ a
justa dado que p ′ = cB B −1 .
′
◮ p ′ N ≥ cN . Na base ´tima, estas restri¸oes duais, que representam a
o c˜
condi¸˜o de otimalidade associada a custos reduzidos, s˜o satisfeitas.
ca a
Entretanto, algumas delas podem ser satisfeitas de forma justa.
Alexandre Salles da Cunha Dualidade
51. Dualidade e degenera¸˜o
ca
Degenera¸˜o no dual
ca
Sempre que houver uma vari´vel n˜o b´sica j : p ′ Aj = cj isto ´
a a a e
c j = 0, temos degenera¸˜o dual.
ca
Note que o espa¸o de viabilidade dual est´ imerso em Rm e portanto,
c a
temos mais de m restri¸˜es satisfeitas de forma justa no ponto dual
co
dado por p ′ = cB B −1 .
Alexandre Salles da Cunha Dualidade
52. Multiplicidade de solu¸˜es primais ´timas
co o
Solu¸˜es primais ´timas m´ltiplas
co o u
Dado um conjunto de vari´veis b´sicas ´timas {B(1), . . . , B(m)},
a a o
para existirem m´ltiplas solu¸˜es primais ´timas ´ necess´rio existir
u co o e a
pelo menos duas solu¸˜es b´sicas ´timas.
co a o
Portanto, ´ necess´rio existir uma vari´vel n˜o b´sica j : c j = 0.
e a a a a
A condi¸˜o acima implica que o problema dual ´ degenerado.
ca e
Aten¸˜o: existir j n˜o b´sico tal que c j = 0 n˜o implica que:
ca a a a
existem m´ltiplicas solu¸˜es primais ´timas
u co o
existem m´ltiplas bases ´timas (podemos ter v´rias bases associadas
u o a
a
` mesma solu¸˜o b´sica, mas apenas uma das bases sendo vi´vel).
ca a a
Alexandre Salles da Cunha Dualidade
53. Multiplicidade de solu¸˜es b´sicas ´timas
co a o
Para existirem m´ltiplas solu¸˜es b´sicas ´timas, ´ necess´rio
u co a o e a
existirem duas bases ´timas.
o
´
E necess´rio que c j = 0 para alguma vari´vel n˜o b´sica j, logo o
a a a a
dual ´ degenerado (mais de m restri¸˜es duais justas).
e co
Se dispomos de duas bases ´timas no primal, duas alternativas podem
o
ocorrer:
◮ O programa primal possui uma ´nica solu¸˜o b´sica ´tima e, neste
u ca a o
caso, esta solu¸˜o precisa ser degenerada (caso contr´rio n˜o existiriam
ca a a
duas bases ´timas)
o
◮ O programa primal possui pelo menos duas solu¸oes b´sicas ´timas (o
c˜ a o
primal n˜o precisa ser degenerado, pode ser ou n˜o degenerado).
a a
Alexandre Salles da Cunha Dualidade
54. Exemplo
min 3x1 + x2 max 2p1
x1 + x2 − x3 = 2 p1 + 2p2 ≤ 3
2x1 − x2 − x4 = 0 p1 − p2 ≤ 1
x ≥0 p≥0
Eliminando x3 , x4 do primal temos:
Alexandre Salles da Cunha Dualidade
55. Modifica¸˜o no exemplo
ca
O que aconteceria ser o objetivo do programa primal anterior fosse
alterado para min x1 + x2 ?
Alexandre Salles da Cunha Dualidade
56. Lema de Farkas
Certificado de inviabilidade
Suponhamos que temos em m˜os um sistema de restri¸˜es lineares na
a co
forma padr˜o Ax = b, x ≥ 0.
a
O Lema de Farkas nos fornece um meio, empregando Teoria da
Dualidade, de apresentar um certificado de inviabilidade de um
sistema linear na forma padr˜o, dado que outro sistema linear
a
associado possui uma solu¸˜o.
ca
Alexandre Salles da Cunha Dualidade
57. Lema de Farkas
Vamos considerar o sistema na forma padr˜o Ax = b, x ≥ 0.
a
Vamos ent˜o admitir que exista um vetor p tal que p ′ A ≥ 0′ e que
a
p ′ b < 0.
Observe que diante disto temos p ′ Ax ≥ 0 e ent˜o p ′ b ≥ 0.
a
Assim sendo, se o primeiro sistema linear admite solu¸˜o, o segundo
ca
precisa ser invi´vel.
a
Teorema
Lema de Farkas
Seja A uma matriz de dimens˜es m × n e b ∈ Rm . Ent˜o exatamente uma
o a
das seguintes afirmativas ´ verificada:
e
1 Existe algum x ≥ 0 : Ax = b
2 Existe algum p : p ′ A ≥ 0′ , p ′ b < 0.
Alexandre Salles da Cunha Dualidade
58. Lema de Farkas
Prova
1 J´ provamos que se existe x ≥ 0 : Ax = b e p ′ A ≥ 0 ent˜o a segunda
a a
alternativa n˜o pode acontecer.
a
2 Vamos considerar n˜o exista x ≥ 0 : Ax = b e escrever o par primal
a
dual:
max 0′ x min p′b
Ax = b p ′A ≥ 0
x ≥0
3 Como o primal ´ invi´vel, seu dual ou ´ invi´vel ou ilimitado.
e a e a
4 O vetor p = 0 ´ uma solu¸˜o dual vi´vel. Ent˜o o dual ´ ilimitado.
e ca a a e
5 Assim sendo, existe p vi´vel (isto ´, p : p ′ A ≥ 0 de forma que p ′ b < 0.
a e
Alexandre Salles da Cunha Dualidade
59. Ilustra¸˜o geom´trica do Lema de Farkas
ca e
Vamos considerar as colunas A1 , . . . , An de A. A existˆncia de
e
x ≥ 0 : Ax = b implica que b = i Ai xi , isto ´ b pode ser escrito como
e
uma combina¸˜o linear n˜o negativa das colunas de A.
ca a
Alexandre Salles da Cunha Dualidade
60. Ilustra¸˜o geom´trica do Lema de Farkas
ca e
A inexistˆncia de x ≥ 0 : Ax = b sugere que deve existir um vetor p e um
e
hiperplano associado {z : p ′ z = 0} que divide o espa¸o em duas regi˜es:
c o
em uma encontram-se as combina¸˜es n˜o negativas das colunas de A. Na
co a
outra, encontra-se o vetor b. Ent˜o temos p ′ b < 0 e p ′ Aj ≥ 0 para
a
qualquer coluna j.
Alexandre Salles da Cunha Dualidade
61. Ilustra¸˜o geom´trica do Lema de Farkas
ca e
A ultima observa¸˜o leva ao seguinte resultado:
´ ca
Corol´rio
a
Sejam A1 , . . . , An as colunas de A e b um vetor em Rm . Suponha que
qualquer vetor p que satisfa¸a p ′ Ai ≥ 0, i = 1, . . . , n tamb´m satisfa¸a
c e c
p ′ b ≥ 0. Ent˜o b pode ser escrito como combina¸˜o linear n˜o negativa
a ca a
das colunas de A.
Alexandre Salles da Cunha Dualidade
62. Theorems of the alternative
Teorema
Suponha que o sistema linear Ax ≤ b possua ao menos uma solu¸˜o e seja
ca
d um escalar qualquer. Ent˜o, as seguintes afirmativas s˜o equivalentes:
a a
1 Toda solu¸˜o vi´vel para o sistema linear Ax ≤ b satisfaz c ′ x ≤ d.
ca a
2 Existe algum p ≥ 0 tal que p ′ A = c ′ e p ′ b ≤ d.
Alexandre Salles da Cunha Dualidade
63. Prova
Parte 1: Se hip´tese + (1) ent˜o (2).
o a
min p′b
max c ′x
p′A = c
Ax ≤ b
p≥0
Uma vez que existe x : Ax ≤ b satisfazendo c ′ x ≤ d, o programa
primal ´ limitado superiormente.
e
Logo, seu dual ´ tamb´m limitado. Por dualidade forte, a solu¸˜o
e e ca
o
´tima do dual tamb´m possui limitante superior por d.
e
Alexandre Salles da Cunha Dualidade
64. Prova
Parte 1: Se hip´tese + (2) ent˜o (1).
o a
min p′b
max c ′x
p ′A = 0
Ax ≤ b
p≥0
Se algum p satisfaz p′A
= c ′, p
≥0e p′b
≤ d ent˜o por dualidade
a
fraca qualquer solu¸˜o do sistema linear Ax ≤ b precisa satisfazer
ca
c ′ x ≤ d.
Alexandre Salles da Cunha Dualidade
65. Cones e raios extremos
Cones
Um conjunto C ⊂ Rn ´ um cone se λx ∈ C para todo x ∈ C , λ ≥ 0.
e
Observe que diante desta defini¸˜o 0 ∈ C (escolha qualquer x ∈ C e
ca
λ = 0.
Alexandre Salles da Cunha Dualidade
66. Cones
Um conjunto do tipo P = {x ∈ Rn : Ax ≥ 0} ´ chamado cone poliedral.
e
Teorema
Seja C ⊂ Rn um cone poliedral definido pelas restri¸˜es co
′ x ≥ 0, i = 1, . . . , m. Ent˜o, as seguintes afirmativas s˜o equivalentes:
ai a a
1 O vetor 0 ´ um ponto extremo de C
e
2 O cone C n˜o possui linha
a
3 Existem n vetores ai linearmente independentes dentre aqueles que
definem C .
Alexandre Salles da Cunha Dualidade
67. Recession cone
Considere um poliedro n˜o vazio P = {x ∈ Rn : Ax ≥ b} e um ponto fixo
a
y ∈ P. O recession cone em y ´ dado pelo conjunto das dire¸˜es d ao
e co
longo das quais podemos nos mover indefinidamente sem sair do conjunto
P.
O recession cone ´ definido como:
e
{d ∈ Rn : A(y + λd) ≥ b, ∀λ ≥ 0}
N˜o ´ dif´ perceber que o recession cone ´ dado por
a e ıcil e
{d ∈ Rn : Ad ≥ 0}
e portanto ´ um cone poliedral.
e
O resultado acima mostra que o recession cone ´ independente do
e
ponto que fixamos no poliedro P.
Para o caso onde ∅ = P = {x ∈ Rn : Ax = b, x ≥ 0}, o recession
cone ´ o conjunto dos vetores que resolve Ax = 0, x ≥ 0.
e
Alexandre Salles da Cunha Dualidade
69. Raios extremos
Defini¸˜o
ca
1 Um elemento n˜o nulo x do cone poliedral C ⊂ Rn ´ chamado um
a e
raio extremo se existem n − 1 restri¸˜es ativas em x.
co
2 Um raio extremo extremo do cone de recess˜o associado a um
a
poliedro P ´ tamb´m um raio extremo de P.
e e
Observa¸˜es:
co
Dois raios extremos s˜o equivalentes se um ´ um m´ltiplo positivo do
a e u
outro.
A interse¸˜o de n − 1 restri¸˜es lineares li define uma linha. Assim
ca co
sendo, a combina¸˜o de n − 1 restri¸˜es li pode produzir no m´ximo
ca co a
dois raios extremos, com dire¸˜es opostas.
co
Dado que o n´mero de combina¸˜es de n − 1 restri¸˜es li ´ finito, o
u co co e
n´mero de raios extremos n˜o equivalentes ´ finito tamb´m.
u a e e
Um conjunto de raios extremos ´ dito completo se cont´m um
e e
exemplar de cada conjunto de raios extremos equivalentes.
Alexandre Salles da Cunha Dualidade
70. Raios extremos - ilustra¸˜o para n = 2, 3
ca
Alexandre Salles da Cunha Dualidade
71. Caracteriza¸˜o de Programas Lineares Ilimitados
ca
Caso 1: a regi˜o de viabiliade ´ um cone:
a e
Teorema
Considere o problema de minimizar c ′ x sobre um cone
{x ∈ Rn : ai′ x ≥ 0, i = 1, . . . , m}. O custo ´timo ´ −∞ se e somente se
o e
c ′ d < 0 para algum raio extremo d de C .
Caso 2: poliedro qualquer que contenha um ponto extremo:
Teorema
Considere o problema de minimizar c ′ x sujeito ao conjunto de restri¸˜es
co
lineares P = {x ∈ R n : a′ x ≥ b , i = 1, . . . , m}. Assuma que P possua
i i
pelo menos um ponto extremo.
Ent˜o o custo ´timo ´ −∞ se e somente se c ′ d < 0 para algum raio
a o e
extremo d de P.
Alexandre Salles da Cunha Dualidade
72. Representa¸˜o de poliedros
ca
Teorema
Seja P = {x ∈ Rn : Ax ≥ b} um poliedro n˜o vazio contendo pelo menos
a
um ponto extremo. Assuma ent˜o que {x 1 , . . . , x k } denote o conjunto dos
a
pontos extremos de P e que {w 1 , . . . , w r } um conjunto completo de raios
extremos de P.
Seja ent˜o
a
k r k
Q = x ∈ Rn : x = λi x i + θj w j , θj ≥ 0, λi ≥ 0, λi = 1 .
i =1 j=1 i =1
Ent˜o Q = P.
a
Alexandre Salles da Cunha Dualidade
73. Representa¸˜o de poliedros - exemplo
ca
P = {x ∈ R2 : x1 − x2 ≥ −2; x1 + x2 ≥ 1; x ≥ 0}
Alexandre Salles da Cunha Dualidade