object
lbfgs_b(Problem)
Problem- Problem object implementinglocal_optimization_problem_protocolwithgradient/2(andposition_bounds/1when box constraints are present).
L-BFGS-B bound-constrained limited-memory quasi-Newton optimizer with a level-B approximate generalized Cauchy point (first-segment quadratic min along the projected gradient path), free-set identification at the Cauchy point, feasible-step limiting, and L-BFGS two-loop recursion. Requires gradient/2.
logtalk_load(local_optimization(loader))static, context_switching_calls
Algorithm: Each iteration (1) builds an approximate generalized Cauchy point by minimizing a quadratic model of the limited-memory BFGS Hessian along the first segment of the projected steepest-descent path, (2) identifies the free set at that point, (3) computes an L-BFGS direction via the two-loop recursion and zeroes components outside the free set or that would leave the box, (4) uses the largest feasible step as the Armijo upper bound, and (5) updates the pair history only when the curvature condition holds.
Approximate GCP: Level-B approximation: breakpoints along
x(t) = P(x - t g), univariate quadratic minimization on[0, t1](first breakpoint), with curvatured'Bdestimated from the most recent L-BFGS pair (gamma). Full multi-segment BLNZ Cauchy search is not implemented.Versus
lbfgs(_): Plainlbfgs(_)only clamps trial points after an unconstrained step. This solver never proposes an infeasible step, stops on the projected gradient norm, and chooses the free set from an approximate Cauchy point.Internal minimization form: Maximization is handled by minimizing the negated objective and gradient (phi-space), as in
bfgs(_)andlbfgs(_).Unbounded problems: When the problem does not define
position_bounds/1, the solver behaves like unconstrainedlbfgs(_)(no GCP / free-set masking). Preferlbfgs(_)for purely unconstrained work; prefer this solver when box constraints are present.
Public predicates
(no local declarations; see entity ancestors if any)
Protected predicates
(no local declarations; see entity ancestors if any)
Private predicates
(no local declarations; see entity ancestors if any)
Operators
(none)