Skip to content

igclib/bfgs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Broyden-Fletcher-Goldfarb-Shanno

rosenbrock

This is an implementation of the BFGS algorithm for a very specific problem, with very specific requirements. You should not expect it to solve a general optimization problem.

Why ?

In Python, scipy has a nice function called minimize. It does exactly what I want, but most equivalents in C++ are bloated large-scale solvers such as Ceres or dlib. Furthermore, minimize uses a Fortran subroutine to perform line search. The goal of this solver is to reproduce the behaviour of minimize with Eigen as the only dependency, and maybe no dependency if I manage to make it faster for my use-case.

Testing

Ideally aiming for very fast results on low dimensional, non-convex, differentiable functions. Dimension of input vector should very rarely exceed ~15. Using test functions from BenchmarkFcns.

Sanity checks

To check function and solver appearance, make plot fun=FUNCTION_FILE path=PATH_FILE

Acknowledgements

  • fable for converting Fortran subroutines to C++ code
  • scipy for their BFGS implementation

About

Broyden-Fletcher-Goldfarb-Shanno algorithm

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published