• Nenhum resultado encontrado

Estrutura geral de um algoritmo Quasi-Newton Dado um ponto inicial x 0 e uma estimativa inicial da matriz Hessiana B 0 ;

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.

5 ALGORITMOS DE OTIMIZAÇÃO