-
Hi, I need to get the constraint multipliers for sensitivity analysis. To my knowledge, the constraint with both lower bound and upper bound will be converted to two constraints (correct me if it's wrong). I'd like to know how does Ipopt order multipliers (lambda) for constraints, especially for the constraints with both boundaries. Thanks |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
If lower and upper bounds are equal, then the constraint will be converted from The bound multiplier lambda for constraints is taken from the bound multiplier of |
Beta Was this translation helpful? Give feedback.
If lower and upper bounds are equal, then the constraint will be converted from
lhs <= g(x) <= rhs
tog(x) - lhs = 0
.If lower and upper bounds are different (and possibly infinite), then the constraint will be converted from
lhs <= g(x) <= rhs
tog(x) - s = 0
,lhs <= s <= rhs
, where s is a slack variable that gets introduced.See also https://coin-or.github.io/Ipopt/classIpopt_1_1TNLPAdapter.html#details
The bound multiplier lambda for constraints is taken from the bound multiplier of
g(x) - lhs = 0
(if lhs==rhs) org(x) - s = 0
(if lhs != rhs).So in the latter case, the sign of lambda tells you whether
lhs <= g(x)
org(x) <= rhs
is active.