Skip to main content

Module warm_start

Module warm_start 

Source
Expand description

Warm-start iterate initializer — port of IpWarmStartIterateInitializer.{hpp,cpp}. Used when a previous solve has left a trial point that should be reused.

There are two callers we serve:

  • A full primal-dual warm restart installed via Application::set_warm_start_iterate and consumed by the next optimize_tnlp (e.g. the debugger resolve re-solve): data.curr already carries the previous solve’s iterate, so we keep it, clamp multipliers, and optionally override mu.
  • First solves from OptimizeTNLP that opt into warm_start_init_point=yes to forward user-supplied primal/dual seeds via TNLP::get_starting_point. Here data.curr carries only dim metadata (uninitialized vectors); we pull seeds from the NLP, push primals/slacks into the bound interior with warm-start bound_push/bound_frac, and then apply the same multiplier clamps.

Wired options today: bound_push, bound_frac, slack_bound_push, slack_bound_frac, mult_init_max, target_mu. The remaining knobs (mult_bound_push, entire_iterate, same_structure) are stored but not yet consumed.

Structs§

WarmStartIterateInitializer