[Ipopt] ipopt and Lagrangian multipliers

Andrea Cassioli cassioliandre at gmail.com
Fri Aug 17 10:39:21 EDT 2012

Hi all,
I am struggling with the Lagrangian multipliers returned by Ipopt. I
am solving a convex problem with some 3000 constraints each one with
only an upper bound set to zero. Ipopt solve the problem to optimality
(I am not asking for high accuracy). the last iterations show the
following output

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20  1.2868383e+03 6.48e-09 5.18e-06  -6.9 4.37e-03    -  9.23e-01 9.64e-01f  1
  21  1.2868310e+03 3.62e-10 2.44e-06  -7.8 1.42e-03    -  9.94e-01 1.00e+00f  1
  22  1.2868308e+03 7.10e-12 6.47e-07  -8.2 3.14e-04    -  9.86e-01 9.89e-01h  1
  23  1.2868306e+03 2.65e-13 3.21e-08 -11.0 4.88e-05    -  1.00e+00 9.96e-01f  1
  24  1.2868306e+03 2.31e-14 1.97e-09 -11.0 2.50e-07    -  1.00e+00 1.00e+00h  1
  25  1.2868306e+03 0.00e+00 6.40e-11 -11.0 1.57e-07    -  1.00e+00 1.00e+00h  1

Number of Iterations....: 25

                                   (scaled)                 (unscaled)
Objective...............:   2.1532364605269260e+02    1.2868306283379461e+03
Dual infeasibility......:   6.4041334735254196e-11    3.8272782635679950e-10
Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   1.0000098023754085e-11    5.9763210679608516e-11
Overall NLP error.......:   6.4041334735254196e-11    3.8272782635679950e-10

Number of objective function evaluations             = 26
Number of objective gradient evaluations             = 26
Number of equality constraint evaluations            = 0
Number of inequality constraint evaluations          = 26
Number of equality constraint Jacobian evaluations   = 0
Number of inequality constraint Jacobian evaluations = 26
Number of Lagrangian Hessian evaluations             = 0
Total CPU secs in IPOPT (w/o function evaluations)   =      3.656
Total CPU secs in NLP function evaluations           =      7.886

EXIT: Optimal Solution Found.

Now I need to use the Lagrangian multipliers in a column-generation
scheme. The problem is that some of them are not zero for non binding
constraints. If I have understood correctly, Ipopt returns a single
multipliers for a constraint of the form l<=g(x)<=u, so thta the sign
of the multipliers depends whether the upper or lower bound is active.
I would assume that it should be zero (or mostly zero) if none of the
constraints are active.

What I get from Ipopt is for instance

-inf<= g(x)= -0.331171 <=0

but the corresponding multiplier is 0.197597.

Do I miss something ? Is there some documentation on how Ipopt returns
the Lagrangian multipliers? Should I assume that the multipliers of
not binding constraints are meaningless?

Best Regards,
Andrea Cassioli Ph.D.

More information about the Ipopt mailing list