Skip to content

Strategy #4: composite-step (Byrd–Omojokun) globalization #40

@jkitchin

Description

@jkitchin

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/.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions