Skip to main content

Module bfgs

Module bfgs 

Source
Expand description

Powell-damped BFGS Hessian approximation for SQP (Powell 1978, Numerical Analysis Dundee 1977). Used when SqpOptions::hessian = DampedBfgs — the QP subproblem’s Hessian comes from this rank-2-updated matrix instead of nlp.eval_hess_lag.

Powell’s damping rule guarantees positive-definiteness of every iterate, so the QP solver doesn’t have to engage inertia control to keep ∇²L-quadratic models PD. The damping factor θ ∈ [0, 1] interpolates between the raw BFGS y = ∇L_new − ∇L_old and the conservative B·s:

    if sᵀy ≥ 0.2 · sᵀ B s :  θ = 1            (standard BFGS)
    else                  :  θ = 0.8 · sᵀ B s / (sᵀ B s − sᵀy)
    y_damp = θ y + (1 − θ) B s
    B_new = B − (Bs · sᵀB) / (sᵀ B s)
                 + (y_damp · y_dampᵀ) / (sᵀ y_damp)

Storage is dense n × n (lower-triangle row-major); exposed to pounce-qp as a fully-populated Triplet over the upper triangle (1-based row/col).

Structs§

DampedBfgs