Addons/math/lbfgs

From J Wiki
Jump to navigation Jump to search
User Guide | Installation | Development | Categories | Git | Build Log

math/lbfgs

LBFGS is the Limited Memory Broyden-Fletcher-Goldfarb-Shanno (BFGS) method to solve an unconstrained nonlinear optimization problem. Also includes L-BFGS-B for solving large nonlinear optimization problems with simple bounds on the variables.

This script calls LBFGS Subroutine converted from Fortran to C. You can test the subroutine by running:

   ,.lbfgs_test ''

Notes from the Fortran Subroutine:

    LIMITED MEMORY BFGS METHOD FOR LARGE SCALE OPTIMIZATION
                      JORGE NOCEDAL
                    *** July 1990 ***

 This subroutine solves the unconstrained minimization problem

                 min F(x),    x= (x1,x2,...,xN),

 using the limited memory BFGS method. The routine is especially
 effective on problems involving a large number of variables. In
 a typical iteration of this method an approximation Hk to the
 inverse of the Hessian is obtained by applying M BFGS updates to
 a diagonal matrix Hk0, using information from the previous M steps.
 The user specifies the number M, which determines the amount of
 storage required by the routine. The user may also provide the
 diagonal matrices Hk0 if not satisfied with the default choice.
 The algorithm is described in "On the limited memory BFGS method
 for large scale optimization", by D. Liu and J. Nocedal,
 Mathematical Programming B 45 (1989) 503-528.

There is also the script lbfgsb.ijs. It can be tested by running:

   ,.lbfgsb_test ''


L-BFGS-B is a code for solving large nonlinear optimization
problems with simple bounds on the variables.

The code can also be used for unconstrained problems and is
as efficient for these problems as the earlier limited memory
code L-BFGS.

The addon was contributed by David Mitchell.