Contents
ALGORITHMS
Site map
Links
Site and author
News
About the site
Contact
TERMS OF USE

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 (l ≤ x ≤ u). 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).

Source codes

ATTENTION!!!
This unit is obsolete and no longer supported.

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

ablas.zip - optimized basic linear algebra subroutines with SSE2 support (for C++ sources only)

 

C++, multiple precision arithmetic

C++ source. MPFR/GMP is used.

GMP source is available from gmplib.org. MPFR source is available from www.mpfr.org.

lbfgsb.mpfr.zip - L-BFGS-B algorithm for multivariate optimization

mpfr.zip - precompiled Win32 MPFR/GMP binaries

 


Delphi

Delphi source.
Can be compiled under FPC (in Delphi compatibility mode).
lbfgsb.delphi.zip - L-BFGS-B algorithm for multivariate optimization


Visual Basic

Visual Basic source.
lbfgsb.vb6.zip - L-BFGS-B algorithm for multivariate optimization



 
 
Sergey Bochkanov, Vladimir Bystritsky
Copyright © 1999-2009