Otimização/Aplicações dos métodos duais
Índice |
[editar] Aplicação à programação linear
Considere um problema típico da programação linear como:
onde são dados
,
,
,
,
,
,
e
. Por simplicidade, pode-se ainda adotar a seguinte notação:
Nesta seção será mostrado como a "bonita teoria dos métodos duais" se aplica a esse tipo de problema.
Primeiramente, calcula-se a lagrangiana:
Note que:
- As variáveis primais são
e
; - As variáveis duais são
,
e
;
Agora é preciso identificar as funções
e
correspondentes a este problema. Conforme anteriormente, tem-se:
, dada por
e
, dada por![\begin{align}
\beta(u,v) & = \inf_{\begin{smallmatrix}x \in \mathbb{R}^n \\y \in \mathbb{R}^m\end{smallmatrix}} l(x,y,u,v,w)\\
& = \inf_{\begin{smallmatrix}x \in \mathbb{R}^n \\y \in \mathbb{R}^m\end{smallmatrix}} [a - M^\top u - P^\top v - w]^\top x + [b - N^\top u - Q^\top v]^\top y + [c^\top u + d^\top v]\\
& = [c^\top u + d^\top v] + \inf_{x \in \mathbb{R}^n} [a - M^\top u - P^\top v - w]^\top x + \inf_{y \in \mathbb{R}^m}[b - N^\top u - Q^\top v]^\top y\\
& = \left\{\begin{array}{rcl}
c^\top u + d^\top v & , & \text{ se } \left\{\begin{array}{rcl}
a - M^\top u - P^\top v - w & = & 0\\
b - N^\top u - Q^\top v & = & 0\\
u\ge 0;\, w \ge 0 & &
\end{array}\right.\\
-\infty & , & \text{ em outros casos}
\end{array}\right.
\end{align}](//upload.wikimedia.org/wikibooks/pt/math/c/a/4/ca47a18db9dc1c7e00783500dbc1ba08.png)
Logo, considerando que
, o problema dual consiste no seguinte:
- Exercício
Verificar que
é uma solução de
é uma solução de
| Resolução |
|---|
Seja uma solução de . Então, por definição, tem-se para todo que
mas isto equivale a ou seja, |
- Exercício
Verificar que:
| Resolução |
|---|
| A resolução deste exercício é deixada a cargo do leitor. Sinta-se livre para melhorar a qualidade deste texto, incluindo-a neste módulo. |
[editar] Exemplificando com um problema de programação linear
O seguinte problema é chamado de problema standard (padrão) de programação linear:
onde são dados
,
e
.
[editar] Calculando o dual de (PL)
Primeiramente,
A função
não precisa ser calculada, pois já se mostrou que
Por outro lado, quanto à função
tem-se:
Logo, o problema dual é:
ou ainda
[editar] Calculando o dual do dual de (PL)
Considere o seguinte problema:
que, conforme já foi mostrado em um exercício anteriormente, equivale a
A lagrangiana é dado por:
Logo,
Logo, o dual de
é:
ou seja,
que equivale a
[editar] Um exemplo numérico contextualizado
Considere a seguinte situação:
- Um empresário que produz cerveja dispões de 240 kg de milho, 5 kg de lúpulo e 596 kg de Malta. Para produzir um barril de cerveja preta requer 2,5 kg de milho, 0,125 kg de lúpulo e 17,5 kg de malta. Enquanto que para produzir um barril de cerveja branca, se precisa de 7,5 kg de milho, 0,125 kg de lúpulo e 10 kg de malta. Por barril de cerveja branca vendido, o empresário recebe 130 reais, enquanto por um barril de cerveja preta, recebe 230 reais. Achar o modelo matemático para otimizar o ganho do empresário.
| Resolução |
|---|
Primeiramente, é preciso identificar quais são as variáveis do problema, e quais são os dados. Pode-se adotar a seguinte notação para as quantidades dos dois tipos de cerveja:
O ganho do empresário, que é o que se pretende maximizar, pode ser obtido pela fórmula: Por hora, considere que são aceitáveis os valores de Como o estoque de cada ingrediente é limitado, tem-se restrições que devem ser consideradas. Matematicamente tais restrições podem ser expressas assim: Pode-se simplificar a escrita das restrições e também da função objetivo utilizando a seguinte notação: Nesses termos, o problema de otimização a ser resolvido é: ou apenas, onde Tal problema tem solução pois a função objetivo Para este problema, a lagrangiana é dado por Donde Então, o problema dual é dado por que é equivalente a ou, escrevendo novamente em termos dos valores numéricos, |
Na década de 30, 40 e 50 havia diversos livros que tratavam cada problema de programação linear individualmente, deduzindo vez após vez os seus duais, e disso extraindo certas "regras" que eram então sugeridas ao leitor na forma "se o problema for desse tipo, use tal regra, se for daquele tipo, use esta outra, e se for deste outro tipo, use esta regra". Um dos primeiros autores que começou a trabalhar os problemas sob um novo ponto de vista, mais generalizado, foi Werner Oettio (grafia?) . Seguindo-se por George Dantzig (conhecido como inventor do método simplex), Eugen Blumb (grafia?) e Jean-Pierre Crouzeix.
| Este módulo tem a seguinte tarefa pendente: Identificar e corrigir a grafia correta dos nomes dos pesquisadores mostrados acima; Encontrar fontes para comprovar a informação deste parágrafo. |
[editar] Aplicação à programação quadrática
Agora, o problema a considerar passa a ser
onde
é um poliedro (interseção finita de semi-espaços),
,
e
é uma matriz simétrica positiva definida.
Note que este problema tem solução, uma vez que o problema irrestrito correspondente tem solução (já que
é uma matriz simétrica positiva definida, a função é limitada inferiormente, e como
é fechado, a função objetivo assume seu valor mínimo em
, por Wolfe).
Mesmo para
, os problemas de programação linear já são difíceis de resolver "à mão". É preciso utilizar alguma técnica mais sofisticada.
Para dar continuidade ao exemplo, considere que o poliedro
é dado por
com
e
.
Agora será aplicado o esquema de dualidade. A lagrangiana é
além disso,
e a última igualdade vale pois a função é fortemente convexa.
Considerando
, se deduz que
.
Logo,
Observe que, sendo os autovalores de
positivos, o mesmo vale obrigatoriamente para
. Assim, como a expressão de
envolve
, tal função é fortemente côncava (conforme já era esperado para tal função).
Baseado nestas deduções, o problema dual é
ou seja,
Usualmente este tipo de problema
é resolvido por meio do método do gradiente projetado.
[editar] Revisão do método do gradiente projetado
O método baseia-se na seguinte proposição:
- Proposição
Seja
uma função convexa em
, um conjunto convexo e fechado. Se o ponto
é tal que
, então
.
| Prova |
|---|
| Esta prova é deixada a cargo do leitor. Sinta-se livre para melhorar a qualidade deste texto, incluindo-a neste módulo. |
[editar] Um algoritmo para o método do gradiente projetado
Este algoritmo é bastante simples.
Primeiro passo: Escolhae fixe
. Passo iterativo
: Enquanto
![]()
![]()
Agora, é interessante observar como se faz para projetar um ponto em
.
- Exercício
Dado
, mostre que
| Resolução |
|---|
| A resolução deste exercício é deixada a cargo do leitor. Sinta-se livre para melhorar a qualidade deste texto, incluindo-a neste módulo. |
[editar] Exemplificando a projeção
Seja
. Então a projeção de
sobre
é :
Devido a essa simplicidade ao se fazer a projeção de um ponto, o método do gradiente projetado é muito eficiente para resolver o problema
.
[editar] Exemplo concreto
Seja
.
| Este módulo tem a seguinte tarefa pendente: Incluir uma ilustração deste conjunto. |
Como calcular a projeção do ponto
sobre o conjunto
,
?
| Resolução |
|---|
Seja a projeção de sobre . Então:
Então: Nota: O leitor deve observar que a inclusão de Logo o modelo matemático para resolver este problema é A lagrangiana é dada por Logo, Fazendo Donde Logo, Logo, o problema dual é ou seja, Agora, para a resolução deste problema dual, pode-se usar o método do gradiente projetado. Para isso, note que o gradiente de
Seja
Logo, a solução dual é Agora, substituindo tal solução na lagrangiana, obtem-se o problema: que é um problema quadrático sem restrições. Neste caso, basta igualar o gradiente a zero para determinar uma solução: Donde |
[editar] Exercícios resolvidos
- Exercício
Encontrar a solução do seguinte problema de programação linear:
Ao resolver o problema
, poderia ter sido escolhido
em vez de
. Será que isso influenciaria o resultado final?
Acompanhe como ficaria a resolução desta maneira:
| Resolução | ||
|---|---|---|
;Identificar a lagrangiana
que equivale a ou simplesmente Novamente, chega-se até um problema em
As inequações que definem o conjunto viável são: Este conjunto também é um pentágono, de modo que o valor mínimo de Nas condições de KKT, a única mudança é na propriedade (1), que se torna: Resta ainda saber quem é como antes. Como ao obter |
- Exercício
Formule como um problema de minimização com restrições o problema de projetar ortogonalmente o ponto
sobre o conjunto
. Depois, calcule explicitamente a função lagrangiana e o problema dual.
| Resolução |
|---|
| Matematicamente resolver esse problema é resolver
Definimos a lagrangeana como
Como a função é quadrática , podemos calcular o gradiente e igualar a zero:
Donde, Substituindo na função
O problema dual fica então:
Que é equivalente a:
|
- Exercício
No exercício anterior, se
é a variável dual relacionada a variável primal
e
é a variável dual relacionada a variável primal
, então verifique se
é solução dual e se a lagrangiana tem pontos de sela. Em caso afirmativo, calcule um ponto de sela, caso contrário, argumente porque a lagrangiana não tem pontos de sela.
| Resolução |
|---|
| Olhando o problema
observamos que é um problema com restrições. Podemos usar as equações de KKT para resolve-lo. Definimos a lagrangeana como
Agora usando o teorema de KKT devemos ter: Calculando o gradiente temos
E portanto Olhando nas equações acima obtemos Portanto Voltando na lagrangiana do problema original e substituindo os multiplicadores de Lagrange obtemos um problema sem restrições:
Calculando o gradiente temos:
Portanto Logo Para verificar que ele é ponto de sela, basta ver se não há salto de dualidade. Mas isso não ocorre já que o valor ótimo do primal é |


![\begin{align}
l(x,y,u,v,w) & = [a^\top x + b^\top y] + u^\top[c - Mx - Ny] + v^\top[d - Px - Qy] + w^\top [-x]\\
& = [a - M^\top u - P^\top v - w]^\top x + [b - N^\top u - Q^\top v]^\top y + [c^\top u + d^\top v]\\
\end{align}](http://upload.wikimedia.org/wikibooks/pt/math/2/7/c/27c7bf38d40349d7ff617c76af72268d.png)
;
, dada por
, dada por![\begin{align}
\beta(u,v) & = \inf_{\begin{smallmatrix}x \in \mathbb{R}^n \\y \in \mathbb{R}^m\end{smallmatrix}} l(x,y,u,v,w)\\
& = \inf_{\begin{smallmatrix}x \in \mathbb{R}^n \\y \in \mathbb{R}^m\end{smallmatrix}} [a - M^\top u - P^\top v - w]^\top x + [b - N^\top u - Q^\top v]^\top y + [c^\top u + d^\top v]\\
& = [c^\top u + d^\top v] + \inf_{x \in \mathbb{R}^n} [a - M^\top u - P^\top v - w]^\top x + \inf_{y \in \mathbb{R}^m}[b - N^\top u - Q^\top v]^\top y\\
& = \left\{\begin{array}{rcl}
c^\top u + d^\top v & , & \text{ se } \left\{\begin{array}{rcl}
a - M^\top u - P^\top v - w & = & 0\\
b - N^\top u - Q^\top v & = & 0\\
u\ge 0;\, w \ge 0 & &
\end{array}\right.\\
-\infty & , & \text{ em outros casos}
\end{array}\right.
\end{align}](http://upload.wikimedia.org/wikibooks/pt/math/c/a/4/ca47a18db9dc1c7e00783500dbc1ba08.png)



que


.![\inf_{x \in C} f(x) = - \sup_{x \in C} [-f(x)]](http://upload.wikimedia.org/wikibooks/pt/math/6/5/2/6521351f9530c37b50f51d28d9f58d8f.png)




![\begin{align}
\beta(u,v) & = \inf_{x \in \mathbb{R}^n} l(x,u,v)\\
& = \inf_{x \in \mathbb{R}^n} [c^\top x - u^\top x + v^\top(b-Ax)]\\
& = b^\top v + \inf_{x \in \mathbb{R}^n} [c - u - A^\top v]^\top x\\
& = \left\{\begin{array}{rcl}
b^\top v & , & \text{ se } c - u - A^\top v = 0\\
-\infty & , & \text{ em outros casos}
\end{array}\right.
\end{align}](http://upload.wikimedia.org/wikibooks/pt/math/8/c/b/8cbefbcca9d38c1a747a20f5c246225f.png)




![\begin{align}
\beta(y) & = \inf_{v \in \mathbb{R}^m} l(v,y)\\
& = \inf_{v \in \mathbb{R}^m} [-b^\top v + y^\top (A^\top v - c)]\\
& = -c^\top y + \inf_{v \in \mathbb{R}^m} [(Ay-b)^\top v]\\
& = \left\{\begin{array}{rcl}
-c^\top y & , & \text{ se } Ay-b = 0\\
-\infty & , & \text{ em outros casos}
\end{array}\right.
\end{align}](http://upload.wikimedia.org/wikibooks/pt/math/b/8/3/b83fa0a3f47fbb7a4c378e7571e384d4.png)



: Indica a quantidade (em litros) de cerveja preta;
: Indica a quantidade (em litros) de cerveja branca;
,
, etc).




é linear (contínua) e o conjunto de restrições forma um conjunto compacto.
![\begin{align}
\beta(u_1,u_2) & = \inf_{x \in \mathbb{R}^2} l(x,u_1,u_2)\\
& = \inf_{x \in \mathbb{R}^2} [-c^\top x + u_1^\top (Ax-b) + u_2^\top (-x)]\\
& = -b^\top u_1 + \inf_{x \in \mathbb{R}^2} [(A^\top u_1 - c - u_2)^\top x]\\
& = \left\{\begin{array}{rcl}
-b^\top u_1 & , & \text{ se } A^\top u_1 - c - u_2 = 0\\
-\infty & , & \text{ em outros casos}
\end{array}\right.
\end{align}](http://upload.wikimedia.org/wikibooks/pt/math/7/f/0/7f036e1d0bf910d1274eace09ef4207a.png)









![\begin{align}
\beta(u,v) & = \inf_{x \in \mathbb{R}^n} l(x,u,v)\\
& = \min_{x \in \mathbb{R}^n} l(x,u,v)\\
& = \min_{x \in \mathbb{R}^n} [\frac{1}{2}x^\top Q x + q^\top x + \alpha + u^\top (b - Ax) + v^\top (-x)]\\
& = \min_{x \in \mathbb{R}^n} [\frac{1}{2}x^\top Q x + (q - v - A^\top u)^\top x + u^\top b + \alpha]\\
\end{align}](http://upload.wikimedia.org/wikibooks/pt/math/3/2/f/32f10e015c1ddddce3932a76795e7a6b.png)
.![\begin{align}
\beta(u,v) & = \frac{1}{2}\left[Q^{-1} (A^\top u + v - q)\right]^\top Q \left[Q^{-1} (A^\top u + v - q)\right] + (q - v - A^\top u)^\top \left[Q^{-1} (A^\top u + v - q)\right] + u^\top b + \alpha\\
& = \frac{1}{2}(A^\top u + v - q)^\top Q^{-1} (A^\top u + v - q) - (A^\top u + v - q)^\top Q^{-1} (A^\top u + v - q) + u^\top b + \alpha\\
& = \frac{-1}{2}(A^\top u + v - q)^\top Q^{-1} (A^\top u + v - q) + u^\top b + \alpha
\end{align}](http://upload.wikimedia.org/wikibooks/pt/math/d/3/e/d3e702bb55e789bc9fd2811953b4cd33.png)


e fixe
.
Passo iterativo
: Enquanto


a projeção de 

é válida, e foi feita apenas para simplificar as contas.![(P)\left\{\begin{matrix}
\min \frac{1}{2}\left[(x-1)^2 + (y-2)^2\right]\\
x \ge 0; y \ge 0\\
x + y = 1
\end{matrix}\right.](http://upload.wikimedia.org/wikibooks/pt/math/5/b/9/5b9b5ef39a77b36620faf6190b6cd777.png)
![l(x,y,u,v,w) = \frac{1}{2}\left[(x-1)^2 + (y-2)^2\right] - ux - vy + w(1-x-y)](http://upload.wikimedia.org/wikibooks/pt/math/a/7/1/a715116e063b204e5b72304608562e23.png)
![\begin{align}
\beta(u,v,w) & = \inf_{\begin{smallmatrix}x \in \mathbb{R}\\y \in \mathbb{R} \end{smallmatrix}} l(x,y,u,v,w)\\
& = \inf_{\begin{smallmatrix}x \in \mathbb{R}\\y \in \mathbb{R} \end{smallmatrix}} \left[\frac{1}{2}\left[(x-1)^2 + (y-2)^2\right] - ux - vy + w(1-x-y)\right]\\
& = \inf_{\begin{smallmatrix}x \in \mathbb{R}\\y \in \mathbb{R} \end{smallmatrix}} \left[\frac{1}{2}\left[(x-1)^2 + (y-2)^2\right] - (u+w)x - (v+w)y + w\right]
\end{align}](http://upload.wikimedia.org/wikibooks/pt/math/c/1/0/c108d43e5161cb3d7a190ea144e18da0.png)
tem-se:

![\begin{align}
\beta(u,v,w) & = \frac{1}{2}\left[\left((u+w+1)-1\right)^2 + \left((v+w+2)-2\right)^2\right] - (u+w)(u+w+1) - (v+w)(v+w+2) + w\\
& = \frac{1}{2}\left[(u+w)^2 + (v+w)^2\right] - (u+w)(u+w+1) - (v+w)(v+w+2) + w\\
& = \frac{-1}{2}\left[(u+w)^2 + (v+w)^2\right] - (u+w) - 2(v+w) + w\\
& = \frac{-1}{2}\left[(u+w)^2 + (v+w)^2\right] - u - 2v - 2w
\end{align}](http://upload.wikimedia.org/wikibooks/pt/math/9/f/3/9f310adefef342e94dc9e1318368d627.png)

![(D)\left\{\begin{matrix}
\min \frac{1}{2}\left[(u+w)^2 + (v+w)^2\right] + u + 2(v + w)\\
u \ge 0;\, v \ge 0;\, w \in \mathbb{R}^m\\
\end{matrix}\right.](http://upload.wikimedia.org/wikibooks/pt/math/7/6/c/76c87a1674e6ef671efad9377cf76219.png)

e escolha
.


![(P_{ \bar{u},\bar{v},\bar{w} })\left\{\begin{matrix}
\min \frac{1}{2}\left[(x-1)^2 + (y-2)^2 + x + y - 1\right]\\
x \in \mathbb{R};\,y \in \mathbb{R}
\end{matrix}\right.](http://upload.wikimedia.org/wikibooks/pt/math/9/4/8/948e864b066ce9b06a86363b27e555a4.png)

e
. De acordo com a teoria desenvolvida, a solução
do problema é também solução do problema original, pois o produto é igual a zero (ver condições da proposição).



, então não é possível obter uma interpretação geométrica do problema. Será usado o esquema de dualidade lagrangiana:




![\begin{align}
\beta(u,v) & = \inf_{x \in \mathbb{R}^5} l(x,u,v)\\
& = \inf_{x \in \mathbb{R}^5} [c^\top x - u^\top x + v^\top (b-Ax)]\\
& = \inf_{x \in \mathbb{R}^5} b^\top v + (c - u - A^\top v)^\top x\\
& = \left\{\begin{array}{rcl}
b^\top v & , & \text{ se } c - u - A^\top v = 0\\
-\infty & , & \text{ em outros casos}
\end{array}\right.
\end{align}](http://upload.wikimedia.org/wikibooks/pt/math/9/6/4/96446d5945e9c3372b97d8f9fab59d6c.png)



, e portanto, pode-se ter uma interpretação geométrica para o mesmo:
é assumido quando
for um dos cinco vértices. Através de simples verificação, comprova-se que o ponto de máximo é
. Conforme a teoria, este ponto é uma solução do problema dual 

, ou seja, 
, ou seja, 
, ou seja, 
.
, basta lembrar que em
(comprovando 1)

. Resta usar a informação da propriedade (4) para obter
e
. O sistema 
e
.
satisfazem todas as propriedades, então
é solução do problema 
![\begin{align}
\beta(u,v) & = \inf_{x \in \mathbb{R}^5} l(x,u,v)\\
& = \inf_{x \in \mathbb{R}^5} [c^\top x - u^\top x + v^\top (Ax-b)]\\
& = \inf_{x \in \mathbb{R}^5} -b^\top v + (c - u + A^\top v)^\top x\\
& = \left\{\begin{array}{rcl}
-b^\top v & , & \text{ se } c - u + A^\top v = 0\\
-\infty & , & \text{ em outros casos}
\end{array}\right.
\end{align}](http://upload.wikimedia.org/wikibooks/pt/math/b/a/0/ba060c4e9920f3391d1b7338999f513d.png)



.

![\begin{cases}
\text{min} \frac{1}{2}[(x+5)^2+(y-2)^2] \\
x\ge 0 \ y\ge 0
\end{cases}](http://upload.wikimedia.org/wikibooks/pt/math/3/e/e/3eec51540edf140c89854cfba698da9d.png)
![l(x,y,u,v)=\frac{1}{2}[(x+5)^2+(y-2)^2] +u(-x)+v(-y)](http://upload.wikimedia.org/wikibooks/pt/math/f/d/4/fd4d784008a5cc61a4bba01690d23467.png)

![\beta(u,v)= \inf_{\begin{smallmatrix}x \in \mathbb{R} \\y \in \mathbb{R}\end{smallmatrix}}
[\frac{1}{2}[(x+5)^2+(y-2)^2]-ux-vy]](http://upload.wikimedia.org/wikibooks/pt/math/9/6/9/969de244c78a94a0c6f07b393e2d35e4.png)

e 
![\beta(u,v)= \frac{1}{2}[(u-5+5)^2+(v+2-2)^2]-u(u-5)-v(v+2)](http://upload.wikimedia.org/wikibooks/pt/math/b/f/d/bfd97b3b815b038f9f0774bcd910a1cc.png)
![\beta(u,v)= \frac{1}{2}[u^2+v^2]-u^2+5u-v^2-2v)](http://upload.wikimedia.org/wikibooks/pt/math/0/7/1/07113c53340ee8e1fb853196cc051d24.png)
![\beta(u,v)= -[\frac{1}{2}(u^2+v^2)-5u+2v)]](http://upload.wikimedia.org/wikibooks/pt/math/a/7/3/a73b188dcd996b7bb2389be2d00af54a.png)
![\begin{cases}
\text{max} -[\frac{1}{2}(u^2+v^2)-5u+2v] \\
u\ge 0 \ v\ge 0
\end{cases}](http://upload.wikimedia.org/wikibooks/pt/math/3/c/9/3c939c19043a3c746e3cc9388a131973.png)









e
.
,
,
e
.
é a solução dual.![\begin{cases}
\text{min}\ \frac{1}{2}[(x+5)^2+(y-2)^2] +5(-x) \\
x,y\in \mathbb{R}
\end{cases}](http://upload.wikimedia.org/wikibooks/pt/math/7/8/b/78b925c4804464845e4af545ec89a575.png)
é a solução primal.
é um candidato a ponto de sela.
e o valor ótimo do dual também é