Issue of dual from energy/reserves balance constraint in optimization model

Hi All,

I am co-optimizing the energy and reserves in a LP model using the CPLEX solver. However, the reserves price, the dual of the balance constraint, exceeds the bound of 1,500 but to 2,950 (this issue does not happen if I use the CONOPT4 solver). I would like to ask if there is a way that I can set the lower and upper bound to the dual of this balance constraint in the optimization model. I really appreciate your help. Many thanks!

Doris

In an LP there is no such thing as bounds on the dual. It is not unusal to get different dual solution with different solvers. With LPs you can have different optimal basis with different (primal and) dual solutions. Uniqueness in the optimal solution is very rare in practical models. If you want more insight, you need to post your model so we can run and reproduce your findings.

-Michael

Hi Michael,

Thank you very much for your quick response! I have now attached the GAMS code of the model. I would like to provide a description of the model and the problem I have encountered.

Description: I am running a stochastic linear programming model that can be used for pricing in electrical energy and reserve markets. It addresses capacity investment, energy, and reserve dispatch problems in three demand scenarios (demand 0, 400, and 900) with probabilities of 0.49, 0.49, and 0.02, respectively, for three periods of a day. When the total capacity supply cannot meet the demand, the energy price will reach the cap of 3000 (defined as parameter VOLL in the code), and the reserve price will reach the cap of 1500 (defined as P(i) in the code). Also, capacity should always be provided as energy first to meet the demand; then, the rest of the capacity is provided as reserves.

Note: Since the objective function considers the expected cost across demand scenarios, the duals from balance constraints are weighted duals, meaning, for example, the weighted energy price cap reported from the model is 180 (30000.023), and the weighted reserves price is 90 (15000.023).

Problem: As the example in the attached code, the total capacity provision of 700 (250 + 150 +150 +150) cannot meet demand scenario 3, so the weighted dual (s_p_e_3) from the equation Eq_Y should reach the cap 180, and the weighted dual (s_p_r_3) from the equation (Eq_v) should hit 90. If I use CONOPT4 to solve the model, all the results make sense. However, if I use CPLEX, the reserve price, s_p_r_3, is 177 (probability-removed of 2,950) instead of 90.

Question: I understand multiple solvers can lead to multiple optimal solutions. However, I will eventually need to use an equivalent MCP model (only PATH solver is available), which has the same issue described above (it is worse that it even messes up the dispatch schedule because of the unexpected dual). My question is, is there a way that I can set the initial point (set the dual s_p_r_3.l = 90) so that I can help the CPLEX converge to the CONOPT4 solution? If a strategy is working here, I could probably apply the same strategy to the MCP model later.

Thank you again for your attention and help here!


Doris
Optimization_model.gms (6.89 KB)