[Coin-ipopt] slacks vs. ||C||, and presolve issue

Andreas Waechter andreasw at us.ibm.com
Mon Dec 27 08:13:34 EST 2004





Hi Jon,

Happy Holidays to you and everyone else reading this, too!

Let me start with the second point you brought up:  If you pose inequality
constraints to Ipopt, they are automatically reformulated into equality
constraints after adding slacks.  In the statistics, Ipopt includes the
slack variables when counting the number of variables, whereas Knitro
doesn't.  So, in your case, there were 7 original variables, and you have
16 inequality constraints.

As for the constraint violation at the initial point:  First of all, I
don't really know what the slack field for constraints says, but I take
your word for it that only a negative value corresponds to constraint
violation (also for equality constraints, and for inequality constraint
with both lower and upper bounds?).  Is it possible that some of the
variables are outside their bounds?  In that case, Ipopt would move them
inside the bounds; see the parameters "dbndpush" and "dbndfrac" (Ipopt also
changes the initial values of variables when they are too close to the
bounds), and then your constraint might be violated again.  Furthermore, I
don't know if the presolve step in AMPL could make inequality constraints
being violated at the modified initial point.

I hope this helps,

Andreas



                                                                                                                                                    
                      "Jonathan Berry"                                                                                                              
                      <jberry at sandia.gov>             To:       coin-ipopt at list.coin-or.org                                                         
                      Sent by:                        cc:                                                                                           
                      coin-ipopt-bounces at list.        Subject:  [Coin-ipopt] slacks vs. ||C||, and presolve issue                                   
                      coin-or.org                                                                                                                   
                                                                                                                                                    
                                                                                                                                                    
                      12/23/2004 08:34 PM                                                                                                           
                                                                                                                                                    
                                                                                                                                                    




Happy holidays to the ipopt project!

Thanks again for sharing it.


In the course of debugging an application, I've come across
two issues:

- I use ampl's   display <constraint>.slack command for all of
  my constraints, and there are no negative slacks.  I interpret
  this to mean that I have successfully initialized all of my
  variables to represent a feasible solution.  However, the
  value of ||C|| at iteration 0 is about 1e+03.  This value is
   affected by the setting of ISCALE, but never starts at 0.

- In debugging this, I've fixed most variables to their initial
   values in ampl, and let IPOPT try to determine the unfixed
   ones.  Ampl thinks that there are 7 variables after the presolve;
   ipopt thinks that there are 23.  I tried running KNITRO on
   NEOS using the same ampl model and script, and knitro thought
   that there were 7 variables after the presolve.  Back in the IPOPT
   world, I can't match the X(..) values in IPOPT.OUT to the ampl
   variables in xxx.col.  Has anybody dealt with this before?

-Jon


_______________________________________________
Coin-ipopt mailing list
Coin-ipopt at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/coin-ipopt






More information about the Coin-ipopt mailing list