Universidade Federal de Itajubá – UNIFEI
Instituto de Recursos Naturais - IRN
Programação Não-Linear
por
Prof. Benedito C. Silva
Programação Não-Linear
Programação Não-Linear
Programação Não-Linear
Programação Não-Linear
Métodos de solução:
• Substituição
• Gráfico
• Multiplicadores de Lagrange
• Método do Gradiente
• Programação Quadrática
• Condições de Karush-Kuhn Tucker
• Método de Newton
• Método de variações nas Coordenadas
• Linearização de funções separáveis
Programação Não-Linear
Solução Gráfica
Solução Gráfica
Solução Gráfica
Solução Gráfica
MaxZ  54x1  9x12  78x2  13x22
Importante!
Otimização Unidimensional
Busca pela Razão Áurea
Válida para um intervalo que contenha uma única resposta (máximo)
f(x)
Xl é o limite inferior do intervalo
Máximo
XU é o limite superior do intervalo
Xl
X1
X2
XU
X1 e X2 são pontos intermediários usados na busca do máximo
Otimização Unidimensional
Busca pela Razão Áurea
A escolha dos pontos internos pode ser feita de acordo com os
seguintes critérios
f(x)
Máximo
𝑙0 = 𝑙1 + 𝑙2
(a)
𝑙1 𝑙2
=
𝑙0 𝑙1
(b)
(a) em (b)
Xl
X2
𝑙1
𝑙0
X1
XU
𝑙2
𝑙1
𝑙2
=
𝑙1 + 𝑙2 𝑙1
𝑙1 + 𝑙2 𝑙1
=
𝑙1
𝑙2
Ou,
Otimização Unidimensional
Busca pela Razão Áurea
𝑅=
Fazendo
1+𝑅 =
1
𝑅
𝑙2
𝑙1
chega-se a:
ou,
𝑅2 + 𝑅 − 1 = 0
A raiz positiva será dada por:
−1 + 1 − 4. (−1)
5−1
𝑅=
=
= 0,61803 …
2
2
𝟎, 𝟔𝟏𝟖𝟎𝟑 …
𝟏
Razão Áurea
Otimização Unidimensional
Busca pela Razão Áurea
Encontrando o ponto ótimo usando a razão áurea:
1. Escolhe-se os pontos Xl e XU, que definem o intervalo de busca
2. Os pontos interiores são escolhidos usando-se a razão áurea, da
seguinte forma:
5−1
𝑑=
(𝑋𝑢 − 𝑋𝑙 )
2
𝑋1 = 𝑋𝑙 + 𝑑)
𝑋2 = 𝑋𝑢 − 𝑑)
3. Calcula-se f(X1) e f(X2)
4. Se f(X1) > f(X2), então:
O domínio a esquerda de X2 deve ser eliminado. Ou seja, X2
passa a ser Xl, X1 passa a ser X2 e
𝑋1 = 𝑋𝑙 +
5−1
(𝑋𝑢 − 𝑋𝑙 )
2
Otimização Unidimensional
Busca pela Razão Áurea
Encontrando o ponto ótimo usando a razão áurea:
Se f(X2) > f(X1), então:
O domínio a direita de X1 deve ser eliminado. Ou seja, X1
passa a ser XU, X2 passa a ser X1 e
5−1
𝑋2 = 𝑋𝑢 −
(𝑋𝑢 − 𝑋𝑙 )
2
Exemplo:
Usar o método de busca pela seção áurea para encontrar o
máximo da função abaixo, no intervalo de X entre 0 e 4.
𝑓 𝑋 = 2. sen 𝑋
𝑋2
− 10
Otimização Unidimensional
Interpolação Quadrática
Este método parte do princípio que um polinômio do segundo grau fornece
uma boa aproximação para a forma da função objetivo, f(x), nas
proximidades do ponto ótimo.
Existe apenas uma parábola ligando 3 pontos. Portanto, se existem 3 pontos
que delimitem um ponto ótimo, pode-se ajustar uma parábola aos 3 pontos,
derivá-la e igualar o resultado a zero, para estimar o valor ótimo de X.
f(x)
Ótimo aproximado
Ótimo verdadeiro
Função verdadeira
Função quadrática
X0
X1
X3
X2
Otimização Unidimensional
Interpolação Quadrática
O valor de X3 pode ser obtido pela seguinte equação:
𝑋3
=
𝑓 𝑋0 . 𝑋12 −𝑋22 +𝑓 𝑋1 . 𝑋22 −𝑋02 +𝑓 𝑋2 . 𝑋02 −𝑋12
2.𝑓 𝑋0 . 𝑋1 −𝑋2 +2.𝑓 𝑋1 . 𝑋2 −𝑋0 +2.𝑓 𝑋2 . 𝑋0 −𝑋1
Onde, X0, X1 e X2 são aproximações iniciais e X3 é o valor de X que
corresponde ao máximo valor da função quadrática ajustada às
aproximações.
Realizam-se iterações. Em cada uma delas, avaliam os valores da função
para os pontos escolhidos e descarta-se um deles , reduzindo-se o espaço
de busca.
Exemplo:
Usar a interpolação quadrática para encontrar o máximo da função abaixo,
com as aproximações iniciais X0 = 0, X1 = 1 e X2 = 4.
𝑓 𝑋 = 2. sen 𝑋
𝑋2
− 10
Otimização Unidimensional
Método de Newton
Utiliza a seguinte equação para uma busca iterativa do ótimo da função:
𝑓′(𝑋)
𝑋𝑖+1 = 𝑋𝑖− 𝑓"(𝑋)
Exemplo:
Usar o Método de Newton para encontrar o máximo da função abaixo, com
aproximação inicial X0 = 2,5.
𝑓 𝑋 = 2. sen 𝑋
𝑋2
− 10
MÉTODOS DE BUSCA DIRETA
Busca Aleatória
Método do tipo “força bruta”
Consiste em calcular repetidamente a função objetivo a partir de valores
das variáveis independentes escolhidos aleatoriamente.
Se um número suficiente de amostras for estudado, o valor ótimo será
eventualmente localizado
Exemplo:
Use a função de geração de números aleatórios do MSExcel (aleatório)
para encontrar o máximo da função abaixo, no domínio limitado por x=-2
a 2 e y=-1 a 1,5
f(x,y) = y – x – 2x2 - 2xy – y2
Método Univariacional
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Estratégia de caminhar “morro acima”
Função objetivo: F(x1,x2)
5
4.5
4
3.5
3
x2
2.5
2
1.5
Máximo local
1
Máximo global
0.5
0
0
0.5
1
1.5
2
x1
2.5
3
3.5
4
4.5
5
Início: ponto coordenadas (parâmetros) aleatórias
5
4.5
X2=valor
aleatório entre
ced
4
3.5
3
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
X1=valor aleatório entre a e b
Determina direção de busca: exemplo x2=x2+0,3; x1=x1
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Função objetivo melhorou? Não, então tenta no outro sentido.
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
F.O melhorou? Sim, então continua no mesmo sentido
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
F.O melhorou? Sim, então continua no mesmo sentido
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
F.O melhorou? Sim, então continua no mesmo sentido
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
F.O melhorou? Não, então volta para o ponto anterior...
...e muda a direção de busca.
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
F.O melhorou? Sim, então continua no mesmo sentido
E assim segue até encontrar um ponto em que não existe
direção de busca que melhore o valor da FO
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Exemplo:
Use o método univariacional para encontrar o máximo da função abaixo,
a partir do ponto inicial (X1=-10 e X2=-10
f(X1,X2) = X12 + 8.(X1-X2) + X1.X2 + X22
Rosenbrock: Método um pouco mais eficiente
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Direção de busca é a que potencialmente dará maior incremento da FO
Muito utilizado para calibração automática de modelos hidrológicos
Download

Programação Linear