[Ipopt] Fwd: A question about the Lagrange multipliers of Ipopt solution

Tony Kelman kelman at berkeley.edu
Tue Feb 19 22:28:11 EST 2013


Neo,
What you’re seeing is an optimization where the implementation differs slightly from the simple theoretical canonical form in order to reduce the number of variables Ipopt has to calculate. Even if a constraint has finite values of both lower and upper bounds, you actually only need one dual variable (Lagrange multiplier) for that constraint. This is more efficient than considering the lower bound and the upper bound as separate constraints, since you would then need duplicate evaluations of constraint function, Jacobian and Hessian entries, separate dual variables, etc.
If the lower and upper bound values are not equal to one another (lower bound strictly less than upper bound), then only one of the bounds can be active at a time. You can thus combine the Lagrange multiplier for the lower bound with the Lagrange multiplier for the upper bound into the same variable (since one or the other, or both, will always equal zero), using the sign of the variable to show which of the bounds is active. I tend to forget these sign conventions and have to check by running the code, but based on the example you’re seeing it looks like the info.lambda value is negative when the lower bound for a constraint is active, and positive when the upper bound for a constraint is active. You can test this out by switching the signs of one of the constraint functions and adjusting all the bounds, Jacobian and Hessian entries accordingly, to see the effect on the sign of Lambda.
In the other case, if the lower and upper bound values for a constraint are equal to one another, then that constraint is an equality constraint and the dual variable does not have a sign restriction, it can be either positive or negative.
-Tony

 
---------- Original message ----------
From: 马平川 <chambertinofn at gmail.com>
Date: Tue, Feb 19, 2013 at 4:26 PM
Subject: A question about the Lagrange multipliers of Ipopt solution
To: ipopt at list.coin-or.org


Dear sir or madam, 
        Sorry for bothering you with this e-mail. But I actually encounter a big problem with my Master issue code.
        My current problem lies in the coding based on Ipopt Matlab interface. I hava a question about the lagrange multipliers of Ipopt solution.
        We all know that the general nonlinear programming problem form of Ipopt is the minimal optimization with the nonlinear constraints and variables bound constraints which both have the lower and upper bounds. And the value of the Lagrange multipliers at the solution lies in the info.lambda, info.zl, info.zu fields. But it seems that the value of info.lambda isn't right.
        My ipopt version is 3.10.0. I run the original matlab example examplehs071.m which lies in the Ipopt source package. This optimization problem has 4 variables and 2 nonlinear constraints which includes 1 inequality constraint with only lower bounds and 1 equality constraint. So the number of the multipliers associated with nonlinear constraints is 2. Then I have a modification on the example by changing the upper bound of inequality constraint from inf to 100 without any other changes. This mdification doesn't change the optimal solution. I thought this modification would make the length of the multipliers corresponding to nonlinear constraints become 3. But I was wrong. The length of info.lambda was still 2 and its value didn't change at all.
        I have read the Ipopt original artical "A, Wachter and L. T. Biegler. On the implementation of an interior-point filter line-search algorithm for large-scale nonlinear programming. Mathematical Programming, 106(1):25-57, 2006". But in the artical the optimization form only has equality constraints which have the same lower and upper bounds. It also said in that artical, "problems with general nonlinear inequality constraints, 'd(x)<=0', can be reformulated in the above form by introducing slack variables." But I think that even so, 1 inequality constraint with both lower and upper bounds will generate 2 lagrange multiplier accordding to KKT condition, just like the situation of variable bound constraints.
        So please give me the answer if you know it. And I have another question about the value of the multiplier of that original example examplehs071.m. The multiplier corresponding to the inequality constraint with only lower bounds is negative, acctually -0.5523. But according to the usual custom, we will make this multiplier positive by the proper definition of Lagrangian function. So please tell the definition of Lagrangian function of ipopt so that I could judge the sign of Lagrange multipliers.
        Thank you for your reading. I will really appreciate you for your answer.
        Hoping your reply.
------------------------------------------------------------
Regards
Neo Ma 马平川 | Graduate

T:+86-10-6278 2545 | mailto:E%3Achambertinofn at gmail.com
------------------------------------------------------------
Dept. of Electrical Engineering, Tsinghua Univ.
BLDG. 28# RM.312 Tsinghua Univ. Beijing 100084 P.R.CHINA
------------------------------------------------------------
Remember what should be remembered, and forget what should be forgotten. Alter what is changeable, and accept what is immutable.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20130219/48a533e9/attachment.html>


More information about the Ipopt mailing list