Bill Baxter wrote:
On 6/16/07, Dominique Orban <dominique.orban@gmail.com> wrote:
Bill Baxter wrote:
On 6/16/07, Dominique Orban <dominique.orban@gmail.com> wrote:
scipy.optimize also has an L-BFGS implementation -- in pure C I believe. Is there something yours offers that scipy's doesn't? (like constraints?)
L-BFGS has been generalized to bound constraints only (resulting in the code L-BFGS-B), but the implementation is very different from that of L-BFGS. NLPy only contains L-BFGS for now and the implementation is standard. Since it is all in Python it is easy to read and modify (e.g, implement different iteration-dependent scalings.) I am not sure which one is interfaced in SciPy.
Yes, it's L-BFGS-B in Scipy, actually. I was referring to constraints other than simple bounds.
Thanks, I will look into Scipy's interface. One of the ideas behind NLPy is that only fundamental building blocks for optimization are interfaces to state-of-the-art code in C or Fortran (e.g., some factorization routines, complex linesearches, ...) while I try to keep the algorithms themselves in Python. I haven't gotten around to implementing L-BFGS-B yet. There are also other ways to solve bound-constrained problems and still use an L-BFGS approx to the second derivatives. Dominique