Things are clearer to me now. It’s merely about the KKT system of equations.
At a local optimum, which Ipopt ensures, there are 2 possibilities for an inequality constraint
- it is binding at this local optimum
- it is nonbinding, i.e. it can be safely removed, concerning only this specific local optimum
If it is the situation 2, then the multiplier returned is simply 0
.
If it is the situation 1, then that inequality constraint can be deemed a ==
constraint, which owns a normal lagrange multiplier (typically will be nonzero).