Você está na página 1de 31

EEL 6000 - Mtodos Numricos de Otimizao

Direes para 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 Quotient-Linear (Q-Linear) se existe um r(0,1) tal que
xk + 1 - x * xk - x * r , k suficientemente grande xk + 1 - x * xk - x
*

(1) (2)

1+ (0 , 5)k 1 + k- k

Q-superlinear se klim

=0

Q-quadrtica se existe um M > 0


xk + 1 - x * xk - x
* 2

M , k suficientemente grande

(3)

1 + (0 , 5 )

2k

EEL6000 Mtodos Numricos de Otimizao

Tcnicas para a Operao de SEE

2 2

Mtodo do Gradiente (1)




pk = [I]-1fk a mais bvia escolha de 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 Tcnicas para a Operao de SEE 3 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

Tcnicas para a Operao de SEE

4 4

Mtodo do Gradiente (3)


Fornecido um ponto inicial x0 for k = 0,1,2, Avalie pk= f(xk) if f(xk)e I (e.g.,10-5) PARE else xk+1=xk+Ekpk, onde Ek satisfaz as condies de Armijo ou de Wolfe (preferencialmente) end(if) end(for)

EEL6000 Mtodos Numricos de Otimizao

Tcnicas para a Operao de SEE

5 5

Mtodo do Gradiente (4)


f ( x) = 5 x12 + x22 + 4 x1 x 2 - 14 x1 - 6 x2 + 20 x * = (1, 1)T , f ( x * ) = 10

Direo
k k x1 + 4 x 2 - 14 p1 10 k = pk = - k k 4 x + 2 x - 6 pk 2 1 2

Passo (busca linear exata

pequena aplicao prtica!)

k k k f (a ) = 5( x1k + a p1k )2 + ( x k + a p2 )2 + 4( x1k + a p1k )( x 2 + a p2 ) 2 k - 14( x1k + a p1k ) - 6( x k + a p2 ) + 20 2

k ( p1k )2 + ( p2 )2 ak = k 2 5( p1k )2 + ( p2 )2 + 4 p1k pk 2


EEL6000 Mtodos Numricos de Otimizao Tcnicas para a Operao de SEE 6 6

Mtodo do Gradiente (5)

EEL6000 Mtodos Numricos de Otimizao

Tcnicas para a Operao de SEE

7 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 nolineares 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

Tcnicas para a Operao de SEE

8 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 2

(5)

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 J(x) igual aos resduos do sistema linear
f ( x ) = Ax - b = r ( x )
def

(6)
Tcnicas para a Operao de SEE 9 9

EEL6000 Mtodos Numricos de Otimizao

Mtodo das Direes Conjugadas




Um conjunto de vetores no-nulos {p0,p1,,pl} dito conjugado em relao a uma matriz simtrica definida positiva A se piTApj=0, para todo i{j Algoritmo
Dado um ponto inicial, x0n, e um conjunto de direes conjugadas {p0,p1,,pl}, ento possvel gerar a seqncia {xk} (7) definida por xk+1=xk+Ekpk, onde

rkT pk ak= - T rk Apk




Teorema 1
Para qualquer x0n 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

Tcnicas para a Operao de SEE

10 10

Propriedade das Direes Conjugadas (1)

Sucessivas minimizaes na direo dos eixos encontram o minimizador da quadrtica com hessiana diagonal em n iteraes
EEL6000 Mtodos Numricos de Otimizao

necessrio transformar o problema em diagonal para recuperar a boa propriedade perdida (figura ao lado): x=S-1x, S= p0,p1,,pn-1
Tcnicas para a Operao de SEE 11 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

Tcnicas para a Operao de SEE

12 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 J(x) (igual a rk) com pk-1 (8) pk ! rk  Fk pk 1 Fk 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 Apk 1 (9) Fk ! T pk 1 Apk 1
Tcnicas para a Operao de SEE

EEL6000 Mtodos Numricos de Otimizao

13 13

GCL

Algoritmo Bsico
 

Fornecido um ponto inicial x0 Faa r0=Ax0-b, p0=-r0 e k=0 while rk> I (e.g.,10-5)
rkT pk Ek !  T pk Apk xk 1 ! xk  Ek pk rk 1 ! Axk 1  b rkT1 Apk Fk 1 ! T pk Apk

pk 1 ! rk 1  Fk 1 pk

k ! k 1 end(while)
EEL6000 Mtodos Numricos de Otimizao

Direo inicial p0 o negativo do vetor gradiente em x0 Realizam-se sucessivas buscas unidimensionais nas direes de busca Armazenam-se apenas os vetores x, r e p das duas ultimas iteraes Maior esforo computacional composto por produtos matrizvetor e vetor-vetor
Tcnicas para a Operao de SEE 14 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

Tcnicas para a Operao de SEE

15 15

GCNL

(Fletcher-Reeves)
Segundo termo de (*) pode fazer com que a direo de busca no seja de descida, a no ser que Ek atenda certas condies. Multiplicando (*) por fk e trocando k+1 por k: fkT pk !  fk 2 FFR fkT pk 1 (10) k Busca linear exata: fkTpk-1=0 e pk uma direo de descida Busca inexata: segundo termo do lado direito de (10) pode dominar o primeiro. Para evitar isso, encontrar Ek que satisfaa as condies de Wolfe (Strong), com 0<c1<c2<0,5! Restart (Fk+1FR=0) a cada n iteraes pode melhorar a performance do mtodo
Tcnicas para a Operao de SEE 16 16

Fornecido um ponto inicial x0 Avalie f0=f(x0), f0=f(x0) Faa p0= f0 e k=0 while fk> I (e.g.,10-5) Calcule Ek e faa xk+1=xk+ Ekpk Avalie fk+1

FFR k 1

fkT1fk 1 ! fkT fk

pk 1 ! fk 1  F k1 pk (*)


k ! k 1
end(while)
EEL6000 Mtodos Numricos de Otimizao

FR

Mtodo de Newton...(1)
 

Deriva da expanso de segunda ordem em f(xk+p) 1 T 2 T f ( xk  p) } fk  p fk  p fk p ! mk ( p) (11) 2 Considerando 2f(x) Definida Positiva, a direo de Newton pode ser obtida pelo vetor p que minimiza (11)
N mk ( p) ! fk  2 fk p ! 0 p pk !  2 fk1fk (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

f p ! fk fk fk 0 p se 2 fk DP e fk { 0
N k k T 2
EEL6000 Mtodos Numricos de Otimizao

1

(13)
17 17

Tcnicas para a Operao de SEE

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 N (14) f ( xk ) pk ! f ( xk ) Quando a hessiana no definida positiva, ou quase singular, a direo pode ser de subida ou muito grande
Tcnicas para a Operao de SEE 18 18

EEL6000 Mtodos Numricos de Otimizao

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-Newtonp 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 obter uma soluo exata

O clculo de 2f(x) pode representar a maior tarefa na implementao do Mtodo de Newton


Tcnicas para a Operao de SEE 19 19

EEL6000 Mtodos Numricos de Otimizao

GC-Newton (Busca Linear)




No resolve de maneira exata (14) pois o modelo quadrtico pode no ser uma boa aproximao de f(x)

rk ! 2 f ( xk ) pk  f ( xk )

(15)

Como rk sensvel ao escalonamento de f(x), terminase o processo iterativo quando

rk e Lk f ( xk ) ,(0 Lk 1) p 'forcing sequence'

(16)

Iterao do algoritmo do GC Linear {x(i), p(i)} e b = fk So impostos trs condies no GCL

A = 2fk

x(0)=0 ou soluo tima do ltimo sistema linear resolvido Teste da curvatura negativa: se p(i) atende p(i)TA p(i)e0, ento verificado se i=0. Se sim, ento deve-se calcular x(1) e parar. Se i>0 e p(i)TA p(i)e0 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 Tcnicas para a Operao de SEE 20 20

Algoritmo GC Newton
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 e min 0,5; f ( xk )

f (x )
k

ou se a curvatura negativa encontrada Faa xk+1 = xk+ Ekpk, onde Ek atende as condies de Armijo ou Wolfe (Strong) end(for)

EEL6000 Mtodos Numricos de Otimizao

Tcnicas para a Operao de SEE

21 21

Algoritmo Newton Modificado


Dado um ponto inicial x0 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+ Ekpk, onde Ek 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
Tcnicas para a Operao de SEE 22 22

EEL6000 Mtodos Numricos de Otimizao

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 xk 1 T T mk ( p) ! fk  fk p  p Bk p (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 1 pk !  ?Bk A fk

(18)

Ao invs de calcular Bk em cada iterao possvel atualiz-la para levar a informao de curvatura medida durante o mais recente passo
Tcnicas para a Operao de SEE 23 23

EEL6000 Mtodos Numricos de Otimizao

Quase-Newton...(2)


Suponha a nova iterao xk+1 com um novo modelo quadrtico 1 T T (19) mk 1 ( p) ! fk 1  fk 1p  p Bk 1p 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

mk 1 (Ek pk ) ! fk 1  Ek Bk 1pk ! fk Bk 1Ek pk ! fk 1  fk  sk ! xk 1  xk e yk ! fk 1  f




(20) (21) (22)

Bk 1sk ! yk (22) conhecido como equao secante

EEL6000 Mtodos Numricos de Otimizao

Tcnicas para a Operao de SEE

24 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 Ek De fato skT yk > 0 verificada se as condies de Wolfe so utilizadas T T T sk T sk fk 1 pk u c 2fk pk p fk 1 u c 2fk p Condies (curvatura) E E T yk  fk sk u c2fkT sk p ykT sk u (c2  1)fkT sk p ykT sk u (c2  1)EkfkT pk Dado que c2 <1 e pk de descida, o termo a direita da desigualdade acima ser sempre positivo
Tcnicas para a Operao de SEE

(23)

EEL6000 Mtodos Numricos de Otimizao

25 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

min B  Bk
B

(24)

s.a: B ! BT , Bsk ! yk
EEL6000 Mtodos Numricos de Otimizao

A escolha da norma a ser utiliza na funo objetivo determina a 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 Bk 1 ! ( I  K y s )Bk ( I  K s y )  K y y , K k ! T yk sk
T k k k T k k k T k k k


(25)

til ter a equao da inversa de Bk-1 = Hk pois permite calcular a direo de busca por meio de multiplicao matriz vetor
T T Hk yk yk Hk sk sk  T H k 1 ! H k  T yk H k yk yk sk

(26)

EEL6000 Mtodos Numricos de Otimizao

Tcnicas para a Operao de SEE

27 27

Quase-Newton - BFGS


Mtodo BFGS Broyden, Fletcher, Goldfarb e Shanno considerado a variao mais eficiente

1 H k 1 ! ( I  V s y ) H k ( I  V y s )  V s s , Vk ! T yk sk
T k k k T k k k T k k k


(27)

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

Tcnicas para a Operao de SEE

28 28

Algoritmo - BFGS
Dado um ponto inicial x0 Tolerncia de convergncia I >0 Aproximao inicial para a inversa da Hessiana H0 while fk> I (e.g.,10-5) Calcule a direo de busca pk = Hkfk Faa xk+1 = xk+ Ekpk, onde Ek 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 Tcnicas para a Operao de SEE 29 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: iniciar com H0=I e, antes de atualizar H1, fazer

y s H0 ! I yk yk
EEL6000 Mtodos Numricos de Otimizao

T k k

(28)
Tcnicas para a Operao de SEE 30 30

OBRIGADO! Prof. Erlon Cristian Finardi


erlon@labplan.ufsc.br

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

Você também pode gostar