Otimização/Aplicações dos métodos duais
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
Logo, considerando que , o problema dual consiste no seguinte:
Predefinição:Exercício Predefinição:Resolução
Predefinição:Exercício Predefinição:Resolução
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 .
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
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
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.
Predefinição:Resolução 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. Predefinição:Tarefa
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.
Revisão do método do gradiente projetado
O método baseia-se na seguinte proposição: Predefinição:Proposição Predefinição:Prova
Um algoritmo para o método do gradiente projetado
Este algoritmo é bastante simples.
Primeiro passo: Escolha e fixe . Passo iterativo : Enquanto
Agora, é interessante observar como se faz para projetar um ponto em .
Predefinição:Exercício Predefinição:Resolução
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 .
Exemplo concreto
Seja . Predefinição:Tarefa
Como calcular a projeção do ponto sobre o conjunto , ? Predefinição:Resolução
Exercícios resolvidos
Predefinição:Exercício Predefinição:Resolução 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: Predefinição:Resolução
Predefinição:Exercício Predefinição:Resolução