/LBFGSBJava

L-BFGS-B optimizer in Java

Primary LanguageJavaMIT LicenseMIT

LBFGSBJava

L-BFGS-B box constrained optimizer

  • Most of the code ported from LBFGS++ code.
  • MoreThuente line search ported from R source and Julia LineSearches.jl
  • MoreThuente can be used with strong or weak (default) Wolfe condition
  • LewisOverton (experimental, don't use) line search ported from LBFGS-Lite

LBFGSBJava is implemented without any dependencies.

See org.generateme.lbfgsb.examples for usage cases.

Target function

Each target function should implement IGradFunction interface.

  • default implementation of gradient uses finite differences method
  • implementing only evaluate(x) will use finite differences
  • there is a possibility to calculate function value and gradient in one call, implement gradient(x,grad) and implement in_place_gradient to return true. See Rosenbrock in examples.

Licence

Copyright (c) 2023 GenerateMe

The MIT Licence