[Ipopt] AMPL loops tests fail with Ipopt
Stefan Vigerske
stefan at math.hu-berlin.de
Tue May 8 10:44:51 EDT 2012
Hi,
can you create a ticket in the Ipopt bugtracking system for this issue
(https://projects.coin-or.org/Ipopt/newticket), so it will not be forgotten.
(you may have to create a coin-or account)
Stefan
Am 04.05.2012 19:36, schrieb vladimir voloshinov:
> I believe that the reason of the subject is that Ipopt returns dual
> variables with opposite sign as other AMPL-compatible solvers do.
> Take for example simplest problem:
> |x| -> min
> formulated as LP-problem
> #---- TestDualLP.mod -----
> var x;
> var z;
> minimize MOD: z;
> s.t. upZ: x - z<= 0;
> s.t. loZ: -z - x<= 0;
> #-------------------------------
> Running the following AMPL-script with different value of
> option solver lpsolve | snopt | knitro | ipopt
> #-----TestDualLP.amp-------
> model TestDualLP.mod;
> option solver lpsolve; #and with other: snopt, knitro, ipopt
> solve LPp;
> display x;
> display upZ;
> display loZ;
> #-------------------------------
> give the following result, i.e. marginal value of right side of "<= p"
> constraint (d(min)/dp), NOT the Lagrange multiplier which is positive
> !
> -------
> x = 0
> upZ = -0.5
> loZ = -0.5
> -------
> for lpsolve, snopt and knitro.
>
> But for Ipopt signs of duals is opposite (i.e. Ipopt returns Lagrange
> multiplier instead of marginal value).
> -------
> x = 5.19833e-23
> upZ = -0.5
> loZ = -0.5
> -------
>
> BTW I found appropriate ticket
> https://projects.coin-or.org/OS/ticket/11 "OS/Ipopt gives wrong sign
> on constraint dual values" which is marked "closed".
> But when I compile Ipopt 3.10.2 (Linux 3.0.0-19-generic),
> ASL(20101105) from OS distribution I found the same effect (Lagrange
> multipliers instead of "dual/marginal_value".
>
> Does it mean that we should use "Ipopt-specific" AMPL-script when
> .dual is used!?
>
> Regards,
> Vladimir.
>
> On Thu, May 3, 2012 at 8:00 PM,<ipopt-request at list.coin-or.org> wrote:
>>
>> 1. AMPL loops tests fail with Ipopt (vladimir voloshinov)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Dear sirs,
>> I tried AMPL loops scripts (http://www.ampl.com/NEW/loop2.html) with
>> different AMPL-solvers (on Linux):
>> lpsolve, snopt, knitro and ipopt (Ipopt 3.10.0 (Linux
>> 2.6.32-71.29.1.el6.x86_64), ASL(20110308)).
>> and found that all solvers work properly except Ipopt (I tried multi1
>> and multi2 examples only).
>>
>> I suspect that the reason is that Ipopt loses some dual variables
>> between repeating "solve".
>> Can somebody recommend any workaround?
>> I found some notes here
>> https://projects.coin-or.org/Ipopt/wiki/IpoptAddFeatures.
>> Unfortunately, only setting addition option
>> warm_start_init_point=yes
>> did not help.
>>
>> Am I right that it is required to reproduce all ipopt_zL/U_in/out stuff also?
>>
>> Take multi2 for instance.
>> With
>> option solver ipopt;
>> in multi2.run
>> $ampl multi2.run
>> fails with the following dump (final part of output)
>> ===============================
>> PHASE I -- ITERATION 3
>>
>> PRODUCT bands
>>
>> Error at _cmdno 104 executing "solve" command
>> (file multi2.run, line 39, offset 1034):
>> error processing param price['CLEV','STL']:
>> failed check: param price['CLEV','STL'] = 0.6209092318224038
>> is not<= 1e-06;
>> Error at _cmdno 104 executing "solve" command
>> (file multi2.run, line 39, offset 1034):
>> error processing param price['PITT','STL']:
>> failed check: param price['PITT','STL'] = 0.37909076811866227
>> is not<= 1e-06;
>> ===============================
>> It means that the following constraints in multi2.mod are violated...
>> param price {ORIG,DEST}<= 0.000001; # dual price on shipment limit
>>
>>
>> Sincerely yours,
>> --
>> Vladimir V. Voloshinov,
>> Ph.D, head of lab. C-3 "Distributed computing algorithms"
>> Center of Grid-technologies& Distributed Computing, http://dcs.isa.ru,
>> Institute for System Analysis Russ. Acad. Sci., http://www.isa.ru,
>>
>>
>> ------------------------------
>>
>> _______________________________________________
>> Ipopt mailing list
>> Ipopt at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/ipopt
>>
>>
>> End of Ipopt Digest, Vol 89, Issue 1
>> ************************************
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
More information about the Ipopt
mailing list