4 ALGORITMOS DE OTIMIZAÇÃO NÃO-LINEAR BASEADOS NO GRADIENTE
Algoritmo 4.7.1: Estrutura geral de um algoritmo Quasi-Newton Dado um ponto inicial x 0 e uma estimativa inicial da matriz Hessiana B 0 ;
4.7.1.1
k← 0;
4.7.1.2
enquanto Critério de tolerância da convergência do algoritmo for satisfeito faça
4.7.1.3
Calcule a nova direção de busca pk← −B−1k ∇fk;
4.7.1.4
Atribua xk+1 ← xk+ αkpk, onde αké obtido por um método de busca em linha;
4.7.1.5
Atualize a nova estimativa da matriz Hessiana Bk+1;
4.7.1.6
k← k + 1;
4.7.1.7
Duas importantes observações, em nível de implementação computacional, devem ser feitas com relação à forma geral de um algoritmo Quasi-Newton em 4.7.1. A primeira delas refere-se a qual deve ser a escolha da aproximação inicial da matriz Hessiana B0. Uma metodologia comum
consiste em inicializar a estimativa com a matriz identidade, B0 = I. Dessa forma, certamente
B0 é positiva-definida e essa inicialização resulta no primeiro passo dirigindo-se à direção do
gradiente máximo [31]. Entretanto, essa metodologia possui a problemática de não considerar a escala da função objetivof (x). Por essa razão, 'B0' pode ser diferente de '∇2f (x0) ' por
muitas ordens de magnitude [31]. Entre as várias estratégias propostas na literatura para supe- rar esse problema, pode-se citar a estratégia que utiliza um caso especial da idéia mais geral de pré-multiplicar B0por γ0 = y
T 0s0
sT0B0s0 imediatamente antes da primeira atualização. Ainda que essa
metodologia apresente bons resultados, devido a alguns pequenos problemas adicionais [31], a implementação detalhada do algoritmo Quasi-Newton desenvolvida no algoritmo I.1.1 do apên- dice I utiliza a metodologia desenvolvida em [31], a qual foi reportada com base em resultado numéricos experimentais, como a melhor abordagem de inicialização da estimativa da matriz Hessiana B0. A seção I.1.1 no apêndice I apresenta de forma detalhada essa abordagem de inici-
alização.
A segunda observação contempla a questão de como melhor representar a aproximação da matriz Hessiana. Uma metodologia utilizada logo no surgimento dos métodos Quasi-Newton consiste em vez de se armazenar a forma direta da aproximação de∇2f
k, guardar a aproximação
da matriz inversa da Hessiana∇2f−1
k , já que essa forma de representação evita a resolução do
sistema de equações [10]:
Bkpk= −∇fk (4.41)
Outra abordagem consiste em armazenar a forma direta da aproximação da Hessiana Hk.
Com essa abordagem, duas formas de implementação surgem, a forma não-fatorada e a forma fatorada. Na primeira forma, simplesmente implementa-se alguma das fórmulas de atualização da aproximação da matriz Hessiana, conforme serão definidas a seguir. Já na segunda forma, particiona-se a estimativa da Hessiana em duas matrizes triangulares através da operação de fa- torização Cholesky e da atualização das matrizes fatoradas [10]. Em termos de complexidade computacional, a forma fatorada realiza O(n2) operações, enquanto que a forma não-fatorada
O(n3) operações. Assim, embora a forma não-fatorada possua maior custo computacional, ela
é especialmente mais fácil de ser programada. Devido a esse fator, optou-se nesse trabalho pelo uso da forma não-fatorada, já que a medida comparativa de performance entre os vários algorit- mos de otimização realizadas no Capítulo 7 não será a complexidade computacional, mas sim, o número de avaliações da função objetivo f . Isso se deve ao fato da dificuldade de geração de mo- delos matemáticos e de ferramentas que possibilitem analisar detalhadamente o comportamento dos algoritmos do Capítulo 5. Embora algumas técnicas tenham sido desenvolvidas na literatura, como por exemplo em [32], estudos mais aprofundados necessitam ser conduzidos para anali- sar os algoritmos baseados em soft-computing e generalizar seus comportamentos em problemas práticos de maior complexidade [32]. Dessa forma, nenhum ganho de performance é obtido no comparativo pelo uso da representação fatorada nessa situação em particular.
Tendo sido feito o comparativo entre o método Quasi-Newton e o método de Newton, deri- vado a teoria da equação da secante com o modelo quadrático modificado e apresentado a forma genérica da família de algoritmos Quasi-Newton, além de abordar algumas questões de imple- mentação, se faz necessário agora apresentar as diferentes fórmulas de atualização da estimativa da matriz Hessiana Bk. Conforme visto a partir do problema de minimização da distância de
aproximação da matriz Hessiana na fórmula da secante em (4.40), diferentes funções de aproxi- mação correspondem a diferentes métodos Quasi-Newton. Nesse trabalho, não será apresentada a derivação das diferentes fórmulas de atualização da estimativa da matriz Hessiana Bk, já que
as derivações são relativamente extensas e fogem do escopo do presente trabalho. A derivação completa das fórmulas encontram-se nas referências [14], [10], [31] ou [17].
Cronologicamente, o primeiro método de atualização da estimativa da matriz Hessiana foi cre- ditado aos seus respectivos criadores, Davidon-Fletcher-Powell (DFP). Sua forma de atualização é dada pela seguinte relação [31]:
Bk+1 = Bk+ (yk− Bksk) ykT + yk(yk− Hksk)T yT ksk − 2yk− Bksk, sk3 yky T k (yT ksk) 2 , (4.42)
onde o operador2a, b3 denota o produto interno entre os vetores a e b. Em [31], mostra-se que se a condição de curvatura yTksk > 0 é mantida e a matriz Bk é positiva-definida, então a
atualização DFP em (4.42) também gera uma atualização Bk+1positiva-definida.
O outro método de atualização que será apresentado, e talvez o mais utilizado da família de métodos Quasi-Newton consiste no método BFGS, nome dado aos seus respectivos criadores Broyden-Fletcher-Goldfarb-Shanno. Sua forma de atualização da estimativa da matriz Hessiana Bk+1é dada pela seguinte relação [31]:
Bk+1 = Bk+ ykyTk yTksk − Bksks T kBk sTkBksk (4.43) A fórmula DFP em (4.42) é bastante efetiva, mas ela foi rapidamente substituída pelo método BFGS em (4.43), o qual é atualmente considerado o método mais efetivo de todos os métodos existentes da família de algoritmos Quasi-Newton [14]. Devido à essa observação, no presente trabalho usa-se exclusivamente o método BFGS na implementação do algoritmo de otimização Quasi-Newton.
Por fim, faz-se lembrar que alguns detalhes de implementação não citados nesse capítulo, assim como a definição formal dos passos do algoritmo Quasi-Newton em conjunto com o método de busca em linha que obedece as condições de Wolfe se encontra na seção I.1 do apêndice I.