LBFGS_B

scalation.optimization.quasi_newton.LBFGS_B
See theLBFGS_B companion object
class LBFGS_B(f: FunctionV2S, g: FunctionV2S = ..., ineq: Boolean = ..., exactLS: Boolean = ..., var l_u: Bounds = ...) extends Minimizer

The LBFGS_B the class implements the Limited memory Broyden–Fletcher– Goldfarb–Shanno for Bounds constrained optimization (L-BFGS-B) Quasi-Newton Algorithm for solving Non-Linear Programming (NLP) problems. L-BFGS-B determines a search direction by deflecting the steepest descent direction vector (opposite the gradient) by * multiplying it by a matrix that approximates the inverse Hessian. Furthermore, only a few vectors represent the approximation of the Hessian Matrix (limited memory). The parameters estimated are also bounded within user specified lower and upper bounds.

minimize f(x) subject to g(x) <= 0 [ optionally g(x) == 0 ]

Value parameters

exactLS

whether to use exact (e.g., GoldenLS) or inexact (e.g., WolfeLS) Line Search

f

the objective function to be minimized

g

the constraint function to be satisfied, if any

ineq

whether the constraint is treated as inequality (default) or equality

l_u

(vector, vector) of lower and upper bounds for all input parameters

Attributes

Companion
object
Graph
Supertypes
trait Minimizer
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

override def fg(x: VectorD): Double

The objective function f plus a weighted penalty based on the constraint function g.

The objective function f plus a weighted penalty based on the constraint function g.

Value parameters

x

the coordinate values of the current point

Attributes

Definition Classes
override def lineSearch(x: VectorD, dir: VectorD, step: Double): Double

Perform a line search from point x along direction dir, returning the accepted step length. This method satisfies the Minimizer trait contract. For exact scalar search requests it delegates to lineSearch1D; otherwise it delegates to the native More-Thuente bounded line search and returns only the accepted step length.

Perform a line search from point x along direction dir, returning the accepted step length. This method satisfies the Minimizer trait contract. For exact scalar search requests it delegates to lineSearch1D; otherwise it delegates to the native More-Thuente bounded line search and returns only the accepted step length.

Value parameters

dir

the search direction

step

the initial step size

x

the current point

Attributes

Definition Classes
def setHistorySize(hs_: Int): Unit

Modify the number of historical vectors to store.

Modify the number of historical vectors to store.

Value parameters

hs_

the new history size

Attributes

def solve(x0: VectorD, alphaInit: Double = ..., toler: Double = ...): FuncVec

Solve the bound-constrained nonlinear optimization problem min { f(x) | g(x) <= 0 } using the L-BFGS-B algorithm. Notes:

Solve the bound-constrained nonlinear optimization problem min { f(x) | g(x) <= 0 } using the L-BFGS-B algorithm. Notes:

  • If no bounds are provided, this method installs default unbounded box constraints (-∞, +∞) in every dimension.
  • The internal search step is computed along the feasible segment from the current point x to the subspace minimizer.

Value parameters

alphaInit

the initial line-search step size

toler

the convergence tolerance

x0

the starting point

Attributes

Inherited methods

def resolve(n: Int, step_: Double = ..., toler: Double = ...): FuncVec

Solve the following Non-Linear Programming (NLP) problem: min { f(x) | g(x) <= 0 }. To use explicit functions for gradient, replace gradient (fg, x._1 + s) with gradientD (df, x._1 + s). This method uses multiple random restarts.

Solve the following Non-Linear Programming (NLP) problem: min { f(x) | g(x) <= 0 }. To use explicit functions for gradient, replace gradient (fg, x._1 + s) with gradientD (df, x._1 + s). This method uses multiple random restarts.

Value parameters

n

the dimensionality of the search space

step_

the initial step size

toler

the tolerance

Attributes

Inherited from:
Minimizer