Método BFGS

Um Estudo Comparativo entre as Buscas Armijo e Wolfe na Minimização da Função de Rosenbrock

Authors

  • João M. L. Luiz Universidade Estadual do Sudoeste da Bahia
  • Marcio A. de A. Bortoloti Universidade Estadual do Sudoeste da Bahia

Abstract

Os métodos quase-Newton buscam alcançar as boas taxas de convergência do método de Newton, mas sem a necessidade de fazer cálculos de segundas derivadas e inversões de matrizes. Essas operações demandam um alto custo computacional, o que pode diminuir o desempenho do método. Nesse contexto destacamos o método Broyden-Fletcher-Goldfarb-Shanno (BFGS) que caracteriza-se por construir aproximações para as inversas das matrizes hessianas. Formalmente, esse método pode ser organizado como o algoritmo a seguir. No passo 5 do algoritmo acima o comprimento de passo αk é determinado por uma busca linear. Neste trabalho analisaremos o método BFGS equipado com as buscas de Armijo e Wolfe. A busca de Armijo determina αk > 0 tal que f(xk + αkdk) ≤ f(xk) + σαk⟨f'(xk), dk⟩, onde σ ∈ (0, 1/2). Observamos que essa busca é bem definida, ou seja, dada uma direção de descida dk, sempre existe αk > 0 que satisfaz a desigualdade (1). Além disso ressaltamos que essa busca garante um decrescimento da sequência {f(xk)}. A busca de Wolfe é caracteriza pela introdução de um critério de curvatura na busca de Armijo, essa busca determina o maior real postivo αk > 0 que satisfaz f(xk + αkdk) ≤ f(xk) + σ1αk⟨f'(xk), dk⟩ e ⟨f'(xk + αkdk), dk⟩ ≥ σ2⟨f'(xk), dk⟩, onde 0 < σ1 < σ2 < 1/2. Para os testes numéricos, consideramos o problema de minimizar a função f: Rn → R conhecida como função de Rosenbrock. Para esse problema, utilizamos o método BFGS equipado com as regras de Armijo e Wolfe com o objetivo de estudar o desempenho de cada uma dessas buscas. Nossos testes consideraram o tempo de CPU e o número de iterações como fatores de comparação entre as buscas. O método foi implementado utilizando a linguagem de programação Julia. Os códigos estão disponíveis livremente no endereço https://github.com/petimatematica/bfgs. Nos testes do BFGS com Armijo, consideramos σ = 0,4 e para os testes com Wolfe consideramos σ1 = 0,3 e σ2 = 0,4. Para cada n ∈ {10, 20, ..., 90, 100} foram tomados 10 chutes iniciais aleatoriamente escolhidos. Os testes mostraram que o método BFGS, equipado com a busca de Wolfe, apresentou melhor desempenho em relação ao mesmo método com busca de Armijo no número de iterações. Por outro lado, no tempo de CPU, o método com busca de Wolfe teve resultados ligeiramente melhores. No entanto, essa diferença não foi significativa. [...]

Downloads

Download data is not yet available.

References

A. Izmailov e M. Solodov. Otimização, volume 2: métodos computacionais. IMPA, 2018.

B. Lauwens. Introdução à programação em Julia. https://juliaintro.github.io/. Acesso em: 15 mar. 2025. 2025.

Published

2026-02-13