Programação Não-Linear por Prof. Benedito C. Silva Universidade Federal de Itajubá – UNIFEI...

Post on 07-Apr-2016

216 views 1 download

Transcript of Programação Não-Linear por Prof. Benedito C. Silva Universidade Federal de Itajubá – UNIFEI...

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