[Ipopt] Restoration mode

Seth Watts seth.e.watts at gmail.com
Tue Sep 11 18:45:52 EDT 2012


I do not understand based on the documentation exactly what the restoration
mode is, when Ipopt enters it, and how it exits it.

Based on what I have read, Ipopt enters restoration mode when it determines
it is in a non-feasible region, and uses a modified algorithm to attempt to
return to a feasible region. Can anyone clarify matters further?

I have two versions of my program, one which evaluates NLP functions in
serial, and one which evaluates them in parallel. Since modifying my
parallel version, now Ipopt enters restoration mode every time, while the
serial version never does. Both are started with random initial parameters
which in general do not result in a feasible starting point, but the serial
version is always able to drive the system to a feasible state while
reducing the cost function, all without  entering restoration mode (at
least, no "r" is printed in the standard output).

Even when fixing the seed of the random number generator to compare serial
and parallel versions directly, the serial does not enter restoration mode
while the parallel version does. Based on some some of the restoration mode
options in the documentation, I think it is possible this may occur when
the derivatives of the constraints are not correct. Comparing my serial and
parallel results, I do have some small discrepancies, which I believe are
due to parallel evaluation of the derivatives and the non-commutativity of
floating point operations.

Is it possible that small changes in the derivatives could force Ipopt into
restoration mode? If so, what options would you recommend to reduce this
behavior?

Thank you,
Seth Watts
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20120911/f874ad59/attachment-0001.html>


More information about the Ipopt mailing list