[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