Restoration phase failed

Hi everyone!
I try to optimize a nonlinear problem with Ipopt (v0.6.1) using JuMP (v0.20.1).
When the algorithm terminates, the output message is:

“EXIT: Restoration Failed!
Restoration phase converged to a feasible point that is
unacceptable to the filter for the original problem.
Restoration phase in the restoration phase failed.”

I read in Ipopt documentation that it could happen if the problem is highly degenerate, does not satisfy the constraint qualification or if NLP code provides incorrect derivative information.

I use the following Ipopt Options:

  • derivative_test=“first-order” and no errors are detected by derivative checker
  • print_info_string=“yes” and before entering in the restoration phase, letter “L” appears at the end of an iteration line with the diagnostic meaning: “Degenerate Jacobian, δc already perturbed”

What should I do?
Are there other tests can I implement to find out where the problem is?

I’m new in optimization problems so I apologize in advance for errors and oversights.

Please read the first post of PSA: make it easier to help you.

If you can provide a simple example that reproduces the issue, it’ll be a lot easier to provide advice.

Try computing a feasible point via a different method (e.g., by hand), and then using the start keyword in @variable:

model = Model(with_optimizer(Ipopt.Optimizer))
@variable(model, x, start = 1.23

or set_start_value:

model = Model(with_optimizer(Ipopt.Optimizer))
@variable(model, x)
set_start_value(x, 1.23)
2 Likes