Otimização/Aplicações dos métodos duais
Origem: Wikilivros, livros abertos por um mundo aberto.
| Otimização |
Í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 x e y;
- As variáveis duais são u, v e w;
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}](http://upload.wikimedia.org/math/2/8/d/28dd06a863e3767783240d4034c257c7.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 (P). 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 (D) é:
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 p e b serem reais (não apenas inteiros positivos, mas também "números quebrados" como 3,5, 7,11, etc). 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 C é o conjunto definido pelo conjunto de restrições: Tal problema tem solução pois a função objetivo g(p,b) é linear (contínua) e o conjunto de restrições forma um conjunto compacto. 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 haviam 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 livro 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 C é 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 Q é uma matriz simétrica positiva definida, a função é limitada inferiormente, e como C é fechado, a função objetivo assume seu valor mínimo em C, por Wolfe).
Mesmo para n = 5, 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 C é 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 Q positivos, o mesmo vale obrigatoriamente para Q − 1. Assim, como a expressão de β envolve ( − Q − 1), 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 (D) é 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 f uma função convexa em C, 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 α > 0. Passo iterativo k: 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 u 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 (D).
[editar] Exemplo concreto
Seja
.
| Este livro tem a seguinte tarefa pendente: Incluir uma ilustração deste conjunto. |
Como calcular a projeção do ponto (1,2) sobre o conjunto C, PC(1,2)?
| Resolução |
|---|
Seja a projeção de (1,2) sobre C. 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 (P), poderia ter sido escolhido Ax − b em vez de b − Ax. Será que isso influenciaria o resultado final?
Acompanhe como ficaria a resolução desta maneira:
| Resolução | ||
|---|---|---|
;Identificar a lagrangiana l
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 ( − 5,2) 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 β temos:
|
- Exercício
No exercício anterior, se u é a variável dual relacionada a variável primal x e v é a variável dual relacionada a variável primal y, então verifique se (u,v) = (10,0) é 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 (5,0) é a solução dual. Voltando na lagrangiana do problema original e substituindo os multiplicadores de Lagrange obtemos um problema sem restrições:
Calculando o gradiente temos:
Logo (0,2,5,0) é um candidato a ponto de sela. 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/math/2/7/c/27c7bf38d40349d7ff617c76af72268d.png)



que


.![\inf_{x \in C} f(x) = - \sup_{x \in C} [-f(x)]](http://upload.wikimedia.org/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/math/e/8/7/e87e522f3e77cefc74c94217d68283ae.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/math/3/7/b/37bd4e7b12f22582b4c83018afe8955a.png)









![\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/math/c/6/6/c661bc60c6f0eabd7d4a63126f3f585c.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/math/e/8/1/e81998f3b2767b166185d9a6e6c4a142.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/math/d/3/e/d3e702bb55e789bc9fd2811953b4cd33.png)


e fixe


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/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/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/math/f/3/7/f3756368136736d9155e1d00ee58a896.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/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/math/2/7/1/271cbc5061d56921e61f329cb6acc5bb.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/math/2/f/7/2f720b57902e844a24db4378b5e48899.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/math/f/6/2/f6281b9f62d188ea0a568f845b449709.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)

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/math/6/6/a/66a4f25c2a14559356980301ee4144f8.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/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/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/math/b/f/c/bfc130193ed6af553530948887a0246b.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/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/math/0/7/1/07113c53340ee8e1fb853196cc051d24.png)
![\beta(u,v)= -[\frac{1}{2}(u^2+v^2)-5u+2v)]](http://upload.wikimedia.org/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/math/3/c/9/3c939c19043a3c746e3cc9388a131973.png)







e
.
,
, ![\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/math/3/a/c/3acc3699142e678d1c250085d8875139.png)
e o valor ótimo do dual também é