nuget server logo nuget api documents
↑

API Docs / Microsoft.VisualBasic.Math.Core / LBFGSB

LBFGSB

Full name Microsoft.VisualBasic.Math.Framework.Optimization.LBFGSB.LBFGSB Assembly Microsoft.VisualBasic.Math.Core Members 18

L-BFGS-B optimizer

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

LBFGSB 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

00 Remarks

https://github.com/genmeblog/LBFGSBJava

01 Syntax

Microsoft.VisualBasic.Math.Framework.Optimization.LBFGSB.LBFGSB

02 Methods

NameOverloadsSummary
minimize 1
reset 1
maxit 1
debug 1
force_bounds 1
proj_grad_norm 1
max_step_size 1

03 Fields

NameOverloadsSummary
m_param 1
m_bfgs 1
m_fx 1
m_xp 1
m_grad 1
m_gradp 1
m_drt 1
m_projgnorm 1
fx 1
k 1
eps 1

04 Members

method minimize #
minimize(IGradFunction, Double(), Double(), Double())
Parameters
NameTypeDescription
fIGradFunction

function

[in]Double()

initial and final value

lbDouble()

lower bounds

ubDouble()

upper bounds

field m_param #
m_param
field m_bfgs #
m_bfgs
field m_fx #
m_fx
field m_xp #
m_xp
field m_grad #
m_grad
field m_gradp #
m_gradp
field m_drt #
m_drt
field m_projgnorm #
m_projgnorm
field fx #
fx
field k #
k
field eps #
eps
method reset #
reset(Int32)
method maxit #
maxit(Int32)
method debug #
debug(Boolean)
method force_bounds #
force_bounds(Double(), Double(), Double())
method proj_grad_norm #
proj_grad_norm(Double(), Double(), Double(), Double())
method max_step_size #
max_step_size(Double(), Double(), Double(), Double())