[Ipopt] Incorrect multipliers reported for equality constrained variables

Stefan Vigerske stefan at math.hu-berlin.de
Thu Apr 18 11:35:20 EDT 2013


Hi,

Ipopt's TNLP adapter (I guess that casadi is using the same) removes 
fixed variables from the problem, so they are not seen for Ipopt.

You can change this by setting the
   fixed_variable_treatment
parameter: http://www.coin-or.org/Ipopt/documentation/node92.html

Stefan

On 04/18/2013 12:05 PM, Joel Andersson wrote:
> Hello!
>
> 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
> doumentation?
>
> Thanks!
> Joel
>
>
> 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!!!
>
>
>
>
>
>
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>



More information about the Ipopt mailing list