<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: 12pt">
<DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">Neo,</DIV></DIV>
<DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"> </DIV></DIV>
<DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">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.</DIV></DIV>
<DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"> </DIV></DIV>
<DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"> </DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">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. </DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">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.</DIV></DIV>
<DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"> </DIV></DIV>
<DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">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.</DIV></DIV>
<DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"> </DIV></DIV>
<DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">-Tony</DIV>
<DIV><BR> </DIV>
<DIV>
<DIV class=gmail_quote>---------- Original message ----------<BR>From: <B
class=gmail_sendername>Âíƽ´¨</B> <SPAN dir=ltr><<A
href="mailto:chambertinofn@gmail.com">chambertinofn@gmail.com</A>></SPAN><BR>Date:
Tue, Feb 19, 2013 at 4:26 PM<BR>Subject: A question about the Lagrange
multipliers of Ipopt solution<BR>To: <A
href="mailto:ipopt@list.coin-or.org">ipopt@list.coin-or.org</A><BR><BR><BR>Dear
sir or madam,
<DIV> Sorry for bothering you with
this e-mail. But I actually encounter a big problem with my Master issue
code.</DIV>
<DIV> My current problem lies in the
coding based on Ipopt Matlab interface. I hava a question about the lagrange
multipliers of Ipopt solution.</DIV>
<DIV> 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.</DIV>
<DIV> My ipopt version is 3.10.0. I
run the original matlab example <I>examplehs071.m</I> 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.</DIV>
<DIV> I have read the Ipopt original
artical "<I>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</I>". 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.</DIV>
<DIV> 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 <I>examplehs071.m</I>. 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.</DIV>
<DIV> <SPAN
style="FONT-FAMILY: arial,sans-serif; COLOR: rgb(34,34,34); FONT-SIZE: 13px">Thank
you for your reading. I will really appreciate you for your answer.</SPAN></DIV>
<DIV><SPAN
style="FONT-FAMILY: arial,sans-serif; COLOR: rgb(34,34,34); FONT-SIZE: 13px">
Hoping your reply.</SPAN></DIV>
<DIV>
<DIV>
<DIV>------------------------------------------------------------<BR>Regards<BR>Neo
Ma Âíƽ´¨ | Graduate<BR><BR>T:+86-10-6278 2545 | <A
href="mailto:E%3Achambertinofn@gmail.com"
target=_blank>mailto:E%3Achambertinofn@gmail.com</A><BR>------------------------------------------------------------<BR>Dept.
of Electrical Engineering, Tsinghua Univ.<BR>BLDG. 28# RM.312 Tsinghua Univ.
Beijing 100084
P.R.CHINA<BR>------------------------------------------------------------<BR>Remember
what should be remembered, and forget what should be forgotten. Alter what is
changeable, and accept what is immutable.</DIV></DIV></DIV></DIV>
<DIV> </DIV></DIV></DIV></DIV></DIV></BODY></HTML>