L-BFGS-B algorithm for multivariate optimization
|
The L-BFGS-B algorithm is a version of L-BFGS algorithm. It solves problems with bound constraints (li ≤ xi ≤ ui ). In other respects, this algorithm is identical to the L-BFGS algorithm. Taking this into consideration, we will not describe this algorithm in detail. It is recommended to see the description of L-BFGS algorithm before using a program which you can download from this page.
Constraint accounting is performed by using a classical method of gradient projection to find a set of active constraints, which are then considered as equality constraints. It allows to proceed to a problem of minimization in linear decision subspace. All these things, of course, make the program slower and more complex, so if you need to solve a problem without restrictions, it is better to use faster L-BFGS algorithm. Although the L-BFGS-B algorithm can solve unconstrained problems, it will do it much slower (sometimes 5 times slower, but this figure is significantly dependent on a problem).
Description of the LBFGSBMinimize subroutine
This subroutine uses the FuncGrad subroutine which calculates the value of the function F and gradient G in point X. It should be noted that FuncGrad subroutine doesn't need to waste time for memory allocation of array G, because the memory is allocated in calling the subroutine before the first call of FuncGrad. Setting a dimension of array G each time when calling a subroutine will excessively slow down an algorithm.
The only difference between this subroutine and a similar subroutine which solves an unconstrained problem is arrays NBD, L and U, in which the constraint types and their values are stored (if they are given).
Report a bug
C#
C# 1.0 source.
lbfgsb.csharp.zip - L-BFGS-B algorithm for multivariate optimization
C++
C++ source.
lbfgsb.cpp.zip - L-BFGS-B algorithm for multivariate optimization
Delphi
Delphi source.
Can be compiled under FPC (in Delphi compatibility mode).
lbfgsb.delphi.zip - L-BFGS-B algorithm for multivariate optimization
Visual Basic 6
Visual Basic 6 source.
lbfgsb.vb6.zip - L-BFGS-B algorithm for multivariate optimization
Zonnon beta
Zonnon source.
Zonnon is an experimental language developed at ETH Zurich.
See www.zonnon.ethz.ch for more information.
lbfgsb.zonnon.zip - L-BFGS-B algorithm for multivariate optimization
|