0% acharam este documento útil (0 voto)
320 visualizações31 páginas

Direcoes para Metodos de Busca Linear

Fazer download em ppt, pdf ou txt
Fazer download em ppt, pdf ou txt
Fazer download em ppt, pdf ou txt
Você está na página 1/ 31

EEL 6000 - Métodos Numéricos de Otimização

Direções para Métodos


de Busca Linear
Prof.: Erlon Cristian Finardi, D. Eng.
[email protected]

Laboratório de Planejamento de Sistemas de Energia Elétrica


Centro Tecnológico – Departamento de Engenharia Elétrica
Tel. +55 (48) 331.9731/9933 – Fax +55 (48) 331.7538
Homepage: htto://www.labplan.ufsc.br
Taxas de Convergência
 Aspecto chave na medida de desempenho de um
algoritmo
 Seja { xk } uma seqüência no n que converge para x*
 Taxa é Quotient-Linear (Q-Linear) se existe um r(0,1) tal que
xk+ 1 - x *
£ r , k suficientemente grande (1) 1+ (0 , 5)k
xk - x *
xk + 1 - x *
 Q-superlinear se lim =0 (2) 1+ k- k
k® ¥ xk - x *

 Q-quadrática se existe um M > 0


xk + 1 - x *
£ M , k suficientemente grande (3) 1 + (0 , 5 ) 2k
* 2
xk - x
EEL6000 – Métodos Numéricos de Otimização 2
Técnicas para a Operação de SEE 2
Método do Gradiente…(1)
 pk = —[I]-1fk é a mais óbvia escolha de direção em
algoritmos de busca linear (direção de maior
decréscimo)
 Sempre é de descida, pois pkTfk= –fkTfk<0
Conjunto de Direções
de Descida

Método do Gradiente para uma


função de duas variáveis
EEL6000 – Métodos Numéricos de Otimização 3
Técnicas para a Operação de SEE 3
Método 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 difíceis – mau condicionados
 Possui taxa de convergência
linear, mas quando o problema
é mau condicionado a
constante de convergência em
(1) é muito próxima a 1

EEL6000 – Métodos Numéricos de Otimização 4


Técnicas para a Operação de SEE 4
Método 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 condições de Armijo ou de
Wolfe (preferencialmente)
end(if)
end(for)

EEL6000 – Métodos Numéricos de Otimização 5


Técnicas para a Operação de SEE 5
Método do Gradiente…(4)
f ( x ) = 5 x12 + x 22 + 4 x1x 2 - 14 x1 - 6 x 2 + 20 x * = (1, 1)T , f ( x * ) = 10

Direção
é10 x1k + 4 x 2k - 14 ù ép1k ù
pk = - ê k ú= ê ú
ê 4 x + 2 x - 6 ú êp k ú
k
ë 1 2 û ë 2û
Passo (busca linear exata  pequena aplicação prática!)
f (a ) = 5( x1k + a p1k )2 + ( x 2k + a p2k )2 + 4( x1k + a p1k )( x 2k + a p2k )
- 14( x1k + a p1k ) - 6( x2k + a p2k ) + 20

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

2 éë5( p1k )2 + ( p2k )2 + 4 p1k p2k ùû


EEL6000 – Métodos Numéricos de Otimização 6
Técnicas para a Operação de SEE 6
Método do Gradiente…(5)

EEL6000 – Métodos Numéricos de Otimização 7


Técnicas para a Operação de SEE 7
Gradiente Conjugado
 Motivações
 Eficiente na solução de sistemas lineares de grande porte – Gradiente
Conjugado Linear (GCL)
 A versão linear pode ser adaptada para resolver problemas de
otimização não lineares – Gradiente Conjugado Não Linear (GCNL)
 GCL é uma alternativa para Eliminação Gaussiana
para problemas com matrizes definidas positiva
 Performance depende da distribuição dos autovalores da matriz de
coeficientes e/ou técnicas de pré-condicionamento
 GCNL
 Uma das técnicas mais antigas para resolver problemas não-lineares de
grande porte
 Existem muitas variantes e algumas têm sido amplamente utilizadas
 Não requer armazenamento matricial e, ainda, possui desempenho
superior ao método do Gradiente
EEL6000 – Métodos Numéricos de Otimização 8
Técnicas para a Operação de SEE 8
Gradiente Conjugado Linear
 Processo iterativo para resolver o sistema linear
A x = b , (4) onde A é uma matriz nxn simétrica e definida positiva
 Esse problema pode ser resolvido pelo modelo de
otimização
1 T
min f ( x ) = x A x - b T x (5)
2
 A equivalência acima permite interpretar o GCL como
uma técnica para resolver sistemas de equações
lineares ou para minimizar funções quadráticas
convexas
 Uma importante constatação inicial é que o vetor
gradiente de (x) é igual aos resíduos do sistema linear
def
Ñ f (x) = Ax - b = r(x) (6)
EEL6000 – Métodos Numéricos de Otimização 9
Técnicas para a Operação de SEE 9
Método das Direções Conjugadas
 Um conjunto de vetores não-nulos {p0,p1,…,pl} é
dito conjugado em relação a uma matriz simétrica
definida positiva A se piTApj=0, para todo ij
 Algoritmo
 Dado um ponto inicial, x0n, e um conjunto de direções conjugadas
{p0,p1,…,pl}, então é possível gerar a seqüência {xk} definida por
(7)
xk+1=xk+T kpk, onde
k rk pk
a =- T
rk Apk
 Teorema 1
 Para qualquer x0n a seqüência gerada pelo algoritmo acima converge
para a solução x* do sistema linear (4) em no máximo n passos

EEL6000 – Métodos Numéricos de Otimização 10


Técnicas para a Operação de SEE 10
Propriedade das Direções
Conjugadas… (1)

Sucessivas minimizações na É necessário transformar o problema


direção dos eixos encontram o em diagonal para recuperar a boa
minimizador da quadrática com propriedade perdida (figura ao lado):
hessiana diagonal em n iterações
x=S-1x, S= p0,p1,…,pn-1
EEL6000 – Métodos Numéricos de Otimização 11
Técnicas para a Operação de SEE 11
Propriedade das Direções
Conjugadas… (2)
 As propriedades discutidas até aqui são genéricas
para o método das direções conjugadas e podem
ser verificadas para qualquer conjunto de direções
conjugadas {p0,p1,…,pn}
 Existe diversas maneiras de escolher o conjunto de
direções conjugadas
 Autovetores da matriz A são conjugados em relação a essa matriz –
para aplicações em grande escala são muito caros
computacionalmente
 Modificar o processo da Ortogonalização de Gram-Schmidt para
produzir um conjunto de direções conjugadas – também é cara
computacionalmente pois requer o armazenamento de todo o
conjunto
EEL6000 – Métodos Numéricos de Otimização 12
Técnicas para a Operação de SEE 12
GCL – Propriedades Básicas
 Método de direções conjugadas com uma
propriedade especial
 Na geração dos vetores conjugados, é possível calcular um novo vetor
pk apenas utilizando pk-1
 Em conseqüência, o método do GCL requer pouco armazenamento e
baixo número de operações aritméticas
 Cada direção pk é escolhida como uma combinação
linear do vetor (x) (igual a rk) com pk-1
pk  rk  k pk 1 (8)
 k é um escalar que garante que pk e pk-1 são
conjugados em relação à matriz A (multiplicando (8) por
pk-1TA, e garantido que pk-1TA pk= 0), tem-se
rkT Apk 1 (9)
k  T
pk 1 Apk 1
EEL6000 – Métodos Numéricos de Otimização 13
Técnicas para a Operação de SEE 13
GCL – Algoritmo Básico
 Direção inicial p0 é o
Fornecido um ponto inicial x0 negativo do vetor
Faça r0=Ax0-b, p0=-r0 e k=0 gradiente em x0
while rk>  (e.g.,10-5)  Realizam-se
rkT pk sucessivas buscas
k   T unidimensionais nas
pk Apk
xk 1  xk  k pk direções de busca
 Armazenam-se
rk 1  Axk 1  b
apenas os vetores x,
rkT1 Apk r e p das duas
k 1  T
pk Apk ultimas iterações
pk 1   rk 1  k 1 pk  Maior esforço
k  k 1 computacional é
composto por
end(while) produtos matriz-
vetor e vetor-vetor
EEL6000 – Métodos Numéricos de Otimização 14
Técnicas para a Operação de SEE 14
Gradiente Conjugado Não-Linear
 Adaptação da versão linear para minimizar
quaisquer funções convexas ou mesmo
problemas não lineares genéricos
 Uma versão do algoritmo não-linear é possível
de ser obtida com base em duas simples
mudanças do algoritmo linear
 É necessário realizar uma busca linear que identifica um ponto
que aproxima o mínimo da função objetivo ao longo da direção
pk
 O resíduo, rk deve ser substituído pelo gradiente da função
objetivo

EEL6000 – Métodos Numéricos de Otimização 15


Técnicas para a Operação de SEE 15
GCNL → (Fletcher-Reeves)
Segundo termo de (*) pode fazer
Fornecido um ponto inicial x0 com que a direção de busca não seja
de descida, a não ser que k atenda
Avalie f0=f(x0), f0=f(x0) certas condições. Multiplicando (*)
Faça p0= f0 e k=0 por fk e trocando k+1 por k:
while fk>  (e.g.,10-5) (10)
fkT pk   fk 2 FR
k
 f T
k pk 1
Calcule k e faça xk+1=xk+ kpk Busca linear exata: fkTpk-1=0 e pk é
Avalie f uma direção de descida
 fk 1 fk 1
T
k+1
Busca inexata: segundo termo do lado
 k1 
FR

fkT fk direito de (10) pode dominar o


primeiro. Para evitar isso, encontrar k
pk 1  fk 1  FR p (*)
k 1 k que satisfaça as condições de Wolfe
k  k 1 (Strong), com 0<c1<c2<0,5!
 “Restart” (k+1FR=0) a cada n
end(while) iterações pode melhorar a
performance do método
EEL6000 – Métodos Numéricos de Otimização 16
Técnicas para a Operação de SEE 16
Método de Newton...(1)
 Deriva da expansão de segunda ordem em f(xk+p)
1 T 2
f ( xk  p)  fk  p fk  p  fk p  mk ( p)
T
(11)
2
 Considerando 2f(x) Definida Positiva, a direção de
Newton pode ser obtida pelo vetor p que minimiza (11)
mk ( p)  fk   2 fk p  0  pkN   2 fk1fk (12)
 Passo confiável quando a diferença entre f(xk+p) e
mk(p) não é muito grande
 Passo pode ser utilizado em uma busca linear
quando 2f(x) é Definida Positiva
1
f p  fk  fk  fk  0  se  2 fk DP e fk  0
N
k k
T 2
(13)

EEL6000 – Métodos Numéricos de Otimização 17


Técnicas para a Operação de SEE 17
Método de Newton...(2)
 Se estiver próximo de uma solução o algoritmo
converge rapidamente (Q-quadrático), com passos
unitários, para o mínimo x*
 Entretanto, em sua forma básica é inadequado para
uso em problemas reais
 Pode não convergir de pontos distantes
 Mesmo que exista a convergência, pode apresentar comportamento
errático em regiões onde f(x) não é convexa
 Passo é obtido pela solução do sistema linear simétrico
(nxn)
 2 f ( xk ) pkN  f ( xk ) (14)

 Quando a hessiana não é definida positiva, ou quase


singular, a direção pode ser de subida ou muito grande
EEL6000 – Métodos Numéricos de Otimização 18
Técnicas para a Operação de SEE 18
Duas Estratégias
 Método de Newton Inexato (GC-Newton)
 Resolve o sistema linear (14) usando o método do Gradiente Conjugado
Linear, terminando se um condição de curvatura negativa é encontrada

 Método de Newton Modificado


 Modificar a matriz hessiana antes ou durante o processo de solução de
(14) forçando que a mesma seja ‘suficientemente’ definida positiva
 Importante manter um baixo custo computacional
 GC-Newton Termina a iteração do GC antes de encontrar a solução
exata de (14)
 Quando um método direto é utilizado para resolver (14), técnicas de
eliminação Gaussiana podem explorar a esparsidade e simetria da
hessiana para obter uma solução exata
 O cálculo de 2f(x) pode representar a maior tarefa na
implementação do Método de Newton
EEL6000 – Métodos Numéricos de Otimização 19
Técnicas para a Operação de SEE 19
GC-Newton (Busca Linear)
 Não resolve de maneira exata (14) pois o modelo
quadrático pode não ser uma boa aproximação de f(x)
rk   2 f ( xk ) pk  f ( xk ) (15)
 Como rk é sensível ao escalonamento de f(x), termina-
se o processo iterativo quando
rk  k f ( xk ) ,(0  k  1)  'forcing sequence' (16)
 Iteração do algoritmo do GC Linear {x(i), p(i)} → A = 2fk
e b = fk
 São impostos três condições no GCL
 x(0)=0 ou solução ótima do último sistema linear resolvido
 Teste da curvatura negativa: se p(i) atende p(i)TA p(i)0, então é
verificado se i=0. Se sim, então deve-se calcular x(1) e parar. Se i>0 e
p(i)TA p(i)0 o algoritmo pára e retorna-se ao último x(i)
 O passo de Newton pk é definido pela última iteração do GCL x(f)
EEL6000 – Métodos Numéricos de Otimização 20
Técnicas para a Operação de SEE 20
Algoritmo GC–Newton
Dado um ponto inicial x0
for k=0,1,2,...
Calcule uma direção de busca pk aplicando o método 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


Faça xk+1 = xk+ kpk, onde k atende as condições de Armijo ou
Wolfe (Strong)
end(for)

EEL6000 – Métodos Numéricos de Otimização 21


Técnicas para a Operação de SEE 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 contrário, Ek deve ser escolhida para garantir que Bk seja
suficientemente PD
Resolva Bkpk=fk
Faça xk+1=xk+ kpk, onde k atende as condições de Armijo ou
Wolfe (Strong)
end(for)
 Escolha de Ek é crucial para a eficiência do algoritmo
 Modificações dos autovalores ou da Fatoração de
Cholesky da Hessiana
EEL6000 – Métodos Numéricos de Otimização 22
Técnicas para a Operação de SEE 22
Quase-Newton...(1)
 Não exige o uso da matriz hessiana e pode alcançar
uma taxa de convergência superlinear
 Modelo quadrático da função objetivo na iteração xk
1 T
mk ( p)  fk  fk p  p Bk p
T
(17)
2
 Bk é uma matriz nxn simétrica e definida positiva, que
é revisada e atualizada a cada iteração
 Note que, em p=0, mk(0)=fk e mk(0) = fk. O
minimizador de (17) é dado por
pk    Bk  fk
1
(18)

 Ao invés de calcular Bk em cada iteração é possível


atualizá-la para levar a informação de curvatura medida
durante o mais recente passo
EEL6000 – Métodos Numéricos de Otimização 23
Técnicas para a Operação de SEE 23
Quase-Newton...(2)
 Suponha a nova iteração xk+1 com um novo modelo
quadrático
1 T
mk 1 ( p)  fk 1  fk 1p  p Bk 1p
T
(19)
2
 Exigências impostas em Bk+1 baseados no conhecimento
obtido durante a última iteração
 mk+1 nas duas últimas iterações deve ser igual a fk e fk+1. Dado que em
(19) mk+1(0) = fk+1, basta garantir a primeira condição
mk 1 (k pk )  fk 1  k Bk 1pk  fk (20)

Bk 1k pk  fk 1  fk  sk  xk 1  xk e yk  fk 1  f (21)

Bk 1sk  yk (22)
 (22) é conhecido como equação secante
EEL6000 – Métodos Numéricos de Otimização 24
Técnicas para a Operação de SEE 24
Quase-Newton...(3)
 Bk+1 ‘mapeia’ sk em yk se a condição de curvatura é atendida
 skT yk > 0
 Se f(x) é estritamente convexa, a condição skT yk > 0 é
satisfeita para quaisquer xk e xk+1. Entretanto, para o caso
não-convexo é necessário forçar essa condição impondo
restrições no cálculo de k
 De fato skT yk > 0 é verificada se as condições de Wolfe
são utilizadas
T sk T sk
fk 1 pk  c 2fk pk  fk 1  c 2fk
T T
 Condições (curvatura)
 
 yk  fk  sk  c2fkT sk  ykT sk  (c2  1)fkT sk  ykT sk  (c2  1)kfkT pk
T

(23)
 Dado que c2 <1 e pk é de descida, o termo a direita da
desigualdade acima será sempre positivo
EEL6000 – Métodos Numéricos de Otimização 25
Técnicas para a Operação de SEE 25
Quase-Newton...(4)
 Quando a condição de curvatura é atendida a Equação
Secante (22) tem sempre uma solução Bk+1 – na
verdade, existem infinitas soluções
 Para determinar uma única Bk+1 são impostas certas
condições em (22)
 Definida Positiva
 Simétrica
 Ser mais ‘próxima’ possível de uma matricial inicial Bk

A escolha da norma a ser


min B  Bk (24) utiliza na função objetivo
B
determina a natureza do
s.a: B  BT , Bsk  yk método
EEL6000 – Métodos Numéricos de Otimização 26
Técnicas para a Operação de SEE 26
Quase-Newton - DFP
 Método DFP – Proposto por Davidon em 1959, e
estudado, implementado e divulgado por Fletcher e
Powell
1
Bk 1  ( 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 equação da inversa de Bk-1 = Hk pois
permite calcular a direção de busca por meio de
multiplicação matriz vetor
H k yk ykT H k sk skT
H k 1  H k  T  T (26)
yk H k y k yk sk

EEL6000 – Métodos Numéricos de Otimização 27


Técnicas para a Operação de SEE 27
Quase-Newton - BFGS
 Método BFGS – Broyden, Fletcher, Goldfarb e Shanno –
é considerado a variação mais eficiente
1
H k 1  ( I   s y ) H k ( I   y s )   s s , k  T
T
k k k
T
k k k
T
k k k (27)
yk sk
 Um aspecto importante antes de definir o algoritmo diz
respeito à aproximação inicial de H0
 Infelizmente não existe nenhuma fórmula mágica que opere bem em todos
os casos
 Pode-se usar alguma informação do problema
 Fazer igual a matriz identidade ou um valor múltiplo dessa matriz

EEL6000 – Métodos Numéricos de Otimização 28


Técnicas para a Operação de SEE 28
Algoritmo - BFGS
Dado um ponto inicial x0
Tolerância de convergência  >0
Aproximação inicial para a inversa da Hessiana H0
while fk>  (e.g.,10-5)
Calcule a direção de busca pk = Hkfk
Faça xk+1 = xk+ kpk, onde k atende as condições 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 – Métodos Numéricos de Otimização 29
Técnicas para a Operação de SEE 29
Implementação
 Busca linear deve sempre atender as condições de
Wolfe (ou Strong), com tentativa inicial passo unitário
 Desempenho pode ser afetado se é apenas implementado o algoritmo de
Backtracking (Armijo)
 Nessa estratégia não existe garantia que a condição de curvatura seja
atendida
 Algumas estratégias fazem Hk+1= Hk quando skT yk é negativo ou muito
próximo de zero
 Na busca linear os valores c1=10-4 e c2=0,9 são
comumente utilizados
 Heurística: iniciar com H0=I e, antes de atualizar H1,
fazer T
yk sk
H0  I (28)
yk yk
EEL6000 – Métodos Numéricos de Otimização 30
Técnicas para a Operação de SEE 30
OBRIGADO!

Prof. Erlon Cristian Finardi


[email protected]

Slides Disponíveis
http://www.labplan.ufsc.br/~erlon/EEL6000

Você também pode gostar