[Ipopt] Incorrect multipliers reported for equality constrained variables

Joel Andersson joel.andersson at esat.kuleuven.be
Thu Apr 18 06:05:06 EDT 2013


I am getting incorrect Lagrange multipliers for equality constrained
variables ("parameters"). For example, when I solve the following problem:

minimize:  x0*(3+x1^2)
subject to:
                  [1.0, -10] <= [x0,x1] <= [1.0, 10]

I get that the multipliers corresponding to the bound is [0,0], which is
obviously wrong (it should be [-3,0]).

If I formulate the same constraint as a nonlinear constraint or if I allow
a range for x0 (e.g. [1.000,1.0001]), then I get the correct multipliers.

I suspect this is related to Ipopt "optimizing away" the variable. Is there
some way to prevent this from happening? Or maybe I missed something in the


P.S: I use Ipopt from CasADi. For reference here is my test script:

from casadi import *x = ssym("x",2)f =
SXFunction([x],[x[0]*(3+x[1]**2)])s =
IpoptSolver(f)s.init()s.setInput([1.,    -10.],"lbx")s.setInput([1.,
  10.],"ubx")s.evaluate()print s.output("lam_x") # [0,0] # wrong!!!

Joel Andersson, PhD Student
Electrical Engineering Department (ESAT-SCD), Room 05.11,
K.U.Leuven, Kasteelpark Arenberg 10 - bus 2446, 3001 Heverlee, Belgium
Phone: +32-16-321819
Mobile: +32-486-672874 (Belgium) / +34-63-4408800 (Spain) / +46-707-360512

Private address: Weidestraat 5, 3000 Leuven, Belgium
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20130418/18d51cfd/attachment.html>

More information about the Ipopt mailing list