I have Julia 1.1.1 and JuMP 0.19. I am solving a concave maximization problem with linear constraints with Ipopt. I am confused with what is happening to the signs of the Lagrange multipliers:
The correct multipliers are
[2.39447, 2.21215, 2.64144, 2.58729, -1.37699e-6]
where the first vector is corresponds to equality constraints, the second to inequalities (all inequalities are in the form <= ).
If I use dual(), I get these vectors:
[-2.39447, -2.21215, -2.64144, -2.58729, 4.53964e-9]
And if I use shadow_price() I get
[2.39447, 2.21215, 2.64144, 2.58729, -4.53964e-9]
I’ve read the documentation a few times, but I find it less than clear, and I still don’t understand what’s happening.
My provisional conclusion is that I should be using the negatives of the duals.
Is this because I’m maximizing? And what about the shadow_prices?