Você está na página 1de 31

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

Direções para Métodos


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

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


 erlon@labplan.ufsc.br

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

Você também pode gostar