Warm Starting (setStartingPoint)

Other Algorithms 1 implementation

Initialize from previous NLP solution or MIP point:

  • Improves convergence for similar subproblems
  • Critical for efficiency in repeated NLP solves

Mathematical Formulation

l_i = u_i = x̄_i for integer variables i ∈ I Ipopt solves reduced-space problem over continuous variables. Original bounds restored by unfixVariables().

Complexity

O(nnz) vs O(n²) for dense evaluation

Implementations

SHOT

Provides NLP solving for SHOT's primal problem using Ipopt interior point.

IpoptProblem Class (Ipopt::TNLP):

  • Implements Ipopt's TNLP interface
  • Provides callbacks for function/gradient/Hessian evaluation
  • Sparse Jacobian/Hessian via index placement maps

TNLP Callbacks:

  • get_nlp_info(): Problem dimensions and sparsity
  • get_bounds_info(): Variable and constraint bounds
  • eval_f(): Objective function value
  • eval_grad_f(): Objective gradient
  • eval_g(): Constraint function values
  • eval_jac_g(): Constraint Jacobian (sparse)
  • eval_h(): Lagrangian Hessian (sparse)
  • finalize_solution(): Store optimal point

NLPSolverIpoptBase Class:

  • Wraps IpoptApplication for solve control
  • Variable fixing for integer-fixed NLP subproblems
  • Starting point management

IpoptJournal:

  • Routes Ipopt output through SHOT logging system

@note Used for fixed-integer NLP subproblems in primal bound computation

References

  • Bonami et al. (2008) - BONMIN algorithm description
  • Wächter & Biegler (2006) - Ipopt implementation
  • Nocedal & Wright (2006) - Warm starting in IPM