L-BFGS

From Wikipedia, the free encyclopedia

L-BFGS and L-BFGS-B are a limited-memory quasi-Newton packages for large scale optimization. The codes have been developed at the Optimization Technology Center,Northwestern University. These programs are used to compute the minimum of a function of many variables; they require that the user provide the gradient (but not the Hessian) of the objective function. L-BFGS stands for "Limited memory BFGS method"; instead of storing a full approximation to the Hessian, a low rank approximation is updated.

L-BFGS is a code for solving unconstrained problems. Author: Jorge Nocedal
L-BFGS-B is capable of solving problems with simple bounds on the variables. The current release is version 2.1. The distribution file was last changed on 02/09/1997. Authors: Ciyou Zhu, Jorge Nocedal and Richard Byrd.

Both codes are freely available for educational or commercial purposes. The authors expect that all publications describing work using this software quote at least one of the references given below.
For solving optimization problems with general constraints, other software must be used. See for example KNITRO.

The L-BFGS routines are written in FORTRAN but have been translated to various languages:
C: http://www.dgp.toronto.edu/~hertzman/courses/csc2521/fall_2004/driver1.C
C++, Delphi, Visual Basic, C#: http://www.alglib.net/optimization/lbfgs.php
Java: http://riso.sourceforge.net/
MATLAB wrapper: http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=9307&objectType=file
C wrapper: http://homepages.inf.ed.ac.uk/s0450736/pmwiki/pmwiki.php/Main/Code

[edit] References

[edit] External links

  • Jorge Nocedal
  • Richard Byrd
  • [1]; The full L-BFGS Unix/Linux distribution (containing source code, makefile and user guide)
  • [2]; The full L-BFGS-B Unix/Linux distribution (containing source code, makefile and user guide)