Programação Não-Linear
porProf. Benedito C. Silva
Universidade Federal de Itajubá – UNIFEIInstituto de Recursos Naturais - IRN
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
Programação Não-Linear
Solução Gráfica
Solução Gráfica
Solução Gráfica
222
211 1378954 xxxxMaxZ
Solução Gráfica
Importante!
Otimização Unidimensional
Busca pela Razão Áurea
Válida para um intervalo que contenha uma única resposta (máximo)
Máximo
Xl
XUX2X1
Xl é o limite inferior do intervalo
XU é o limite superior do intervalo
X1 e X2 são pontos intermediários usados na busca do máximo
f(x)
Otimização Unidimensional
Busca pela Razão Áurea
A escolha dos pontos internos pode ser feita de acordo com os seguintes critérios
+ Máximo
Xl
XUX1X2𝑙0𝑙1 𝑙2
𝑙1𝑙0
=𝑙2
𝑙1
(a)
(b)
(a) em (b)
f(x)
𝑙1𝑙1+𝑙2
=𝑙2
𝑙1Ou,
𝑙1+𝑙2
𝑙1=𝑙1
𝑙2
Otimização Unidimensional
Busca pela Razão Áurea
Fazendo 𝑅=𝑙2𝑙1
Razão Áurea
chega-se a:
1+𝑅=1𝑅 ou,
𝑅2+𝑅−1=0
A raiz positiva será dada por:
𝑅=−1+√1−4.(−1)
2=√5−1
2=0,61803…
𝟏𝟎 ,𝟔𝟏𝟖𝟎𝟑…
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 busca2. Os pontos interiores são escolhidos usando-se a razão áurea, da
seguinte forma:
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
𝑑=√5−12
(𝑋𝑢−𝑋 𝑙)𝑋 1=𝑋 𝑙+𝑑¿𝑋 2=𝑋𝑢−𝑑¿
𝑋 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
𝑋 2=𝑋𝑢−√5−1
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)
X0
X2X3X1
Ótimo verdadeiroÓtimo aproximado
Função verdadeira
Função quadrática
Otimização Unidimensional
O valor de X3 pode ser obtido pela seguinte equação:
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.
𝑋 3=𝑓 (𝑋 0 ) . (𝑋 1
2−𝑋 22 )+ 𝑓 (𝑋 1 ) . (𝑋 2
2−𝑋 02 )+ 𝑓 (𝑋 2 ) . (𝑋 0
2−𝑋 12 )
2. 𝑓 (𝑋 0 ) . ( 𝑋 1❑−𝑋 2
❑)+2. 𝑓 (𝑋 1 ) . (𝑋 2❑−𝑋 0
❑ )+2. 𝑓 (𝑋 2 ) . ( 𝑋 0❑−𝑋 1
❑)
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
Interpolação Quadrática
Otimização Unidimensional
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étodo de Newton
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
Estratégia de caminhar “morro acima”
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Máximo globalMáximo local
Função objetivo: F(x1,x2)
x1
x2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Início: ponto coordenadas (parâmetros) aleatórias
X1=valor aleatório entre a e b
X2=valor aleatório entre c e d
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Determina direção de busca: exemplo x2=x2+0,3; x1=x1
Função objetivo melhorou? Não, então tenta no outro sentido.
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
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
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
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
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
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
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
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...
F.O melhorou? Sim, então continua no mesmo sentido0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
...e muda a direção de busca.
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
E assim segue até encontrar um ponto em que não existedireção de busca que melhore o valor da FO
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
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Rosenbrock: Método um pouco mais eficiente
Direção de busca é a que potencialmente dará maior incremento da FO
Muito utilizado para calibração automática de modelos hidrológicos