Summary
Follow-up to land SOTA feasibility-restoration strategy #4 — the Byrd–Omojokun composite step. Full design note: docs/research/composite-step-byrd-omojokun.md.
The composite step splits the step into a normal step v (reduces linearized infeasibility ‖cₖ + Jₖv‖ inside ζΔ) and a tangential step u (reduces the barrier-objective quadratic model in the null space of Jₖ, ‖v+u‖ ≤ Δ). It never needs a separate feasibility-restoration sub-NLP — the normal step is the feasibility move, taken every iteration.
Architectural mismatch (the hard part)
pounce is a line-search IPM; BO is natively a trust-region method. They differ in the globalization spine, not just a knob — there is no trust-region radius anywhere in pounce today. BO is therefore a new opt-in globalization path, selected by a new LineSearchChoice-style enum value, leaving the filter line search as the untouched default.
Reusable pieces
AugSystemSolver::multi_solve (normal + tangential share one KKT factor), PerturbationHandler, compute_soc_step's c-RHS assembly, the fraction-to-boundary truncation, FilterLsAcceptor's filter set.
Proposed phasing
- Phase 1 — normal step only (~1–2 weeks, low risk). Trust-region struct + dogleg normal-step solver; feed the normal step into the existing line search as an SOC-style feasibility correction when restoration would otherwise fire. Measurable on the restoration-heavy CUTEst subset (DECONVBNE, S365, HIMMELBJ, ACOPR14/30).
- Phase 2 — tangential step + Steihaug-CG (projected truncated-CG, still line-search-accepted).
- Phase 3 — full trust-region globalization (Δ-management + predicted/actual-reduction acceptance) behind
LineSearchChoice::CompositeStep. Default stays filter line search.
Open questions
- Commit only to Phase 1 now and re-evaluate? (Phases 2–3 are 4–8 weeks + a second globalization path to maintain.)
- Tangential solve: repeated
AugSystemSolver::solve as projection operator vs. normal-equations reduction.
- Does BO's Steihaug negative-curvature handling replace
PerturbForWrongInertia on the L-BFGS path, or coexist?
In-tree reference: ref/Ipopt/src/Algorithm/Inexact/.
Summary
Follow-up to land SOTA feasibility-restoration strategy #4 — the Byrd–Omojokun composite step. Full design note:
docs/research/composite-step-byrd-omojokun.md.The composite step splits the step into a normal step
v(reduces linearized infeasibility‖cₖ + Jₖv‖insideζΔ) and a tangential stepu(reduces the barrier-objective quadratic model in the null space ofJₖ,‖v+u‖ ≤ Δ). It never needs a separate feasibility-restoration sub-NLP — the normal step is the feasibility move, taken every iteration.Architectural mismatch (the hard part)
pounce is a line-search IPM; BO is natively a trust-region method. They differ in the globalization spine, not just a knob — there is no trust-region radius anywhere in pounce today. BO is therefore a new opt-in globalization path, selected by a new
LineSearchChoice-style enum value, leaving the filter line search as the untouched default.Reusable pieces
AugSystemSolver::multi_solve(normal + tangential share one KKT factor),PerturbationHandler,compute_soc_step's c-RHS assembly, the fraction-to-boundary truncation,FilterLsAcceptor's filter set.Proposed phasing
LineSearchChoice::CompositeStep. Default stays filter line search.Open questions
AugSystemSolver::solveas projection operator vs. normal-equations reduction.PerturbForWrongInertiaon the L-BFGS path, or coexist?In-tree reference:
ref/Ipopt/src/Algorithm/Inexact/.