[Ipopt] Lagrange multipliers for inequality (<=) constraints

Chunhua Men chhmen at gmail.com
Thu Oct 27 18:44:51 EDT 2016


Hello,

I have a convex model with some inequality (<=)  nonlinear constraints. At
the end of the optimization,  I wanted to get the Lagrange multipliers for
each constraint. I found out there were 2 ways within
"finalize_solution(...)" to get them:
1) read "lambda" directly;
2) get from ip_data->curr()->y_d(). And I had to do some data transfer to
get it -  and what I did was "static_cast<const
Ipopt::DenseVector*>(GetRawPtr(ip_data->curr()->y_c()))".

However, these 2 methods could not give me the completely same results. In
my case, there were 6 constraints: 3 of them were the same, and 3 of them
were not.

Did I do anything wrong? and what is the best way to get Lagrange
multipliers?  BTW, I am using " limited-memory" as "hessian_approximation",
so I could not get Lagrange multipliers from "eval_h".

Thanks! Chunhua
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20161027/6861c1d9/attachment.html>


More information about the Ipopt mailing list