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::filter_line_search;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 ofnlp.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) tocrate::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::ConvCheckOptionsbut only what the SQP driver itself needs; QP-subproblem-specific options pass throughpounce_qp::QpOptions(whichSqpAlgorithmowns). - problem
- Minimal NLP-evaluation trait the SQP outer loop binds against.
- qp_
assembly - Build a
pounce_qp::QpProblemfrom the NLP linearization at the current SQP iterate(x, λ_g). - result
SqpResult/SqpStatus/SqpError— return types forSqpAlgorithm::optimize.- sqp_alg
SqpAlgorithm— active-set SQP outer loop. Consumes anSqpProblemSpecfor evaluation; delegates the QP subproblem solve topounce_qp::ParametricActiveSetSolver.- warm_
start - Warm-start helpers — building a
pounce_qp::WorkingSetfrom 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).