[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