Skip to main content

Module backtracking

Module backtracking 

Source
Expand description

Backtracking line-search driver — port of Algorithm/IpBacktrackingLineSearch.{hpp,cpp}.

Owns the alpha-reduction loop, max-soc / second-order-correction slot, watchdog mechanism, and the fallback to restoration. Phase 7 ships the alpha-loop for the filter line search; SOC and watchdog land alongside the restoration phase (Phase 9).

The contract with the acceptor is the trio (theta, phi, d_phi) at the current iterate plus the trial (theta_trial, phi_trial) per backtracking step. Trial-point construction is x_trial = x + α·dx, s_trial = s + α·ds; the dual step uses the same α for the filter acceptor (upstream IpBacktrackingLineSearch.cpp:702-728 — primal-dual share α when no fraction-to-the-boundary truncation differs).

find_acceptable_trial_point returns Outcome::Accepted on a successful trial, Outcome::TinyStep when α drops below alpha_min, and Outcome::Failed when the alpha loop exhausts without acceptance (which the main loop maps to a restoration attempt).

Structs§

BacktrackingLineSearch

Enums§

AlphaForY
Policy for the step length applied to the equality multipliers y_c, y_d. Mirrors upstream’s alpha_for_y option (subset of the upstream enum — pounce only ports the variants that the Mehrotra cascade and default code paths exercise).
Outcome
Outcome of the backtracking line search. Mirrors the booleans upstream returns through accept_ plus the tiny_step_flag on IpoptData.