[Ipopt-tickets] [Ipopt] #110: Scaling and convergence check

Ipopt coin-trac at coin-or.org
Thu Oct 29 09:29:48 EDT 2009


#110: Scaling and convergence check
------------------------------+---------------------------------------------
Reporter:  hmartin            |       Owner:  ipopt-team
    Type:  defect             |      Status:  new       
Priority:  normal             |   Component:  Ipopt     
 Version:  3.7 (C++ Version)  |    Severity:  normal    
Keywords:                     |  
------------------------------+---------------------------------------------
 I solve a problem in which an inequality constraint of the form
 -1e-3<=c(x)<=1e3 is very ill conditionned. The gradient_based scaling then
 scales it using a weight of 1e-14 (!). The NLP is "acceptably" solved
 after 7 iterations, but the constraint is then equal to 1.4e6, whereas
 Ipopt reports than the unscaled constraints are satisfied
 (acceptable_constr_viol_tol is 1). [[BR]]

 To try to understand better the problem, I putted a bound_relax_factor of
 0.0, thinking that maybe it was introducing some tolerance on the slacks,
 but the results did not change. I then introduced a minimum value of 1e-8
 on the scaling weights in IpGradientScaling.cpp, but I got the same
 problem (this time the final value of the constraint was 1.4e3)

 So I am wondering: is it a normal behavior, due to the extreme scaling (I
 imagine than the convergence check then compares things in the order of
 the machine accuracy...), or is there somehow a problem in the convergence
 check of inequality constraints[[BR]]

 I can somehow reproduce the problem by modifying the HS071 example (please
 find files attached). The 1st inequality constraint is then not satisfied
 at convergence. I also noticed in the output file than the printed
 ''scaled'' vectors d_L and d_U are false (they are equal to the unscaled
 ones). [[BR]]

 By the way, I think it would be good to introduce some minimum bounds on
 the scaling factors calculated in IpGradientScaling.cpp (maybe 1e-8?). The
 gradient based scaling is very useful, but some too small weights are
 likely to be dangerous.

-- 
Ticket URL: <https://projects.coin-or.org/Ipopt/ticket/110>
Ipopt <http://projects.coin-or.org/Ipopt>
Interior-point optimizer for nonlinear programs.



More information about the Ipopt-tickets mailing list