You are on page 1of 33

Mtodos de Busca Linear

EEL 6000 - Mtodos Numricos de Otimizao


Laboratrio de Planejamento de Sistemas de Energia Eltrica
Centro Tecnolgico Departamento de Engenharia Eltrica
Tel. +55 (48) 331.9731/9933 Fax +55 (48) 331.7538
Homepage: htto://www.labplan.ufsc.br
Prof.: Erlon Cristian Finardi, D. Eng.
erlon.finardi@ufsc.br
Tcnicas para a Operao de SEE 2
2 EEL6000 Mtodos Numricos de Otimizao
Viso Geral dos Algoritmos
conhecimento da aplicao ou
arbitrariamente
partir de x
0
construda uma sequncia
Para realizar x
k
x
k+1
faz-se uso de f(x
k
) e/ouf(x
0
)
,
f(x
1
),..., f(x
k-1
)
Objetivo: Descobrir x
k+1
tal quef(x
k+1
) < f(x
k
) at
que Vf
k
~ 0
x
0
0
{ }
k k
x

=
Tcnicas para a Operao de SEE 3
3 EEL6000 Mtodos Numricos de Otimizao
Duas Estratgias
Busca Linear
Escolhe p
k
que seja de descida Vf
k
T
p
k
< 0
Minimiza f(x) na direo p
k
minf(x
k
+o
k
p
k
), o
k
> 0
Regio de Confiana
Faz uso de um modelo m
k
que aproxima f(x) ao redor de x
k
Restringe-se o minimizador de m
k
na vizinhana: x
k
min
m
k
(x
k
+p
k
), p
k
> 0, em que x
k
+ p
k
est dentro de uma regio
de confiana (e.g., || p
k
||
2
s A, A > 0)
Tcnicas para a Operao de SEE 4
4 EEL6000 Mtodos Numricos de Otimizao
Duas Estratgias Exemplo
2 2 2
2 1 1
10 1 ( ) ( ) ( ) f x x x x = - + -

- - + -

=

-

2
1 2 1 1
2
2 1
40 2 2
20
( )
( )
( )
x x x x
f x
x x

- + -

=

-

2
1 2 1 2
1
120 40 2 40
40 20
( )
x x x
f x
x
Tcnicas para a Operao de SEE 5
5 EEL6000 Mtodos Numricos de Otimizao
Busca Linear Exemplo... (1)
T
0 1 ( , )
k
x =
2
20
( )
k k
dx f x


=- =

-

T
1 0 ( , )
k
y =
-
=-


=


2 1
0

1
[ ( )] ( )
k k k
dy f y f y
f(x
k
)=11
x
k
dx
k
f(y
k
)=10
y
k
dy
k
Tcnicas para a Operao de SEE 6
6 EEL6000 Mtodos Numricos de Otimizao
Busca Linear Exemplo... (2)
2 2 2 2
1
0
101 20 4 1 4 min ( ) ( ) ( ) ( )
k
k k k k k
f x f
+
a >
= a = - a - a + - a
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16
0
5
10
15
20
25
30
35
40
45
o
k
f(o
k
)
Tcnicas para a Operao de SEE 7
7 EEL6000 Mtodos Numricos de Otimizao
Busca Linear Exemplo... (3)
+
a >
= a = a -
2
1
0
10 1 min ( ) ( ) ( )
k
k k k
f y f
o
k
f(o
k
)
0 0.5 1 1.5 2 2.5 3
0
5
10
15
20
25
30
35
40
Tcnicas para a Operao de SEE 8
8 EEL6000 Mtodos Numricos de Otimizao
Regio de Confiana ... (1)
Modelo que aproxima f(x) emx
k
= (0,1)
T
T T
1
2
( )
k k k k k k k k
m x p f p f p B p + = + +
Considerando B
k
= V
2
f(x
k
) tem-se
T T
2 38 0
1
11
20 0 20
2
( )
k k k k k
mx p p p p

- -

+ = + +


1 2
2 2
1 2 1 2
2
2
19 10 2 20 11

( , )
min
. :
T
k k k
k k k k k
p p p
k k
m p p p p
s a p
=
=- + - + +
D
Problema
Tcnicas para a Operao de SEE 9
9 EEL6000 Mtodos Numricos de Otimizao
Regio de Confiana ... (2)
k
x
k
p
k
p
1 ( )
k
mx =
19 ( )
k
mx =
contornos
do modelo
contornos de f(x)
mnimo de f(x)
mnimos de
m(x
k
)
Tcnicas para a Operao de SEE 10
10 EEL6000 Mtodos Numricos de Otimizao
Direes Busca Linear
Principais Classes de Algoritmos
Gradiente Steepest-Descent onde B
k
a matriz identidade
Newton, em que B
k
a matriz hessiana
QuaseNewton, onde a B
k
uma aproximao (Definida
Positiva) da matriz hessiana, atualizada em cada iterao
Gradiente Conjugado p
k
= Vf
k
+|
k
p
k-1
, onde |
k
um
escalar que garante que p
k
e p
k-1
so direes conjugadas
Em geral, so do tipo p
k
= [B
k
]
1
Vf
k
Onde B
k
uma matriz simtrica e no-singular
Tcnicas para a Operao de SEE 11
11 EEL6000 Mtodos Numricos de Otimizao
Escolha do Tamanho do Passo
Tradeoff (o
k
que reduz f(x
k
)
substancialmente) x (mnimo esforo nessa escolha)
Idealmente: mnimo global de |(o) =f(x
k
+o
k
p
k
),
o
k
> 0
Soluo: realizar um busca linear inexata que
reduza f(x
k
) adequadamente um mnimo custo
computacional
Descobrir um intervalo que possui valores desejveis para o
k
Calcular um bom valor de o
k
que pertence ao intervalo definido
acima
Tcnicas para a Operao de SEE 12
12 EEL6000 Mtodos Numricos de Otimizao
Dificuldades para Encontrar o
k
( )
k
| o
k
o
Primeiro
Ponto
Estacionrio
Primeiro
Mnimo
Local
Mnimo
Global
( ) ( 0)
k k
f x f = o =
Tcnicas para a Operao de SEE 13
13 EEL6000 Mtodos Numricos de Otimizao
Reduo Insuficiente
Uma simples condio
poderia ser imposta
emo
k
para reduzir a
funo objetivo:
f(x
k
+ o
k
p
k
) < f(x
k
)
No apropriada
pois, na figura, onde
x*=1, a seqncia
de valores de f(x),
definida por {5/K},
converge para zero
Tcnicas para a Operao de SEE 14
14 EEL6000 Mtodos Numricos de Otimizao
Decrscimo Suficiente
f(x
k
+ o
k
p
k
) s f(x
k
) + c
1
o
k
Vf
k
T
p
k
c
1
e (0,1)
Proporcional ao
k
e a derivada direcional Vf
k
T
p
k
(Condio de Armijo)
Na prticac
1
da ordem de 110
-4
Condio de
Decrscimo
Suficiente
|(o) s l(o)
( ) ( )
k k
f x p | o = + o
o
T
1
( ) ( )
k k k
l f x c f p o = + oV
No garante que
um algoritmo tenha
um razovel
progresso pois
pode ser atendido
para valores muito
pequenos de o
Tcnicas para a Operao de SEE 15
15 EEL6000 Mtodos Numricos de Otimizao
Condio de Curvatura
Vf(x
k
+ op
k
)
T
p
k
> c
2
Vf
k
T
p
k
c
2
e (c
1
,1)
|'(o) maior do que c
2
|'(0)
( ) ( )
k k
f x p | o = +o
o
c
2
Vf
k
T
p
k
=c
2
|'(0)
Vf
k
T
p
k
=|'(0)
Se |'(o) muito
negativa, pode-se
reduzir f(x)
significativamente
Caso contrrio,
no se espera
reduzir f(x) em p
k
e pode-se terminar
a busca em o
Tcnicas para a Operao de SEE 16
16 EEL6000 Mtodos Numricos de Otimizao
Condies de Wolfe
f(x
k
+ op
k
) s f(x
k
) + c
1
oVf
k
T
p
k
e Vf(x
k
+ op
k
)
T
p
k
> c
2
Vf
k
T
p
k
( ) ( )
k k
f x p | o = + o
o
0<c
1
<c
2
<1. Em
geral: 0,1 < c
2
< 0,9
Um passo pode
atender as
condies de Wolfe
sem estar muito
prximo de um
minimizador
Inclinao
Desejada
Suficiente
Decrscimo
Tcnicas para a Operao de SEE 17
17 EEL6000 Mtodos Numricos de Otimizao
Condies (Fortes) de Wolfe
( ) ( )
k k
f x p | o = + o
o
f(x
k
+ op
k
) s f(x
k
) + c
1
oVf
k
T
p
k
e |Vf(x
k
+ op
k
)
T
p
k
| s c
2
| Vf
k
T
p
k
|
|c
2
|'(0)|
Tcnicas para a Operao de SEE 18
18 EEL6000 Mtodos Numricos de Otimizao
Algoritmos para Seleo de o
Considerao Inicial: |'(0) < 0
Sef(x) = 0.5x
T
Qx + b
T
x + c (convexa)
o
k
= (Vf
k
T
p
k
)/(p
k
T
Qp
k
) omnimo global emx
k
+op
k
Procedimento Geral
Requer uma estimativa de o
0
- Passo Inicial
Constri um sequncia { o
i
} que termina se as condies de
Fortes de Wolfe (ou Armijo) podem ou no ser atendidas
Duas Fases
1. Descobrir um intervalo [a,b] com valores aceitveis para o
2. Calcular um bom valor de o que pertence ao intervalo definido
acima (interpolao, por exemplo)
Tcnicas para a Operao de SEE 19
19 EEL6000 Mtodos Numricos de Otimizao
Determinao do Passo Inicial
o
0
= 1 para os Mtodos de Newton e Quase-Newton
Para mtodos que no produzem direes dessa
qualidade (e.g., Gradiente e Gradiente Conjugado)
necessrio utilizar alguma informao do problema
o
0
= o
k-1
(Vf
k-1
T
p
k-1
)/(Vf
k
T
p
k
)
Interpolar uma quadrtica a partir de f(x
k-1
), f(x
k
) e
|'(0) = Vf
k
T
p
k
definindo o
0
como o respectivo
minimizador
| |
1
0
2 ( ) ( )
'(0)
k k
f x f x

o =
|
Tcnicas para a Operao de SEE 20
20 EEL6000 Mtodos Numricos de Otimizao
Backtracking Line Search
Escolha o > 0, , c
1
e (0,1). Inicializeo = o
Repita at Verificar f(x
k
+ op
k
) s f(x
k
) + c
1
oVf
k
T
p
k
o = o
End (Repita)
o
k
= o
o = 1 para Newton e Quase-Newton (diferentes valores para Gradiente
e Gradiente Conjugado)
Na prtica pode variar em cada iterao interpolao (adiante)
Deve-se garantir que e[
low
,
high
], tal que 0 <
low
<
high
< 1
Algoritmo garante que o algum valor fixado inicialmente ou
pequeno (mas no muito) o suficiente para atender a condio de
decrscimo suficiente
Adequado para Newton. Menos apropriado para Quase-Newton e
Gradiente
Tcnicas para a Operao de SEE 21
21 EEL6000 Mtodos Numricos de Otimizao
Interpolao...(1)
Baseada em valores conhecidos da funo e de
suas derivadas
Pode ser visto com um aprimoramento do algoritmo de
backtracking
Objetivo
Descobrir o que satisfaz as condies de decrscimo suficiente,
sem ser muito pequeno
Procedimento que fornece valores decrescentes de o, de modo
que no seja muito menor que seu predecessor
Condio de decrscimo suficiente
|(o
k
) |(0) + c
1
o
k
|'(0)
eficiente pois calcula Vf(x) o mnimo possvel
Tcnicas para a Operao de SEE 22
22 EEL6000 Mtodos Numricos de Otimizao
Dado o
0
, se|(o
0
) |(0) + c
1
o
0
|'(0), pare. Caso
contrrio, em [0,o
0
] contm um passo aceitvel
Com |(0), |'(0) e |(o
0
) realiza-se a seguinte interpolao
quadrtica
2
0 0
2
0
( ) (0) '(0)
( ) '(0) (0)
q
| |
| o | o |
| o = o + | o+ |
|
o
\ .
| |
2
0
1
0 0
'(0)
2 ( ) (0) '(0)
| o
o =
| o | | o
cujo mnimo dado por
Se a condio |(o
1
) s |(0) + c
1
o
1
|'(0) atendida, ento
a busca terminada. Caso contrrio, constri-se uma
funo cbica com base em |(0), |'(0), |(o
0
) e |(o
1
)
Interpolao...(2)
Tcnicas para a Operao de SEE 23
23 EEL6000 Mtodos Numricos de Otimizao
Funo cbica
Interpolao...(3)
3 2
0 0 ( ) '( ) ( )
c
a b | o = o + o + o| + |
2 2
1 1
0 1
2 2 3 3
0 0 0 1 1 0 0 1
( ) (0) '(0)
1
( ) (0) '(0) ( )
a
b
| o | | o (
o o ( (
=
(
( (
| o | | o o o o o o o


onde
Diferenciando |
c
(o) encontra-se o mnimo o
2
e [0,o
1
]
2
2
3 '(0)
3
b b a
a
+ |
o =
Se necessrio, deve-se fazer uma nova interpolao
cbica com |(0), |'(0) e os dois mais recentes valores
de | at satisfazer o decrscimo suficiente
Se qualquer o
i
muito prximo ou muito menor que
o
i-1
, ento faz-se o
i
=o
i
/2 (Safeguard)
Tcnicas para a Operao de SEE 24
24 EEL6000 Mtodos Numricos de Otimizao
Algoritmo de Wolfe
Escolha o
1
> 0 eo
max
. Faa o
0
= 0 e i = 1
Repita (i s 10)
Avalie |(o
i
)
Se |(o
i
) > |(0) + c
1
o
i
|'(0) ou [|(o
i
) > |(o
i-1
) e i >1]
ZOOM(o
i-1
, o
i
) o
*
e PARE
Avalie |'(o
i
)
Se||'(o
i
)| s c
2
|'(0)
Faao
i
= o
*
e PARE
Se|'(o
i
) > 0
ZOOM(o
i
, o
i-1
) o
*
e PARE
Escolhao
i+1
e (o
i
, o
max
) e faai=i+1
End (Repita)
Tcnicas para a Operao de SEE 25
25 EEL6000 Mtodos Numricos de Otimizao
ZOOM(o
lo
, o
hi
)
a. O intervalo (o
lo
, o
hi
) c o que atende as condies de Wolfe
b. o
lo
d o menor da funo objetivo at a presente iterao e atende decrscimo
suficiente
c. o
hi
escolhido de modo que |'(o
lo
)(o
hi
o
lo
) < 0
Repita ( j s 10 )
Interpole(Quadrtica ou Cbica) para descobrir
um valor candidatoo
j
e (o
lo
, o
hi
)
Avalie|(o
j
)
Se [|(o
j
) > |(0) + c
1
o
j
|'(0)] ou[|(o
j
) > |(o
1o
)]
Faa o
hi
= o
j
Seno
Avalie|'(o
j
)
Se ||'(o
j
)| s c
2
|'(0)
Faa o
*
= o
j
e PARE
Se |'(o
j
)(o
hi
o
lo
) > 0
Faa o
hi
= o
lo
o
lo
= o
j
End (Repita)
Tcnicas para a Operao de SEE 26
26 EEL6000 Mtodos Numricos de Otimizao
Exemplo Numrico Ilustrativo
= + - + + -
2 2 2 2
1 2 1 2
( 11) ( 7) f x x x x
Tcnicas para a Operao de SEE 27
27 EEL6000 Mtodos Numricos de Otimizao
Exemplo Numrico Ilustrativo
[ ]
T
0
5 0 x =-
0
304
( )
98
f x

-

=


0
0
0
0
( )

( )
0,9958
0,0917
f x
p
f x
p

=-



=

-


p
0
Tcnicas para a Operao de SEE 28
28 EEL6000 Mtodos Numricos de Otimizao
( ) =f(x
0
+ p
0
)
|(o)
l(o) = 340 0,0305o
o
|(0) =340
|'(0)= 305,29
o aceitvel
Tcnicas para a Operao de SEE 29
29 EEL6000 Mtodos Numricos de Otimizao
Exemplo II
[ ]
T
1
2,5 1,5 x =
1
37
( )
20
f x

-

=

-

1
1
1
1
( )

( )
0,8797
0,4755
f x
p
f x
p

=-



=



p
0
p
1
Tcnicas para a Operao de SEE 30
30 EEL6000 Mtodos Numricos de Otimizao
( ) =f(x
1
+ p
1
)
|(o)
l(o) = 15,625 0,0042o
o
|(0) =15,625
|'(0)= 42,060
o aceitvel
Tcnicas para a Operao de SEE 31
31 EEL6000 Mtodos Numricos de Otimizao
Interpolao Quadrtica (0,10)
Casox
0
|(o)
|(0)=340 |'(0)= 305,29 |'(10)=161,797
o
o
1 o
*
= 5,31
2
1 1
2
1
( ) (0) '(0)
( ) '(0) (0)
q
| |
| o | o|
| o = o +| o+|
|
o
\ .
| |
2
*
1
1 1
'(0)
2 ( ) (0) '(0)
| o
o =
| o | | o
Tcnicas para a Operao de SEE 32
32 EEL6000 Mtodos Numricos de Otimizao
Notas & Referncias
Algoritmos que usam apenas valores de f
k
podem
ser ineficientes pois o mnimo precisa ser refinado
a um intervalo preciso
Principais classes so dadas pelas mtodos da Seo urea e
de Fibonnaci
Tipicamente armazenam trs pontos que determinam um
intervalo que contm um minimizador unidimensional
T. H. Cormen, C. E. Leisserson, and R. L. Rivest, Introduction to Algorithms,
MIT Press, 1990.
R. P. Brent, Algorithms for minimization without derivatives, Prentice Hall,
Englewood Cliffs, N.J., 1973
M. Bazaraa, H. Sherali, and C. Shetty, Nonlinear Programming, Theory and
Applications.,JohnWiley & Sons, New York, second ed., 1993.
Referncias
OBRIGADO!
Prof. Erlon Cristian Finardi
erlon.finardi@ufsc.br