[R] optim function : "BFGS" vs "L-BFGS-B"

Thomas Lumley tlumley at u.washington.edu
Mon Jan 5 23:20:43 CET 2004

On Mon, 5 Jan 2004 Kang.Changku at epamail.epa.gov wrote:

> Dear kind R-experts.
> Does anybody have an experience to use optim function?
> If yes, what is the main difference between two method "BFGS" vs
> "L-BFGS-B"?
> I used "BFGS" method and got what I wanted. But when I used "L-BFGS-B"
> the error message said that "L-BFGS-B needs finite values of fn". So
> that means
> "BFGS" method can handle even if fn function is infinite value?

Yes. BFGS can handle a function that gives NA or infinite values at some
points (though it requires a finite starting value).  L-BFGS-B cannot.

> What I really want to know is that can I get the same result by using
> L-BFGS-B method?

It will depend on your starting values.  If your starting values are good
enough then L-BFGS-B may not encounter any infinite or undefined points
before reaching the optimum.  You may also be able to use the box
constraints in L-BFGS-B to restrict the algorithm to a portion of the
parameter space where there aren't any infinite or undefined values.

If you don't start close enough to the optimum or if the problem is badly
conditioned enough, then neither algorithm might converge, or they might
converge to different local optima, or one might converge and the other
might not.   There aren't a lot of guarantees in numerical optimisation.


Thomas Lumley			Assoc. Professor, Biostatistics
tlumley at u.washington.edu	University of Washington, Seattle

More information about the R-help mailing list