# High dual infeasibilities in IPOPT lead to convergence issues

**URL:** <https://discourse.julialang.org/t/high-dual-infeasibilities-in-ipopt-lead-to-convergence-issues/1687>\
**Category:** Optimization (Mathematical)\
**Created:** [January 25, 2017, 7:41pm UTC](https://discourse.julialang.org/t/high-dual-infeasibilities-in-ipopt-lead-to-convergence-issues/1687 "2017-01-25T19:41:17Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![huckl3b3rry87](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/huckl3b3rry87/32/3163_2.png) [@huckl3b3rry87](https://discourse.julialang.org/u/huckl3b3rry87)\
**Post date:** [January 25, 2017, 7:41pm UTC](https://discourse.julialang.org/t/high-dual-infeasibilities-in-ipopt-lead-to-convergence-issues/1687/1 "2017-01-25T19:41:17Z")

</div>

I am using JuMP.jl to develop NLOptControl.jl to solve optimal control problems and I have dealt with an IPOPT issue for some time now, where the dual infeasibility of my constraints are very high and eventually the problems converge to a local point of infeasibility. But, when I extract this “infeasible solution” it looks perfectly fine (it does not violate any of the constraints). A few months back, I would adjust the convergence criteria so that it works, but the values that I had previously found worked no longer work. And since I am developing this tool, I don’t want the user to have to worry too much about tuning these things. Any thoughts?

P.S.  
A similar question was raised some time ago about this issue here

[http://list.coin-or.org/pipermail/ipopt/2007-February/000700.html](http://list.coin-or.org/pipermail/ipopt/2007-February/000700.html)

but, the problem that they hypothesized it was would not be an issue for me because I am using the hessian and not the BFGS approximation of the hessian.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [January 26, 2017, 5:59am UTC](https://discourse.julialang.org/t/high-dual-infeasibilities-in-ipopt-lead-to-convergence-issues/1687/2 "2017-01-26T05:59:18Z")

</div>

> [@huckl3b3rry87](#):
>
> And since I am developing this tool, I don’t want the user to have to worry too much about tuning these things.

I think that’s a goal that you might want to drop: solving nonlinear optimization problems requires tuning parameters and playing around with the solution to make sure it’s correct.

---

<div class="post-metadata">

**Author:** ![huckl3b3rry87](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/huckl3b3rry87/32/3163_2.png) [@huckl3b3rry87](https://discourse.julialang.org/u/huckl3b3rry87)\
**Post date:** [January 26, 2017, 5:41pm UTC](https://discourse.julialang.org/t/high-dual-infeasibilities-in-ipopt-lead-to-convergence-issues/1687/3 "2017-01-26T17:41:10Z")

</div>

The issue is that even for the simplest control problems that I can find I have to tune the infeasibility tolerances quite a bite to get the solver to converge on a feasible point. So, I am also worried that there may be an issue with IPOPT or perhaps the way that I am setting up these problems.

---

<div class="post-metadata">

**Author:** ![tkelman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkelman/32/692_2.png) [@tkelman](https://discourse.julialang.org/u/tkelman)\
**Post date:** [January 27, 2017, 8:59pm UTC](https://discourse.julialang.org/t/high-dual-infeasibilities-in-ipopt-lead-to-convergence-issues/1687/4 "2017-01-27T20:59:07Z")

</div>

It’s more likely your problem formulation that is giving the solver issues. I’ve been using Ipopt for nonlinear model predictive control regularly for the last 6-7 years, and all cases of feasibility problems or convergence issues I ever encountered were due to issues in the problem formulation. Ipopt’s quite robust at solving well-posed problems.

---

<div class="post-metadata">

**Author:** ![huckl3b3rry87](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/huckl3b3rry87/32/3163_2.png) [@huckl3b3rry87](https://discourse.julialang.org/u/huckl3b3rry87)\
**Post date:** [January 31, 2017, 10:07pm UTC](https://discourse.julialang.org/t/high-dual-infeasibilities-in-ipopt-lead-to-convergence-issues/1687/5 "2017-01-31T22:07:28Z")

</div>

@tkelman you where absolutely correct! IPOPT was not at fault it was me.

---

<div class="post-metadata">

**Author:** ![adowling2](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adowling2/32/539_2.png) [@adowling2](https://discourse.julialang.org/u/adowling2)\
**Post date:** [February 1, 2017, 4:15pm UTC](https://discourse.julialang.org/t/high-dual-infeasibilities-in-ipopt-lead-to-convergence-issues/1687/6 "2017-02-01T16:15:02Z")

</div>

I have a Julia package (alpha stage - contribution and bugs are welcome) to explore to infeasible equations. As a modeler, I find this very helpful when debugging initialization procedures.

[https://github.com/adowling2/DegeneracyHunter.jl](https://github.com/adowling2/DegeneracyHunter.jl)

---

<div class="post-metadata">

**Author:** ![Nitin\_Arora](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nitin_arora/32/1174_2.png) [@Nitin\_Arora](https://discourse.julialang.org/u/Nitin_Arora)\
**Post date:** [July 3, 2017, 11:22pm UTC](https://discourse.julialang.org/t/high-dual-infeasibilities-in-ipopt-lead-to-convergence-issues/1687/7 "2017-07-03T23:22:08Z")

</div>

Can you please tell what you did for this fix ? I am running into similar issues.
