[Ipopt-tickets] [Ipopt] #152: computing dual infeasibility after solve does not catch Eval_Error exception

Ipopt coin-trac at coin-or.org
Tue Mar 8 09:54:51 EST 2011


#152: computing dual infeasibility after solve does not catch Eval_Error
exception
-------------------+--------------------------------------------------------
Reporter:  stefan  |       Owner:  ipopt-team
    Type:  defect  |      Status:  new       
Priority:  normal  |   Component:  Ipopt     
 Version:  3.9     |    Severity:  minor     
Keywords:          |  
-------------------+--------------------------------------------------------
 Hi,

 I have a case where Ipopt apparently stops in a point where gradients are
 not defined, and thus my {{{eval_jac}}} function returns false.

 Output is
 {{{
   72r 4.7002480e+04 3.22e+03 2.95e+09   2.8 1.46e-01  12.8 1.46e-03 5.81e-
 12h 29
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Warning: Cutting back alpha due to evaluation error
 Sorry, things failed ?!?!

 Number of Iterations....: 72

                                    (scaled)                 (unscaled)
 Objective...............:   4.7002480315321940e+04
 4.7002480315321940e+04
 }}}

 Next, in {{{IpoptApplication::call_optimize()}}}, it wants to print a line
 about the dual infeasibility, which leads to calling {{{eval_jac}}} again
 This returns false, then an {{{Eval_Error}}} exception is thrown, but not
 caught immediately.
 Instead, it is caught much later as a general {{{IpoptException}}},
 setting the {{{ApplicationReturnStatus}}} to
 {{{Unrecoverable_Exception}}}.

 {{{
 Exception of type: Eval_Error in file
 "../../../../Ipopt/src/Algorithm/IpOrigIpoptNLP.cpp" at line 693:
  Exception message: success evaluated false: Error evaluating the jacobian
 of the inequality constraints

 EXIT: Some uncaught Ipopt exception encountered.
 }}}

 However, I had expected to get something like
 {{{Invalid_Number_Detected}}} as status.

 Maybe {{{IpoptApplication::call_optimize}}} could be extended so that it
 either puts the computation of final infeasibilities into a try-catch
 block, or that before it catches the {{{IpoptException}}} at the end, has
 a catch for {{{Eval_Error}}} and sets the status to
 {{{Invalid_Number_Detected}}} there?

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



More information about the Ipopt-tickets mailing list