Você está na página 1de 26

MAC0315.

IME USP, 2020


Aula 14

Walter Mascarenhas
14/10/2020

Conteúdo:
Dualidade

1/23
Dualidade

Há muito além do método Simplex em otimização linear

2/23
Quando um ponto é mínimo?

Fermat: para um ponto ser mínimo nenhum movimento a partir dele


para a região factível pode reduzir o custo.

Na verdade, Fermat viveu nos anos 1600 e não existia otimização


linear naquela época. Por isso ele não disse exatamente a frase acima,
mas disse algo parecido em um contexto análogo.

3/23
Quando um ponto é mínimo?

Para um ponto no interior da região factível ser mínimo devemos ter


c = 0. Caso contrário, podemos andar na direção contrária ao vetor
custo e o custo diminuirá.

x ≥0

• c
−c
y ≥0
• •
−x − y = −6
3/23
Quando um ponto é mínimo?

Para um ponto no interior de uma aresta ser mínimo o custo deve ser
perpendicular à aresta. Caso contrário podemos andar na direção
contrária à projeção do vetor custo na aresta e o custo diminuirá.

x ≥0

− projeção de c na aresta

c
projeção de c na aresta

y ≥0
• •
−x − y = −6 3/23
Quando um ponto é mínimo?

Para um vértice ser mínimo o custo deve estar no cone formado pelos
vetores que definem às restrições ativas naquele vértice (em azul na
figura). Senão há uma direção ao longo da qual o custo diminuirá.

c
• 1x + 0y ≥ 0
−1x + −1y = −6

Região factível
y ≥0
• •
3/23
Regra geral para um ponto ser mínimo

Se um ponto p é mínimo então o vetor custo está contido no cone C


formado pelo seguinte procedimento

1. Encontre os vetores r das restrições riT x ≥ bi tais que riT p = bi


Essas são as restrições ativas em p.

2. Se não houver tais vetores então faça C = {0}. caso contrário


faça nÕ o
C= αi ri com αi ≥ 0 .

4/23
Para quais custos cada vértice é mínimo?

Com as restrições abaixo dadas pelas retas e os vetores azuis abaixo,


cada vértice será mínimo se e somente se o vetor custo estiver dentro
do cone azul correspondente a ele.

5/23
Porque?

Teorema: se um vetor v não pertence há um cone C como nas figuras


azuis no slide anterior, então há uma reta que separa v de C. O vetor d
perpendicular à essa reta de separação que faz ângulo obtuso com v
tem duas propriedades:

• Ao nos movermos na direção d a função custo decresce


• Ao nos movermos na direção d entramos na região factível

Logo, pelas ideias do Fermat, o vértice não pode ser mínimo.


O Fermat nunca ouviu falar de otimização linear, mas sabia pensar!

6/23
O teorema de separação para minimização

Minimizar cT x com aT x ≥ b

Ponto de mínimo ⇔ c no cone azul

linha de separação

descida c

7/23
O teorema de separação para maximização

Maximizar cT x com aT x ≤ b

Ponto de máximo ⇔ c no cone azul

linha de separação

subida

8/23
Resumo da teoria

Há um critério simples para saber se um ponto é mínimo: basta


verificar se o custo está no cone associado à ele (Note que esse cone
depende do problema ter restrições ≥ ou ≤.)

Isso sugere um algoritmo para otimização linear: basta percorrer os


vértices e ir verificando se o vértice corrente é mínimo usando o
critério acima.

9/23
Você já conhece esse algoritmo: ele se chama Método Simplex!

10/23
Dualidade

Dicionário final para um problema de maximização

max z = −3x1 − 2x2


x3 = 2 −2x1 + x2
x4 = 1 −x1 + 2x2
xi ≥ 0

Pensando em x3 e x4 como variáveis de folga podemos reescrever esse


problema como

max z = −3x1 − 2x2


2x1 − x2 ≤ 2
x1 − 2x2 ≤ 1
xi ≥ 0

11/23
Dualidade

max z = −x1 − x2
2x1 − x2 ≤ 2
x1 − 2x2 ≤ 1
xi ≥ 0
Restrições ativas: x1 + 0x2 ≥ 0 e 0x1 + 1x2 ≥ 0
Vértice ótimo = (0, 0), porque os custos c = (−3, −2) são negativos, e
isso é equivalente ao vetor c pertencer ao cone C gerado pelas
normais externas às restrições: (1, 0)T e (0, 1)T .

( ! ! ) ( ! )
−1 0 a
C= a +b , a, b ≥ 0 = , a, b ≤ 0
0 −1 b

12/23
Dualidade

Ou seja: o método Simplex termina quando o vetor custo está no cone


apropriado.
Ou ainda, o método Simplex termina quando o vetor custo é solução
do seguinte problema:
Encontre o cone que contém o vetor custo.
Esse é o chamado Problema dual.

13/23
O Problema Dual

Formalmente, o problema dual de

maximizar cT x
sujeito a Ax ≥ b
x ≥ 0

é
minimizar bT y
sujeito a AT y ≤ c
y ≥ 0

14/23
Dualidade

• O problema original é chamado de primal.

• A formulação do dual acima depende de:


• É um problema de maximização
• As desigualdades são de ≥, e não há igualdades
• As variáveis são ≥ 0

• Para outros tipos de problemas o dual é diferente. Por exemplo, o


dual do dual acima é o primal.

15/23
Exemplo

Primal
max z = −x1 − x2
2x1 − x2 ≤ 2
x1 − 2x2 ≤ 1
xi ≥ 0

Dual
min z = 2y1 + y2
2y1 + y2 ≥ −1
−y1 − 2y2 ≥ −1
yi ≥ 0

16/23
Dualidade no caso geral

maximizar c1 T x1 + c2 T x2 + c3 T x3
sujeito a A11 x1 + A12 x2 + A13 x3 ≤ b1
A21 x1 + A22 x2 + A23 x3 ≥ b2
A31 x1 + A32 x2 + A33 x3 = b3
x1 ≥ 0, x2 ≤ 0, x3 irrestrito

minimizar b1 T y1 + b2 T y2 + b3 T y3
T y
sujeito a A11 T y T y
1 + A21 2 + A31 3 ≥ c1
T T
A12 y1 + A22 y2 + AT y ≤ c2
32 3
T y T y T y
A13 1 + A23 2 + A33 3 = c3
y1 ≥ 0, y2 ≤ 0, y3 irrestrito

17/23
O Teorema fraco de dualidade

Teorema
Se x é uma solução factível de um problema primal de maximização
e y é uma solução factível do dual então

cT x ≤ bT y.

18/23
Demonstração do teorema fraco de dualidade

Primal:
maximizar c1 T x1 + c2 T x2 + c3 T x3
sujeito a A11 x1 + A12 x2 + A13 x3 ≤ b1
A21 x1 + A22 x2 + A23 x3 ≥ b2
A31 x1 + A32 x2 + A33 x3 = b3
x1 ≥ 0, x2 ≤ 0, x3 irrestrito

No dual y1 ≥ 0, y2 ≤ 0 e y3 é irrestrito. Multiplicando a primeira


igualdade por y1 T , a segunda por y2 T e a terceira por y3 T obtemos

y1 T A11 x1 + y1 T A12 x2 + y1 T A13 x3 ≤ y1 T b1


y2 T A21 x1 + y2 T A22 x2 + y2 T A23 x3 ≤ y2 T b2
y3 T A31 x1 + y3 T A32 x2 + y3 T A33 x3 ≤ y3 T b3

19/23
Demonstração do teorema fraco de dualidade

Dual:
minimizar b1 T y1 + b2 T y2 + b3 T y3
T y
sujeito a A11 T y T y
1 + A21 2 + A31 3 ≥ c1
T T
A12 y1 + A22 y2 + AT y ≤ c2
32 3
T y T y AT
A13 1 + A23 2 + y
33 3
= c3
y1 ≥ 0, y2 ≤ 0, y3 irrestrito

No primal x1 ≥ 0, x2 ≤ 0 e x3 é irrestrito. Multiplicando a primeira


igualdade por x1 T , a segunda por x2 T e a terceira por x3 T obtemos

x1 T A11
T
y1 + x1 T A21
T
y2 + x1 T A31
T
y3 ≥ x1 T c1
x2 T A12
T
y1 + y2 T A22
T
y2 + x2 T A32
T
y3 ≥ x2 T c2
x3 T A13
T
y1 + x3 T A23
T
y2 + x3 T A33
T
y3 ≥ x3 T c3

20/23
Demonstração do teorema de dualidade fraca

combinando as equações anteriores obtemos

bT y = y1 T b1 + y2 T b2 + y3 T b3
≥ y1 T A11 x1 + y1 T A12 x2 + y1 T A13 x3
+ y2 T A21 x1 + y2 T A22 x2 + y2 T A23 x3
+ y3 T A31 x1 + y3 T A32 x2 + y3 T A33 x3

= x1 T A11
T
y1 + x1 T A21
T
y2 + x1 T A31
T
y3
+ x2 T A12
T
y1 + y2 T A22
T
y2 + x2 T A32
T
y3
+ x3 T A13
T
y1 + x3 T A23
T
y2 + x3 T A33
T
y3
≥ c1 T x1 + c2 T x2 + c3 T x3
= cT x . 

21/23
O Teorema forte de dualidade

Teorema
Se o primal tem uma solução ótima x então o dual tem uma solução
ótima y e
cT x = bT y .

22/23
Demonstração do Teorema forte de dualidade

A demonstração será apresentada quando estudarmos o método


simplex revisado. Por hora, ela pode ser resumida assim:
Se o primal tem solução ótima então o método simplex encontrará um
vértice ótimo. Nesse vértice, o vetor custo c pertence ao cone descrito
acima, e isso implica que é possível construir uma solução ótima do
dual a partir de c e da base ótima do primal.

23/23

Você também pode gostar