I am solving a feasibility (No objective) problem in IPOPT. I got the following output:

enter image description here

I see that the violation of the constraints are of order 1e-15. What is the meaning of dual infeasibility 1e-07 and the overall NLP error 2e-09? I mean what do they represent if I only have constraints?


2 Answers 2


It took some digging but I found the answers in an old email thread. The paper linked there is archived here.

$$E_{\mu}(x,\lambda,z) = \max \Big\{ \frac{\| \nabla f(x) + \nabla c(x)\lambda + z \|_\infty}{s_d}, \|c(x)\|_\infty,\frac{\| \text{Diag}(x)\text{Diag(z)}e-\mu e\|_\infty}{s_c} \Big\}$$ Is the the overall NLP error. Dual infeasibility is calculated by $$\| \nabla f(x) + \nabla c(x)\lambda + z \|_\infty$$

The scalings $s_d$, $s_c$ are explained in the paper on page four. A $s_d$ value of around $50$ would explain your observation, such a value is allowed to occur. For the meaning of these in the constraint satisfaction case just think $\nabla f(x) = 0$.

I haven't confirmed numerically if this always holds, so let me know if you have issues. Then someone would have to dive into the code of IpOpt to find the true answer.


For a feasibility problem, you can think of the primal objective function as $f(x) =0$. These results indicate that your problem was solved—that is, IPOPT found a feasible point.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.