Skip to main content

Module sqp

Module sqp 

Source
Expand description

Phase 5b — active-set SQP algorithm driver.

Sits parallel to crate::ipopt_alg::IpoptAlgorithm. Consumes the same crate::ipopt_nlp::IpoptNlp for function / derivative evaluations and reuses crate::line_search / crate::conv_check machinery where it makes sense; the QP subproblem solve is delegated to the pounce-qp crate (Phases 5a, 5a.1, 5a.2 of the design note).

Design reference: [docs/research/active-set-sqp-warm-start.md].

Selected via crate::alg_builder::AlgorithmChoice::ActiveSetSqp. The InteriorPoint choice (default) remains the IpoptAlgorithm path with no changes.

Re-exports§

pub use bfgs::DampedBfgs;
pub use filter::SqpFilter;
pub use ipopt_adapter::IpoptNlpAdapter;
pub use iterates::SqpIterates;
pub use lbfgs::LBfgs;
pub use options::SqpGlobalization;
pub use options::SqpHessianSource;
pub use options::SqpOptions;
pub use problem::SqpProblemSpec;
pub use qp_assembly::SqpQpData;
pub use qp_assembly::Triplet;
pub use result::SqpError;
pub use result::SqpResult;
pub use result::SqpStatus;
pub use sqp_alg::SqpAlgorithm;
pub use warm_start::classify_working_set;

Modules§

bfgs
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.
filter
Filter-based globalization for SQP (Fletcher-Leyffer 2002, Math. Prog. 91: “Nonlinear programming without a penalty function”). Sibling to crate::sqp::line_search; same backtracking shell, different acceptance criterion.
ipopt_adapter
Adapter from crate::ipopt_nlp::IpoptNlp (the rich IPM- shaped NLP trait pounce-algorithm shares with the IPOPT lineage) to crate::sqp::SqpProblemSpec (the minimal evaluation surface the SQP outer loop binds against).
iterates
SQP iterate state — (x, λ_g, λ_x) plus the working set carried across QP subproblem solves for warm-starting (the §5/§6 design-note contract).
lbfgs
Limited-memory Powell-damped BFGS Hessian approximation for SQP (Nocedal-Wright §7.2; Byrd-Nocedal-Schnabel 1994; Powell 1978). Used when SqpOptions::hessian = Lbfgs.
line_search
l1-merit backtracking line search for SQP. The classic Han-Powell scheme:
options
SQP outer-loop options. Mirrors the spirit of crate::alg_builder::ConvCheckOptions but only what the SQP driver itself needs; QP-subproblem-specific options pass through pounce_qp::QpOptions (which SqpAlgorithm owns).
problem
Minimal NLP-evaluation trait the SQP outer loop binds against.
qp_assembly
Build a pounce_qp::QpProblem from the NLP linearization at the current SQP iterate (x, λ_g).
result
SqpResult / SqpStatus / SqpError — return types for SqpAlgorithm::optimize.
sqp_alg
SqpAlgorithm — active-set SQP outer loop. Consumes an SqpProblemSpec for evaluation; delegates the QP subproblem solve to pounce_qp::ParametricActiveSetSolver.
warm_start
Warm-start helpers — building a pounce_qp::WorkingSet from a converged IPM (or any) iterate so the next SQP solve can pick up where the IPM left off (Phase 5c §7.5 + sensitivity corrector handoff).