[Ipopt] Ipopt halts on log(0.38)

Giacomo Nannicini giacomo.n at gmail.com
Sun Aug 27 10:48:52 EDT 2017


Yes, that actually solves the issue. Whatever it was, in either ASL or
Ipopt, looks like it was solved at some point.

Thanks a lot!

Giacomo

On Sun, Aug 27, 2017 at 12:16 AM, AMPL Support <support at ampl.com> wrote:
> Hi Giacomo,
>
> The Ipopt binaries available at http://ampl.com/products/solvers/open-source/ have been updated to the latest version 3.12.8, using the most recent ASL build dated 20170722.  Let us know if you see any trouble with this new version; if so then we would like to look at the .nl file and also the error messages (which might be different from the messages seen with the older version).
>
> AMPL Support Services
> support at ampl.com
>
>
> -----Original Message-----
> From: Giacomo Nannicini [mailto:giacomo.n at gmail.com]
> Sent: Friday, August 18, 2017 9:45 AM
> To: support at ampl.com
> Subject: Fwd: [Ipopt] Ipopt halts on log(0.38)
>
> Hi,
> please see the email exchange below about the Ipopt binaries provided by AMPL.
> Long story short: it seems that the binaries might be outdated and
> buggy. I can provide you the .nl file discussed below, on which the
> Ipopt binaries provided on your website crash.
>
> I thought you'd like to know about this.
> Thanks
>
> Giacomo
>
>
> ---------- Forwarded message ----------
> From: Stefan Vigerske <stefan at math.hu-berlin.de>
> Date: Fri, Aug 18, 2017 at 5:50 AM
> Subject: Re: [Ipopt] Ipopt halts on log(0.38)
> To: Giacomo Nannicini <giacomo.n at gmail.com>, ipopt <ipopt at list.coin-or.org>
>
>
> Hi,
>
> I cannot reproduce the error itself, but if I run the Ipopt binary
> from http://ampl.com/dl/open/ipopt/ipopt-linux64.zip on your .nl file,
> I get this from valgrind:
>
> ...
> Number of nonzeros in equality constraint Jacobian...:       37
> Number of nonzeros in inequality constraint Jacobian.:        0
> Number of nonzeros in Lagrangian Hessian.............:       35
>
> ==11553== Conditional jump or move depends on uninitialised value(s)
> ==11553==    at 0x772569: f_OP_log
> ==11553==    by 0x770D3D: f_OPMULT
> ==11553==    by 0x770D2D: f_OPMULT
> ==11553==    by 0x77CD7C: conpval_ASL
> ==11553==    by 0x77D34D: jacpval_ASL
> ==11553==    by 0x747D97: Ipopt::AmplTNLP::eval_jac_g(int, double
> const*, bool, int, int, int*, int*, double*)
> ==11553==    by 0x474747: Ipopt::TNLPAdapter::internal_eval_jac_g(bool)
> ==11553==    by 0x476372: Ipopt::TNLPAdapter::Eval_jac_c(Ipopt::Vector
> const&, Ipopt::Matrix&)
> ==11553==    by 0x4C5CA1:
> Ipopt::GradientScaling::DetermineScalingParametersImpl(Ipopt::SmartPtr<Ipopt::VectorSpace
> const>, Ipopt::SmartPtr<Ipopt::VectorSpace const>,
> Ipopt::SmartPtr<Ipopt::VectorSpace const>,
> Ipopt::SmartPtr<Ipopt::MatrixSpace const>,
> Ipopt::SmartPtr<Ipopt::MatrixSpace const>,
> Ipopt::SmartPtr<Ipopt::SymMatrixSpace const>, Ipopt::Matrix const&,
> Ipopt::Vector const&, Ipopt::Matrix const&, Ipopt::Vector const&,
> double&, Ipopt::SmartPtr<Ipopt::Vector>&,
> Ipopt::SmartPtr<Ipopt::Vector>&, Ipopt::SmartPtr<Ipopt::Vector>&)
> ==11553==    by 0x517943:
> Ipopt::StandardScalingBase::DetermineScaling(Ipopt::SmartPtr<Ipopt::VectorSpace
> const>, Ipopt::SmartPtr<Ipopt::VectorSpace const>,
> Ipopt::SmartPtr<Ipopt::VectorSpace const>,
> Ipopt::SmartPtr<Ipopt::MatrixSpace const>,
> Ipopt::SmartPtr<Ipopt::MatrixSpace const>,
> Ipopt::SmartPtr<Ipopt::SymMatrixSpace const>,
> Ipopt::SmartPtr<Ipopt::MatrixSpace const>&,
> Ipopt::SmartPtr<Ipopt::MatrixSpace const>&,
> Ipopt::SmartPtr<Ipopt::SymMatrixSpace const>&, Ipopt::Matrix const&,
> Ipopt::Vector const&, Ipopt::Matrix const&, Ipopt::Vector const&)
> ==11553==    by 0x5281D9:
> Ipopt::OrigIpoptNLP::InitializeStructures(Ipopt::SmartPtr<Ipopt::Vector>&,
> bool, Ipopt::SmartPtr<Ipopt::Vector>&, bool,
> Ipopt::SmartPtr<Ipopt::Vector>&, bool,
> Ipopt::SmartPtr<Ipopt::Vector>&, bool,
> Ipopt::SmartPtr<Ipopt::Vector>&, bool,
> Ipopt::SmartPtr<Ipopt::Vector>&, Ipopt::SmartPtr<Ipopt::Vector>&)
> ==11553==    by 0x4F71AC:
> Ipopt::IpoptData::InitializeDataStructures(Ipopt::IpoptNLP&, bool,
> bool, bool, bool, bool)
> ==11553==  Uninitialised value was created by a stack allocation
> ==11553==    at 0x772530: f_OP_log
> ==11553==
>
>
> This should have nothing to do with using ma27 or mumps. Maybe the
> Ipopt binary on the AMPL webpage uses a buggy AMPL interface library
> (ASL)? The Ipopt version they provide is 3.12.4, which is 2 years old.
>
> Stefan
>
>
>
> On 08/10/2017 05:04 PM, Giacomo Nannicini wrote:
>>
>> Hi all,
>> I am experiencing a strange behavior of Ipopt.
>> I have a model that contains logarithms of nonnegative numbers.
>> Everything runs fine on my machine, where I compiled from source and
>> use ma27 as linear solver.
>> However on a different machine I use the Ipopt binaries downloaded
>> from the AMPL website, that use mumps. On this machine, running the
>> model gives an error:
>>
>> Error evaluating constraint 1: can't evaluate log(0.388348).
>>
>> To get this message I have to run with halt_on_ampl_error yes,
>> otherwise Ipopt simply exists with Invalid number in NLP function or
>> derivative detected.
>> I am not even sure this is an error of Ipopt or ASL, but it's hard for
>> me to figure out where the error is coming from.
>>
>> Attached is a small and compressed .nl file that exhibits this behavior.
>>
>> Any ideas? I can't see why log(0.38) would be a complicating
>> expression, what am I missing?
>>
>> Thanks
>>
>> Giacomo
>>
>>
>>
>> _______________________________________________
>> Ipopt mailing list
>> Ipopt at list.coin-or.org
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_ipopt&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=BRcuJnQr5NAzU29t80hk2rsLc4vrlRySBDabuq0O1ZI&m=nGfRWJP56XZ1hxfEDKNDr28CqTB5yFbkzbcWMm3pjSI&s=6yWqyLAdnuUit3ZzNkpYmL1jhOi2BmIuXADhLvBbHpM&e=
>>
>
>
> --
> http://www.gams.com/~stefan
>



More information about the Ipopt mailing list