Sunteți pe pagina 1din 31

EEL 6000 - Mtodos Numricos de

Direes para
Otimizao

Mtodos de Busca
Linear
Prof.: Erlon Cristian Finardi, D. Eng.
erlon@labplan.ufsc.br

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
Taxas de
Convergncia
Aspecto chave na medida de desempenho de
um algoritmo
Seja { xk } uma seqncia no n que converge
para x*
Taxa
xk+1 - Quotient-Linear
x* (Q-Linear) se existe um r(0,1) tal que
*
r , k suficientemente grande (1) 1 +(0 ,5 )k
xk - x
xk+1 - x*
lim =0 (2) 1+ k- k
k xk - x*
Q-superlinear se

*
xk+1 - x
Q-quadrtica se existe um M > 0
M , k suficientemente grande (3) 1+(0 ,5) 2k
* 2
xk - x
EEL6000 Mtodos Numricos de Otimizao 2
Tcnicas para a Operao de SEE 2
Mtodo do Gradiente
pk
(1)
= [I] f a mais bvia escolha de
-1
k
direo em algoritmos de busca linear (direo
de maior decrscimo)
Sempre de descida, pois pkTfk= fkTfk<0
Conjunto de Direes
de Descida

Mtodo do Gradiente para uma


funo de duas variveis
EEL6000 Mtodos Numricos de Otimizao 3
Tcnicas para a Operao de SEE 3
Mtodo do Gradiente

(2)
Tem como principal vantagem a necessidade
de fazer uso de fk, descartando o uso de
derivadas de segunda ordem
Contudo, pode ser excessivamente lento para
problemas difceis mau condicionados
Possui taxa de
convergncia linear, mas
quando o problema mau
condicionado a constante
de convergncia em (1)
muito prxima a 1

EEL6000 Mtodos Numricos de Otimizao 4


Tcnicas para a Operao de SEE 4
Mtodo do Gradiente
(3)
Fornecido um ponto inicial x0
for k = 0,1,2,
Avalie pk= f(xk)
if f(xk) (e.g.,10-5)
PARE
else
xk+1=xk+ kpk, onde k satisfaz as condies de
Armijo ou de Wolfe (preferencialmente)
end(if)
end(for)

EEL6000 Mtodos Numricos de Otimizao 5


Tcnicas para a Operao de SEE 5
Mtodo do Gradiente
(4) 2 2
f(x)= 5 x + x + 4 x x - 14 x - 6 x + 20
1 2 1 2 x = (1,1) , f(x )= 10
1 2
* T *

Direo
10 x1k + 4 x2k - 14 p1k
pk =- k =
4 x + 2 x - 6 pk
k
1 2 2
Passo (busca linear exata pequena aplicao
prtica!)
f(a )= 5(xk + a pk )2 +(xk + a pk )2 + 4(xk + a pk )(xk + a pk )
1 1 2 2 1 1 2 2

- 14(x1k + a p1k )- 6(x2k + a p2k )+ 20

k 2 k 2
(p ) + (p2)
ak = 1

2
5 (
1pk 2
) + (pk 2
2 ) + 4 pk k
1 p2
EEL6000 Mtodos Numricos de Otimizao 6
Tcnicas para a Operao de SEE 6
Mtodo do Gradiente
(5)

EEL6000 Mtodos Numricos de Otimizao 7


Tcnicas para a Operao de SEE 7
Gradiente Conjugado
Motivaes
Eficiente na soluo de sistemas lineares de grande porte
Gradiente Conjugado Linear (GCL)
A verso linear pode ser adaptada para resolver problemas de
otimizao no lineares Gradiente Conjugado No Linear (GCNL)
GCL uma alternativa para Eliminao
Gaussiana para problemas com matrizes
definidas positiva
Performance depende da distribuio dos autovalores da matriz de

coeficientes e/ou tcnicas de pr-condicionamento


GCNL
Uma das tcnicas mais antigas para resolver problemas no-
lineares de grande porte
Existem muitas variantes e algumas tm sido amplamente utilizadas
No requer armazenamento matricial e, ainda, possui desempenho
superior ao mtodo do Gradiente
EEL6000 Mtodos Numricos de Otimizao 8
Tcnicas para a Operao de SEE 8
Gradiente Conjugado
Linear
Processo iterativo para resolver o sistema
linear
Ax = b , (4) onde A uma matriz nxn simtrica e definida positiva
Esse problema pode ser resolvido pelo modelo
de otimizao
1 T
min f (x) = x Ax- bT x (5)
2
A equivalncia acima permite interpretar o GCL
como uma tcnica para resolver sistemas de
equaes lineares ou para minimizar funes
quadrticas convexas
Uma importante constatao inicial que o vetor
gradiente de (x) igual aos resduos do sistema
linear def
f (x) = Ax- b= r(x) (6)
EEL6000 Mtodos Numricos de Otimizao 9
Tcnicas para a Operao de SEE 9
Mtodo das Direes
UmConjugadas
conjunto de vetores no-nulos {p ,p ,,p } 0 1 l
dito conjugado em relao a uma matriz
simtrica definida positiva A se piTApj=0,
para todo ij
Algoritmo
Dado um ponto inicial, x0 n, e um conjunto de direes
conjugadas {p0,p1,,pl}, ento possvel gerar a seqncia {xk}
(7)
definida por
T
xk+1=xk+ kpk, onde
k rk pk
a =- T
rk Apk
Teorema 1
Para qualquer x0 n a seqncia gerada pelo algoritmo acima
converge para a soluo x* do sistema linear (4) em no mximo n
passos
EEL6000 Mtodos Numricos de Otimizao 10
Tcnicas para a Operao de SEE 10
Propriedade das Direes
Conjugadas (1)

Sucessivas minimizaes na necessrio transformar o problema


direo dos eixos encontram o em diagonal para recuperar a boa
minimizador da quadrtica com propriedade perdida (figura ao lado):
hessiana diagonal em n
iteraes x=S-1x, S= p0,p1,,pn-1
EEL6000 Mtodos Numricos de Otimizao 11
Tcnicas para a Operao de SEE 11
Propriedade das Direes
Conjugadas (2)
As propriedades discutidas at aqui so
genricas para o mtodo das direes
conjugadas e podem ser verificadas para
qualquer conjunto de direes conjugadas
{p0,p1,,pn}
Existe diversas maneiras de escolher o
conjunto de direes conjugadas
Autovetores da matriz A so conjugados em relao a essa
matriz para aplicaes em grande escala so muito caros
computacionalmente
Modificar o processo da Ortogonalizao de Gram-Schmidt para
produzir um conjunto de direes conjugadas tambm cara
computacionalmente pois requer o armazenamento de todo o
conjunto
EEL6000 Mtodos Numricos de Otimizao 12
Tcnicas para a Operao de SEE 12
GCL Propriedades
Bsicas
Mtodo de direes conjugadas com uma
propriedade especial
Na gerao dos vetores conjugados, possvel calcular um novo
vetor pk apenas utilizando pk-1
Em conseqncia, o mtodo do GCL requer pouco armazenamento
e baixo nmero de operaes aritmticas
Cada direo pk escolhida como uma
combinao linear do vetor (x) (igual a rk)
com pk-1 pk rk kpk1 (8)
k um escalar que garante que pk e pk-1 so
conjugados em relao matriz A (multiplicando
(8) por pk-1TA, e garantido que pk-1TA pk= 0),
tem-se rkT Apk1 (9)
k T
pk1 Apk1
EEL6000 Mtodos Numricos de Otimizao 13
Tcnicas para a Operao de SEE 13
GCL Algoritmo Bsico
Direo inicial p0
Fornecido um ponto inicial x0
o negativo do
Faa r0=Ax0-b, p0=-r0 e k=0 vetor gradiente
while rk > T (e.g.,10-5) em x0
r p Realizam-se
k Tk k
pk Apk sucessivas buscas
xk1 xk kpk unidimensionais
nas direes de
rk1 Axk1 b
busca
rkT1 Apk
k1 T Armazenam-se
pk Apk apenas os vetores
pk1 rk1 k1 pk x, r e p das duas
k k1 ultimas iteraes
Maior esforo
end(while) computacional
EEL6000 Mtodos Numricos de Otimizao
composto por 14
Tcnicas para a Operao de SEE 14
Gradiente Conjugado No-
Linear
Adaptao da verso linear para minimizar
quaisquer funes convexas ou mesmo
problemas no lineares genricos
Uma verso do algoritmo no-linear
possvel de ser obtida com base em duas
simples mudanas do algoritmo linear
necessrio realizar uma busca linear que identifica um
ponto que aproxima o mnimo da funo objetivo ao longo
da direo pk
O resduo, rk deve ser substitudo pelo gradiente da funo
objetivo

EEL6000 Mtodos Numricos de Otimizao 15


Tcnicas para a Operao de SEE 15
GCNL (Fletcher-
Reeves)
Fornecido um ponto inicial x
Segundo termo de (*) pode fazer
com que a direo de busca no
0
seja de descida, a no ser que k
Avalie f0=f(x0), f0=f(x0) atenda certas condies.
Faa p0= f0 e k=0 Multiplicando (*) por fk e
trocando k+1 por k:
while fk > (e.g.,10-5) fkT pk fk 2 FR kT pk1 (10)
k
Calcule k e faa xk+1=xk+ Busca linear exata: fkTpk-1=0 e
kpk pk uma direo de descida
fk1 k1
T
Avalie
FR
fk+1T Busca inexata: segundo termo do
k1
fk k lado direito de (10) pode dominar o
pk1 fk1 FR p (*) primeiro. Para evitar isso, encontrar
k1 k k que satisfaa as condies de
k k1 Wolfe (Strong), com 0<c1<c2<0,5!
Restart ( k+1FR=0) a cada n
iteraes pode melhorar a
end(while)
EEL6000 Mtodos Numricos de Otimizao
performance do mtodo 16
Tcnicas para a Operao de SEE 16
Mtodo de Newton...(1)
Deriva da expanso de segunda ordem em
f(x +p) 1 T 2
f ( xk p) fk p fk p fkp mk ( p)
k T
(11)
2
Considerando 2f(x) Definida Positiva, a direo
de Newton pode ser obtida pelo vetor p que
minimiza
mk ( p) fk(11)
2 k p 0 pkN 2 fk1 k (12)
Passo confivel quando a diferena entre
f(xk+p) e mk(p) no muito grande
Passo pode ser utilizado em uma busca linear
quando 2f(x) Definida Positiva
1
f p f k
N
k k k
T 2
fk 0 se 2 k DP e fk 0 (13)

EEL6000 Mtodos Numricos de Otimizao 17


Tcnicas para a Operao de SEE 17
Mtodo de Newton...(2)
Se estiver prximo de uma soluo o algoritmo
converge rapidamente (Q-quadrtico), com
passos unitrios, para o mnimo x*
Entretanto, em sua forma bsica inadequado
para uso em problemas reais
Pode no convergir de pontos distantes
Mesmo que exista a convergncia, pode apresentar comportamento
errtico em regies onde f(x) no convexa
Passo obtido pela soluo do sistema linear
simtrico (nxn)
2 f ( xk ) pkN f ( xk ) (14)

Quando a hessiana no definida positiva, ou


quase singular, a direo pode ser de subida ou
muito grande
EEL6000 Mtodos Numricos de Otimizao 18
Tcnicas para a Operao de SEE 18
Duas Estratgias
Mtodo de Newton Inexato (GC-Newton)
Resolve o sistema linear (14) usando o mtodo do Gradiente
Conjugado Linear, terminando se um condio de curvatura negativa
encontrada
Mtodo de Newton Modificado
Modificar a matriz hessiana antes ou durante o processo de soluo
de (14) forando que a mesma seja suficientemente definida positiva
Importante manter um baixo custo
computacional
GC-Newton Termina a iterao do GC antes de encontrar a soluo

exata de (14)
Quando um mtodo direto utilizado para resolver (14), tcnicas de

eliminao Gaussiana podem explorar a esparsidade e simetria da


hessiana para
O clculo deobter uma soluo
2f(x) pode exatarepresentar a maior
tarefa na implementao do Mtodo de Newton
EEL6000 Mtodos Numricos de Otimizao 19
Tcnicas para a Operao de SEE 19
GC-Newton (Busca
NoLinear)
resolve de maneira exata (14) pois o
modelo quadrtico pode no ser uma boa
rk 2 f ( xk ) pk
aproximao def ( xf(x)
k) (15)
Como rk sensvel ao escalonamento de f(x),
termina-se o processo iterativo quando
rk k f ( xk ) ,(0 k 1) 'forcing sequence' (16)
Iterao do algoritmo do GC Linear {x(i), p(i)}
A = 2fk e b = fk
So impostos trs condies no GCL
x(0)=0 ou soluo tima do ltimo sistema linear resolvido
Teste da curvatura negativa: se p(i) atende p(i)TA p(i)0, ento
verificado se i=0. Se sim, ento deve-se calcular x(1) e parar. Se
i>0 e p(i)TA p(i)0 o algoritmo pra e retorna-se ao ltimo x(i)
O passo de Newton pk definido pela ltima iterao do GCL x(f)
EEL6000 Mtodos Numricos de Otimizao 20
Tcnicas para a Operao de SEE 20
Algoritmo GCNewton
Dado um ponto inicial x0
for k=0,1,2,...
Calcule uma direo de busca pk aplicando o mtodo do GCL
ao sistema 2fkpk=fk, iniciando de x(0)=0. Pare quando

rk min 0,5; f ( xk ) f ( x )
k

ou se a curvatura negativa encontrada


Faa xk+1 = xk+ kpk, onde k atende as condies de Armijo
ou Wolfe (Strong)
end(for)

EEL6000 Mtodos Numricos de Otimizao 21


Tcnicas para a Operao de SEE 21
Algoritmo Newton
Modificado
Dado um ponto inicial x 0

for k=0,1,2,...
Fatore Bk= 2fk+Ek, com Ek=0 se 2fk suficientemente
DP; caso contrrio, Ek deve ser escolhida para garantir que Bk
seja suficientemente PD
Resolva Bkpk=fk
Faa xk+1=xk+ kpk, onde k atende as condies de Armijo
ou Wolfe (Strong)
end(for)

Escolha de Ek crucial para a eficincia do


algoritmo
Modificaes dos autovalores ou da Fatorao de
Cholesky da Hessiana
EEL6000 Mtodos Numricos de Otimizao 22
Tcnicas para a Operao de SEE 22
Quase-Newton...(1)
No exige o uso da matriz hessiana e pode
alcanar uma taxa de convergncia
superlinear
Modelo quadrtico da funo objetivo na
iterao x 1 T
m ( p) f p p B p
k
k
T
k k k (17)
2
Bk uma matriz nxn simtrica e definida
positiva, que revisada e atualizada a cada
iterao
Note que, em p=0, mk(0)=fk e mk(0) = fk. O
minimizador de (17) dado por
pk Bk fk
1
(18)

Ao invs de calcular Bk em cada iterao


possvel atualiz-la para levar a informao de
curvatura medida durante o mais recente passo
EEL6000 Mtodos Numricos de Otimizao 23
Tcnicas para a Operao de SEE 23
Quase-Newton...(2)
Suponha a nova iterao xk+1 com um novo
modelo quadrtico1
mk1 ( p) fk1 kT1p pT Bk1p (19)
2
Exigncias impostas em Bk+1 baseados no
conhecimento obtido durante a ltima iterao
mk+1 nas duas ltimas iteraes deve ser igual a fk e fk+1. Dado
que em (19) mk+1(0) = fk+1, basta garantir a primeira condio
mk1 (k pk ) fk1 kBk1 pk fk (20)

Bk1k pk fk1 k a sk xk1 xk e yk fk1 (21)

Bk1sk yk (22)
(22) conhecido como equao secante
EEL6000 Mtodos Numricos de Otimizao 24
Tcnicas para a Operao de SEE 24
Quase-Newton...(3)
Bk+1 mapeia sk em yk se a condio de curvatura
atendida skT yk > 0
Se f(x) estritamente convexa, a condio skT yk >
0 satisfeita para quaisquer xk e xk+1. Entretanto,
para o caso no-convexo necessrio forar essa
condio impondo restries no clculo de k
De fato skT yk > 0 verificada se as condies de
Wolfe so utilizadas
T sk T sk
fk1 pk c2fk pk fk1 c2fk
T T
Condies (curvatura)

yk fk sk c2fkT sk ykT sk (c2 1)fkT sk ykT sk (c2 1)kfkT pk
T

(23)
Dado que c2 <1 e pk de descida, o termo a direita
da desigualdade acima ser sempre positivo
EEL6000 Mtodos Numricos de Otimizao 25
Tcnicas para a Operao de SEE 25
Quase-Newton...(4)
Quando a condio de curvatura atendida a
Equao Secante (22) tem sempre uma soluo
Bk+1 na verdade, existem infinitas solues
Para determinar uma nica Bk+1 so impostas
certas condies em (22)
Definida Positiva
Simtrica
Ser mais prxima possvel de uma matricial inicial Bk

A escolha da norma
min B Bk (24) a ser utiliza na
B
funo objetivo
s.a: B BT , Bsk yk determina a
EEL6000 Mtodos Numricos de Otimizao natureza do mtodo
Tcnicas para a Operao de SEE
26
26
Quase-Newton - DFP
Mtodo DFP Proposto por Davidon em 1959, e
estudado, implementado e divulgado por
Fletcher e Powell
1
Bk1 ( I y s )Bk ( I s y ) y y , k T
T
k k k
T
k k k
T
k k k (25)
yk sk
til ter a equao da inversa de Bk-1 = Hk pois
permite calcular a direo de busca por meio de
multiplicao matriz vetor
HkykykT Hk skskT
Hk1 Hk T T (26)
yk Hkyk yk sk

EEL6000 Mtodos Numricos de Otimizao 27


Tcnicas para a Operao de SEE 27
Quase-Newton - BFGS
Mtodo BFGS Broyden, Fletcher, Goldfarb e
Shanno considerado a variao mais
eficiente 1
Hk1 ( I kskyk ) Hk ( I kyksk ) ksksk , k
T T T
T (27)
ysk k

Um aspecto importante antes de definir o


algoritmo diz respeito aproximao inicial de
H0
Infelizmente no existe nenhuma frmula mgica que opere bem em
todos os casos
Pode-se usar alguma informao do problema
Fazer igual a matriz identidade ou um valor mltiplo dessa matriz

EEL6000 Mtodos Numricos de Otimizao 28


Tcnicas para a Operao de SEE 28
Algoritmo - BFGS
Dado um ponto inicial x0
Tolerncia de convergncia >0
Aproximao inicial para a inversa da Hessiana H0
while fk > (e.g.,10-5)
Calcule a direo de busca pk = Hkfk
Faa xk+1 = xk+ kpk, onde k atende as condies de Wolfe
(Strong)
Defina sk = xk+1 xk e yk = fk+1 fk
Calcule Hk+1 por meio de (27)
k=k+1
end(while)
EEL6000 Mtodos Numricos de Otimizao 29
Tcnicas para a Operao de SEE 29
Implementao
Busca linear deve sempre atender as condies
de Wolfe (ou Strong), com tentativa inicial passo
unitrio
Desempenho pode ser afetado se apenas implementado o algoritmo
de Backtracking (Armijo)
Nessa estratgia no existe garantia que a condio de curvatura seja
atendida
Algumas estratgias fazem Hk+1= Hk quando skT yk negativo ou
muito prximo de zero
Na busca linear os valores c1=10-4 e c2=0,9 so
comumente utilizados
Heurstica:
T
iniciar com H0=I e, antes de atualizar
H , yk sk
fazer
H10 I (28)
ykyk
EEL6000 Mtodos Numricos de Otimizao 30
Tcnicas para a Operao de SEE 30
OBRIGADO!

Prof. Erlon Cristian Finardi


erlon@labplan.ufsc.br

Slides Disponveis
http://www.labplan.ufsc.br/~erlon/EEL6000

S-ar putea să vă placă și