Вы находитесь на странице: 1из 38

MAC0315.

IME USP, 2020


Aula 15

Walter Mascarenhas
20/10/2020

Conteúdo:
Dualidade

1/35
Dualidade

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

2/35
Cones

Formalmente, em matemática, dizemos que um conjunto C é um cone


se para todo x ∈ C a semi reta aberta {λx, λ ∈ (0, +∞)} está contida
em C.

3/35
Cones, convexos ou não

4/35
Cones, pontudos ou não

5/35
Cones, poliedral ou não

6/35
Cones esquisitos

Pela definição acima:

• O conjunto vazio é um cone.


• O conjunto {0} ⊂ Rn é um cone.
• Uma reta é um cone.
• Uma semi reta é um cone.
• O Rn todo é um cone.

7/35
Cones Poliedrais

Um cone C ⊂ Rn é poliedral se existirem vetores v1, . . . , vm , 0 tais


que

C := {x1 a1 + · · · + xm am, com x1, . . . , xm ≥ 0} .

Nesse caso, para decidir se y ∈ C basta resolver

maximizar z = λ
sujeito a Ax = y
xi − λ ≥ 0

onde A é a matriz com colunas a1, . . . , am . y ∈ C se e somente esse


problema é ilimitado ou tem valor ótimo ≥ 0.

8/35
Teorema de separação

Teorema
Se C ∈ Rn é um cone convexo fechado que não contém retas e v < C
então existe um vetor x ∈ Rn tal que xT v > 0 e xT y < 0 para todo
y ∈ C − {0}.

9/35
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.

10/35
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
10/35
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 10/35
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
• •
10/35
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 .

11/35
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.

12/35
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!

13/35
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

14/35
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

15/35
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.

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

17/35
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

18/35
Dualidade

max z = −3x1 − 2x2


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

19/35
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.

20/35
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

21/35
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.

22/35
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

23/35
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

24/35
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.

25/35
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

26/35
Demonstração do teorema de dualidade fraca

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

27/35
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 . 

28/35
O Teorema de dualidade forte

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 .

29/35
Demonstração do Teorema de dualidade forte

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.

30/35
Aplicação de dualidade

maximizar 7x1 + 10x2


sujeito a x1 + 2x2 ≤ 4
3x1 + 4x2 ≤ 10
xi ≥ 0
solução ótima x∗ = (2, 1), com z ∗ = 24

minimizar 4y1 + 10y2


sujeito a y1 + 3y2 ≥ 7
2y1 + 4y2 ≥ 10
yi ≥ 0
solução ótima y∗ = (1, 2), com z̃ ∗ = 24.

31/35
Aplicação de dualidade

maximizar 7x1 + 10x2


sujeito a x1 + 2x2 ≤ 4 + 
3x1 + 4x2 ≤ 10
xi ≥ 0
segunda “igualdade” - 3× a primeira “igualdade”

−2x2 = −2 − 3 ⇔ x2 = 1 + 3/2 ⇔ x1 = 2 − 2 .

z = 7 (2 − 2) + 10 (1 + 3/2) = 24 + 1 = 24 + y1∗  .

32/35
Aplicação de dualidade

maximizar 7x1 + 10x2


sujeito a x1 + 2x2 ≤ 4
3x1 + 4x2 ≤ 10 + 
xi ≥ 0
segunda “igualdade” - 3× a primeira “igualdade”

−2x2 = −2 +  ⇔ x2 = 1 − /2 ⇔ x1 = 2 +  .

z = 7 (2 + ) + 10 (1 − /2) = 24 + 2 = 24 + y2∗  .

33/35
Vetor em Cone

O vetor v está no cone se e só se o problema abaixo tem solução y e λ


com λ ≥ 0.

maximizar z = λ
sujeito a Ay = v
−y +λ1 ≤ 0, yi , λ irrestritos

O dual do problema acima é

maximizar z = vT u1
sujeito a A T u1 −u2 = 0
T
1 u2 = 1,
u2 ≥ 0, u1 irrestrito

34/35
Vetor em Cone

maximizar z = vT u1
sujeito a A T u1 −u2 = 0
T
1 u2 = 1,
u2 ≥ 0, u1 irrestrito
Conclusão:

• Se o vetor v está no cone, então existe um vetor u1 tal que


vT u1 ≥ 0, AT u1 ≥ 0 e AT u1 , 0.
• Se o vetor não está no cone, AT u , 0 e AT u ≥ 0 então vT u < 0.

35/35

Вам также может понравиться