[Coin-ipopt] Derivative checker problem (IpOpt 3.3.4 over the Matlab interface), ignorance of starting point information
Andreas Waechter
andreasw at watson.ibm.com
Mon Jan 14 22:30:34 EST 2008
Hi Peter and Sebastian,
> Sebastian,
>
> I sent an email about this earlier:
> http://list.coin-or.org/pipermail/coin-ipopt/2007-November/000914.html
>
> You might try downloading version 3.3.1 of Ipopt; the derivative
> checker seems to work in that release.
>
> Are there any plans to fix this bug?
Sorry, that one escaped by attention. The problem was a mistake in the
random number generator, which had the effect that only numbers very close
to 0 were generated (instead of in the interval [0,1]).
Now the derivative test should happen at a point that is a perturbation of
the user-given starting point, where the size of the perturbation interval
is minimum of the value of the point_perturbation_radius option and the
difference between the bounds (and we make sure the point is within the
bounds).
I committed the fix to the stable/3,3 branch of the svn repository, and it
will be in the next release once I make it. If you are using svn and
downloaded the stable branch (the recommended way), you just need to do an
'svn update'. Otherwise you can make the change by hand, see
https://projects.coin-or.org/Ipopt/changeset/1148 .
Aside from this: In general, the functions should be well defined within
the bounds, so if they go to infinity at the bounds, you are probably
better off by choosing bounds that are a little bit tighter. (Be aware of
the effect of the bounds_relax_factor option, which is 1e-8 by default,
and makes Ipopt see bounds that are slightly relaxed than what you
actually specify...)
I hope this helps,
Andreas
More information about the Coin-ipopt
mailing list