Restarting NLP solve from previous infeasible solution



I am solving a nasty, non-convex NLP. In some instances, Ipopt converges to a point of local infeasibility. For other problems, I observed that restarting Ipopt from such an infeasible solution can sometimes lead to an optimal solution.

The default behavior in GAMS is for the initial point to be the solution of the previous model solve, even if it is infeasible. When I try resolving with JuMP, I notice that the initial point is NOT updated if the previous model solve is infeasible. Is there an easy way to revert to the default GAMS behavior when using JuMP?



JuMP/MathProgBase (v0.18) will not ask the solver for a solution back if it reports infeasibility (code), so it doesn’t have a new starting point to pass to the solver for the next solve. We designed MathOptInterface with a much more rich status reporting mechanism, e.g., a solution can be returned if one is available, regardless of infeasibility. So JuMP 0.19 will have a cleaner way to handle this.