[Coin-ipopt] Re: Bug report

Andreas Waechter andreasw at watson.ibm.com
Wed Apr 5 10:23:17 EDT 2006


Hi Zhiwen,

> On 4-Apr-06, at 4:02 PM, Andreas Waechter wrote:
>> In future, please send messages regarding Ipopt to the Ipopt mailing list 
>> (see list.coin-or.org/mailman/listinfo/coin-ipopt)
>
> Oh, sorry about that; in this particular case, I didn't post on the mailing 
> list because I had attached a file that wasn't meant for wide distribution.

No problem.

>> The error message you get is not quite correct - it is not really a bug in 
>> Ipopt.  For some reason, Ipopt is not able to find a suitable perturbation 
>> factor for your problem (in the Lagrangian Hessian in the KKT system). This 
>> can happen, when there are invalid numbers (Inf or NaN) returned in the 
>> Hessian from whatever computes its values.  It can also happen, when the 
>> problem is very degererate or badly scaled.
>
> Yes, that's possible. One of my variables was raised to a fractional power, 
> and though the variable itself is supposed to be non-negative, it might have 
> taken on slightly negative values (e.g. -1e-14) during the iterations and 
> thus rendering it complex. At least that's what I suspect.

Setting a slightly positive bound on that variable might help.  Note, by 
default Ipopt relaxes the user-given bounds slightly (by about 1e-8) 
before it solves the problem, so that if you put 0 as bound, it is 
actually slightly negative.  Setting the option bound_relax_factor to 0 
makes Ipopt not change the original bounds.

>> One think you could try is to use the option
>> linear_system_scaling mc19
>
> I tried this on a freshly compiled copy of Ipopt 3.0.1, but Ipopt doesn't 
> seem to acknowledge it. This is the option declaration I used in my AMPL 
> model:
>
> 	option ipopt_options 'linear_system_scaling=mc19';
>
> I also tried putting the line 'linear_system_scaling mc19' in my PARAMS.DAT 
> (which I understand is the preferred way of specifying solver options for 
> now), but Ipopt still refuses to acknowledge it. Am I doing something wrong?

That is strange.  Did you download the MC19 code from Harwell and put it 
into Extern/HSL/mc19ad.f ?  If you didn't, the option is ignored, 
otherwise it's strange that it is ignored (well, it is currently not an 
option one can set through AMPL, but that will change in the new release. 
However, providing the option in PARAMS.DAT should have worked).  If you 
download it now, you need to run configure again and recompile for Ipopt 
to include this scaling method.

>> I hope this helps,
>
> Yup it does, thanks!

...?  So, you were able to solve the problem?

Regards,

Andreas



More information about the Coin-ipopt mailing list