[Ipopt] Constraints Violation

Andreas Waechter awaechter.iems at gmail.com
Mon Feb 20 10:57:15 EST 2012

Hi Sylvain,

This might be an effect of Ipopt's bound_relax_factor option.  It 
relaxes the bounds a little bit, in your case probably by 1e-8, which 
means that the 1e-9 values you see are within those relaxed bounds.  The 
reason for this option is that this makes problems that are degenerate 
(or do not satisfy a constraint qualification) a little less ill-posed, 
and usually the effect of this perturbation is deemed insignificant 
since it is on the order of the termination tolerances anyway.

However, you can switch this off by setting bound_relax_factor to 0.

Hope this helps,


Andreas Waechter

Associate Professor
Department of Industrial Engineering and Management Sciences
McCormick School of Engineering
Northwestern University
Evanston, IL 60208

On 02/17/2012 06:54 AM, Sylvain Auliac wrote:
> Hello,
> how exactly is calculated the constraints violation ? I wanted some precision, because in the problem I am trying to solve, I print the result of eval_g and got this the last time IPOPT calls it :
> eval_g:9	
> 	3.970839213e-09	3.971279972e-09	3.971830198e-09	3.971546314e-09	3.981007857e-09
> 	3.975493268e-09	3.967533191e-09	3.963262163e-09	3.855251007e-09	
> My constraints lower and upper bounds are respectively -infinity and 0., so the constraints are supposed to be negative when we are in feasible region. Somehow, I have this result at the end of the algorithm :
> Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
> Which is strange, since constraints are violated. Also, the algorithm says he  has converged to optimal solution , but the result I get is not the real solution of the problem (which I get with the same objective function, jacobian constraints and all using some other optimizers). My problem is such that the minimizer of the unconstrained objective function  is the same as the constrained one (the minimizer is just on the boundary), if I completely remove the constraints from ipopt, I get the good result. But as soon as I put it back in, I get back the bad one, even if I put the lower and higher bounds respectively to -infinity and +infinity (should not that be equivalent to the unconstrained problem?).
> I have checked my constraints implementation several times, and it is working well with other optimization codes , I'm sure it is correct , as well as its jacobian. The derivative checker does not detect any derivative mistake... I've been able to solve some other (constrained) problems using ipopt with the same coding style, only this one comes with troubles but it should not : the objective function is quadratic, constrains are affine, so all is convex with a unique solution.
> So I don't understand what's going wrong... Someone with an idea would please me!
> Sylvain Auliac
> Laboratoire Jacques-Louis Lions
> Université Pierre et Marie Curie
> mail: auliac at ann.jussieu.fr
> tel : 01 44 27 71 70
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt

More information about the Ipopt mailing list