Você está na página 1de 49

Programação Não Linear

Conceitos, Algoritmos de Busca

F U N ÇÕ E S I R R E ST R I TAS D E U M A VA R I ÁV E L
Bibliografia

 Os slides foram baseados em:


 Bazarra, Sherali e Shetty - Nonlinear Programming: Theory
and Algorithms – Wiley 3rd Edition
 Ravindran, Ragsdell e Reklaitis – Engineering Optimization:
Methods and Applications – Wiley 2nd Edition
Espaço de Solução

 Funções (ir)restritas quanto ao espaço de solução


f ( x ) = x 3 + 2x 2 − x + 3 x ∈ℜ
3 2
f ( x ) = x + 2x − x + 3 x ∈ S = {x − 5 ≤ x ≤ 5}

 Conjunto S: conjunto viável, região viável, domínio


Funções Contínuas

 Funções contínuas x descontínuas x discretas

R$/t R$/m

Qtdade (t) Diâmetro (pol)


Monotonicidade

 f (x ) é monotônica se, para quaisquer 2 pontos x1 e


x2, com x1 ≤x2:
f(x1)≤f(x2) → monotônica crescente
f(x1)≥f(x2) → monotônica decrescente

f(x)

Monotônica Monotônica
decrescente crescente
Unimodalidade

 A função f(x) é unimodal no intervalo a≤x≤b se e


somente se for monotônica em ambos lados de uma
solução ótima x* no intervalo; isto é:
x* ≤ x1 ≤x2 implica que f(x*)≤ f(x1)≤f(x2) e
x* ≥ x1 ≥x2 implica que f(x*)≥f(x1)≥f(x2)
Critério de Otimalidade

 O ponto x** será ponto de mínimo global para a


função f(x), definida para o conjunto S, se e somente
se f(x**) ≤ f(x) para todo x∈ S
 A função f(x), definida para o conjunto S, terá x*
como ponto de mínimo local se e somente se f(x*) ≤
f(x), para todo x a uma distância ε de x. Assim, para
um ε>0, tal que |x-x*|<ε, f(x*) ≤ f(x)
Observações

1. A definição de máximo local e máximo global é


equivalente, mudando-se apenas a desigualdade
2. Sob a condição de unimodalidade, o ponto de
mínimo local também será automaticamente o
ponto de mínimo global
3. Quando a função não for unimodal, múltiplos
ótimos locais poderão existir, e ponto de ótimo
global pode ser encontrado identificando todos os
ótimos locais, e escolhendo o melhor deles
Identificação do Ponto Ótimo

 Supor que f(x) seja uma função de uma única


variável, definida no intervalo aberto (a,b) e que f
seja diferenciável até a n-ésima ordem. Se x* é um
ponto dentro deste intervalo, então o teorema de
Taylor permite avaliar a variação da função quando
x varia de x* a x*+ε:
df ε 2 d2 f
f ( x * +ε ) − f ( x *) = ε + 2
+L+
dx x=x* 2! dx x =x*
n n
ε d f
n
+ On+1 (ε )
n! dx x=x*
Identificação do Ponto Ótimo

 Se x* for um ponto de mínimo local de f em (a,b),


então para um dado ε, f(x)≥f(x*), o que implica
que:
2 2 n n
df ε d f ε d f
ε + 2
+L+ n
+ On+1 (ε ) ≥ 0
dx x =x* 2! dx x =x*
n! dx x =x*
 Sendo ε pequeno, os primeiros termos dominarão
os demais, e a expressão acima será verdadeira
quando:
2
df d f
=0 e ≥0
dx x=x* dx 2 x =x*
Teorema 1 (Condições Necessárias)

 As condições necessárias para que x* seja um


mínimo (máximo) local no intervalo aberto (a,b),
supondo que f seja duplamente diferenciável são:

df
=0
dx x=x*

d2 f
≥ 0 (≤ 0 )
dx 2 x=x*
Ponto Estacionário

 Um ponto estacionário é um ponto x* no qual:


df
=0
dx x =x*
 Um ponto de inflexão ou ponto de sela é um ponto
estacionário que não corresponde a um ponto de
ótimo local (mínimo ou máximo)
Ponto Estacionário

 Ex: f(x)=x3, no ponto x*=0


150,0

100,0

50,0

0,0

-50,0

-100,0

-150,0
Teorema 2 (Condições Suficientes)

 Supor que no ponto x* a primeira derivada seja


zero e que a primeira derivada diferente de zero
seja a de ordem n.
(i) – Se n for ímpar, então x* é um ponto de
inflexão;
(ii) – Se n for par, então x* é um ponto de ótimo
local, sendo:
a) Se esta derivada for positiva, então x* é um
ponto de mínimo local
b) Se esta derivada for negativa, então x* é um
ponto de máximo local
Ponto Estacionário

 Ex: f(x)=x3, no ponto x*=0


150,0

df
=0 100,0
dx x =x*
50,0

d2 f
=0 0,0

dx 2 x =x*
-50,0

d3 f -100,0

3
=6
dx x =x*
-150,0
Lote Econômico no Controle de Estoque

 A determinação do lote econômico (Q) assume que


existe uma demanda constante de λ unidades por
período. Há um custo de colocação do pedido de
$K, o qual independe do lote. O custo unitário de
aquisição é $c. O custo de manter o estoque é de $h
por unidade, por período. Assume-se que a
demanda será atendida sem atrasos, e que
reposição é feita de maneira instantânea.
Lote Econômico no Controle de Estoque

A C
Tempo

Sendo T=C-A e o lote B dado por Q


T=Q/λ
Lote Econômico no Controle de Estoque

 Custo total (no período)= número de ciclos x custo


do ciclo
 Custo do ciclo: custo de compra + custo do estoque
 1   Q   λK hQ
f (Q ) =   (K + cQ ) +  hT   = + λc +
 T  2  Q 2
λK h
f '(Q ) = − 2 +
Q 2
2λK
f ''(Q ) = 3 > 0
Q
Lote Econômico no Controle de Estoque

2λK 2K
f '(Q ) = 0 ⇒ Q * = > 0 ⇒T* =
h hλ
Eliminação do Espaço de Solução

 Dado que uma solução não é ótima, como proceder


para achar uma? Uma das maneiras é de
sucessivamente eliminar trechos do espaço de
solução.
Teorema 3

 Supor que f é estritamente unimodal no intervalo


a ≤x ≤b com o ponto de mínimo x*. Seja x1 e x2 dois
pontos no intervalo a<x1<x2<b. Comparando os
valores das funções em x1 e x2:
i) Se f(x1)>f(x2), então o mínimo da função de f(x)
não estará no intervalo (a, x1) → x*∈ (x1,b)
ii) Se f(x1)<f(x2), então o mínimo da função de f(x)
não estará no intervalo (b, x2) → x*∈ (a,x2)
Teorema 3

f(x) f(x)

a x1 x* x2 b a x1 x* x2 b
Procedimento de Busca

 Com base no Teorema 3 um procedimento de busca


pode ser desenvolvido, em que seções do espaço de
solução são recursivamente eliminados até que a
seção contendo o ponto ótimo é suficientemente
pequena
 Como vantagem, a função não precisa ser
diferenciável e nem ser fornecida em forma
matemática/analítica
 Fases: “Bounding Phase” e “Interval Refinement
Phase”
Fase Inicial (“Bounding Phase”)

 É necessário, primeiramente, identificar a região


do espaço de solução que contém o ponto de
mínimo (“fase de enquadramento”)
 Seja x0 um ponto inicial e ∆ um passo
 A região contendo o mínimo local estará
enquadrada entre x0-|∆| e x0+|∆| quando:
f(x0-|∆|) ≥f(x0)≤f(x0+|∆|)
 Caso o intervalo não contenha o ponto de mínimo,
utilizaremos o método de Swann em que o (k+1)-
ésimo ponto é gerado segundo: xk+1=xk+2k∆
Exemplo “Bounding Phase”

 Considere o problema de minimizar f(x)=(100-x)2


tendo como ponto de partida x0=30 e |∆|=5
 O sinal de ∆ é determinado comparando:
f(x0) =f(30)=4900
f(x0+|∆|) =f(35)=4225
f(x0-|∆|) =f(25)=5625
 Como f(x0-|∆|) ≥f(x0) ≥ f(x0+|∆|), ∆ é positivo e o
ponto de mínimo x* estará à direita de 30
Exemplo “Bounding Phase”

 x1=x0+ ∆=35
 x2=x1+ 2∆=45
 f(45)=3025<f(x1) x*>35
 x3=x2+ 4∆=65
 f(65)=1225<f(x2) x*>45
 x4=x3+ 8∆=105
 f(105)=25<f(x3) x*>65
 x5=x4+ 16∆=185
 f(185)=7225>f(x4) 65 ≤ x* ≤185
Fase de Refinamento do Intervalo

 Uma vez que um intervalo que contenha o ponto


ótimo tenha sido determinado, é necessário que
haja uma forma sistematizada de redução do
espaço de solução
Método de 3 Pontos

 Passos para achar o mínimo da função f(x) no


intervalo (a,b)
Passo 1 – Seja xm=½(a+b) e L=b-a; calcular f(xm)
Passo 2 – Seja x1=a + ¼L e x2=b - ¼L
Os pontos estão x1, xm, x2 igualmente espaçados;
calcular f(x1) e f(x2)
Passo 3 – Comparar f(x1) com f(xm)
i) Se f(x1)<f(xm), então eliminar o intervalo (xm,b)
fazendo b=xm. O ponto médio do intervalo será x1
(fazer xm=x1). Ir para o passo 5.
ii) Se f(x1)≥f(xm), ir para o passo 4.
Método de 3 Pontos

Passo 4 –Compara f(x2) com f(xm)


i) Se f(x2)<f(xm), então eliminar o intervalo (a,xm)
fazendo a=xm. O ponto médio do intervalo será x2
(fazer xm=x2). Ir para o passo 5.
ii) Se f(x2)≥f(xm), então eliminar os intervalos
(a,x1) e (x2,b), fazer a=x1 e b=x2. O ponto médio
continua sendo xm. Ir para o passo 5.
Passo 5 – Computar L=b-a. Se |L| for pequeno,
terminar. Em caso contrário, voltar ao passo 2.
Método de 3 Pontos

 A cada iteração do algoritmo, o espaço de solução é


reduzido pela metade
 O ponto central dos intervalos subsequentes
sempre será igual a x1, x2 ou xm
 Entre os métodos que particionam o espaço de
solução (método de 2, 3 e 4 pontos), este método
possui excelente desempenho
Exemplo: Método de 3 Pontos

 Minimizar a função f(x)=(100-x)2 no intervalo


60≤x≤150
a=60; b=150; L=90; xm=105; f(xm)=25
1ª Iteração
x1=a + ¼L=60+ ¼ 90=82,5 f(x1)=306,25>f(105)
x2=b - ¼L=150- ¼ 90=127,5 f(x2)=726,25>f(105)
Os intervalos (60;82,5) e (127,5;150) são
eliminados e o intervalo de busca reduz de 90 para
45
Exemplo: Método de 3 Pontos

2ª Iteração
a=82,5; b=127,5; L=45
xm=105; f(xm)=25
x1=a + ¼L=93,75 f(x1)=39,06>f(105)
x2=b - ¼L=116,25 f(x2)=264,06>f(105)
Os intervalos (82,5; 93,75) e (116,25;127,5) são
eliminados
Exemplo: Método de 3 Pontos

3ª Iteração
a= 93,75; b=116,25; L=22,5
xm=105; f(xm)=25
x1=a + ¼L=99,375 f(x1)=0,39<f(105)
x2=b - ¼L=110,625 f(x2)=112,89>f(105)
O intervalo (105; 116,25) pode ser eliminado
Exemplo: Método de 3 Pontos

4ª Iteração
a= 93,75; b=105; L=11,25
xm=99,375; f(xm)=0,39
x1=a + ¼L=96,5625 f(x1)=11,82>f(xm)
x2=b - ¼L=102,1875 f(x2)=4,79>f(xm)
Os intervalos (93,75; 96,5625) e (102,1875; 105)
podem ser eliminados
Exemplo: Método de 3 Pontos

5ª Iteração
a= 96,5625; b= 102,1875; L=5,625
xm=99,375; f(xm)=0,39
x1=a + ¼L=97,96875 f(x1)=4,13>f(xm)
x2=b - ¼L=100,78125 f(x2)=0,61>f(xm)
Os intervalos (96,5625; 97,96875) e
(100,78125;102,1875) podem ser eliminados
Exemplo: Método de 3 Pontos

6ª Iteração
a= 97,96875; b= 100,78125; L=2,8125
xm=99,375; f(xm)=0,39
x1=a + ¼L=98,672 f(x1)=1,76>f(xm)
x2=b - ¼L=100,078125 f(x2)=0,0061<f(xm)
O intervalo (97,96875; 99,375) pode ser eliminado
Seção Áurea

 Supor que iremos utilizar apenas dois pontos, cada


qual localizado a uma fração τ de uma extremidade
τ 1-τ
0 1 2 1
1-τ τ

 Supor que o intervalo à direita de 2 seja eliminado.


O trecho resultante já possui um ponto localizado a
uma distância 1- τ da esquerda
τ
0 1 2
1-τ
Seção Áurea

 Para manter a simetria queremos que o ponto 1-τ


corresponda à fração τ da linha (que possui
comprimento τ). Isto é:
1- τ= τ2 →(raiz positiva) τ=0,61803...
τ2
0 τ
1-τ

 Dependendo do trecho eliminado (direita – XR ou


esquerda – XL), o novo ponto w será w=XR-τn ou
w=XL+τn
Exemplo: Método da Seção Áurea

 Minimizar a função f(x)=(100-x)2 no intervalo


60≤x≤150
Vamos normalizar o espaço de solução
w=(x-60)/90, resultando o problema em:
Minimizar a função f(w)=(40-90w)2 no intervalo
0≤w≤1
Exemplo: Método da Seção Áurea

1ª Iteração
I1=(0;1); L1=1
w1= τ =0,618 f(w1)=244,0
w2=1- τ=0,382 f(w2)=31,6
Como f(w2)<f(w1) e w2<w1, o intervalo w≥w1 será
eliminado
Exemplo: Método da Seção Áurea

2ª Iteração
I2=(0;0,618); L2=0,618
w3= τ-τ2= τ3=0,236 f(w3)=352,0
Como f(w3)>f(w2) e w3<w2, o intervalo w≤w3 será
eliminado
Exemplo: Método da Seção Áurea

3ª Iteração
I3=(0,236;0,618); L3=0,382
w4=0,236+τL3=0,472 f(w4)=6,15
Como f(w4)<f(w2) e w4>w2, o intervalo w≤w2 será
eliminado
Exemplo: Método da Seção Áurea

4ª Iteração
I4=(0,382;0,618); L4=0,236
w5=0,382+τL4=0,52785 f(w5)=56,35
Como f(w5)>f(w4) e w5>w4, o intervalo w≥w5 será
eliminado
Exemplo: Método da Seção Áurea

A B C D E F G H I
k interv_e interv_d pe pd f(pe) f(pd) tamanho w médio z f(z)
1 0,0000 1,0000 0,3820 0,61803 31,6188 244,0800 1,0000 0,50000 105,000 25,000
2 0,0000 0,6180 0,2361 0,3820 351,7081 31,6188 0,6180 0,30902 87,812 148,559
3 0,2361 0,6180 0,3820 0,4721 31,6188 6,2112 0,3820 0,42705 98,435 2,451
4 0,3820 0,6180 0,4721 0,5279 6,2112 56,3665 0,2361 0,50000 105,000 25,000
5 0,3820 0,5279 0,4377 0,4721 0,3691 6,2112 0,1459 0,45492 100,942 0,888
6 0,3820 0,4721 0,4164 0,4377 6,3670 0,3691 0,0902 0,42705 98,435 2,451
7 0,4164 0,4721 0,4377 0,4508 0,3691 0,3323 0,0557 0,44427 99,984 0,000
8 0,4377 0,4721 0,4508 0,4590 0,3323 1,7115 0,0344 0,45492 100,942 0,888
9 0,4377 0,4590 0,4458 0,4508 0,0154 0,3323 0,0213 0,44834 100,350 0,123
10 0,4377 0,4508 0,4427 0,4458 0,0241 0,0154 0,0132 0,44427 99,984 0,000
11 0,4427 0,4508 0,4458 0,4477 0,0154 0,0882 0,0081 0,44678 100,211 0,044
12 0,4427 0,4477 0,4446 0,4458 0,0003 0,0154 0,0050 0,44523 100,071 0,005
13 0,4427 0,4458 0,4439 0,4446 0,0024 0,0003 0,0031 0,44427 99,984 0,000
14 0,4439 0,4458 0,4446 0,4451 0,0003 0,0034 0,0019 0,44487 100,038 0,001
15 0,4439 0,4451 0,4444 0,4446 0,0001 0,0003 0,0012 0,44450 100,005 0,000
16 0,4439 0,4446 0,4442 0,4444 0,0005 0,0001 0,0007 0,44427 99,984 0,000
17 0,4442 0,4446 0,4444 0,4445 0,0001 0,0000 0,0005 0,44441 99,997 0,000
Método de Aproximação Quadrática

 Sendo a função, para a qual se busca obter o ponto


de mínimo local, unimodal, contínua e suave
(“smooth”), pode-se fazer uma aproximação
quadrática e, posteriormente, buscar o ponto de
mínimo do polinômio resultante.
 Sejam x1, x2, x3 e f(x1), f(x2) e f(x3), três pontos que
serão utilizados para aproximar a função. As
constantes a0, a1 e a2 deverão ser determinadas
para a função quadrática
q(x)=a0+a1(x-x1)+a2(x-x1)(x-x2)
Método de Aproximação Quadrática

f1 = f ( x1 ) = q( x1 ) = a0
a0 = f1

f 2 = f ( x 2 ) = q( x 2 ) = f1 + a1( x 2 − x1 )
f 2 − f1
a1 =
x 2 − x1
f 2 − f1
f 3 = f ( x 3 ) = q( x 3 ) = f1 + ( x 3 − x1 ) + a2 ( x 3 − x1 )( x 3 − x 2 )
x 2 − x1
1  f 3 − f1 f 2 − f1 
a2 =  − 
x 3 − x 2  x 3 − x1 x 2 − x1 
Método de Aproximação Quadrática

dq
= a1 + a2 ( x − x 2 ) + a2 ( x − x1 ) = 0
dx
x 2 + x1 a1
x= −
2 2a2
Exemplo: Aproximação Quadrática

 Minimizar a função
2 16
f ( x ) = 2x + 1≤ x ≤ 5
x
 Seja x1=1; x2=3; x3=5;
f(x1)=18; f(x2)=23,33; f(x3)=53,2
Exemplo: Aproximação Quadrática

 As constantes a0, a1 e a2 serão:


23,33 − 18 8
a0 = 18; a1 = =
3 −1 3
1  53,2 − 18 8  46
a2 =  − =
5 − 3  5 −1 3  15
3 +1 8/3
x= − = 1,565
2 2(46 /15)

 OBS: O ponto ótimo exato é 1,5874

Você também pode gostar