An MIP formulation for MPEC can be solved with option optcr=0. However, the result appears not an optimal solution.

Problems with modeling
Post Reply
uluoo
User
User
Posts: 4
Joined: 6 years ago

An MIP formulation for MPEC can be solved with option optcr=0. However, the result appears not an optimal solution.

Post by uluoo »

Hello,
I have developed an MIP formulation for MPEC as follows. It can be solved with option optcr=0. However, the result appears not an optimal solution. If we set Pb_h.fx(h) = 20, a better solution can be derived. It is strange. Would you please help me.
Thank so much in advance

sets
d demand /1/,
b /1*2/,
w /1*2/,
g thermal generation /1/,
h hydro /1/;

scalars
Pb_cap price cap for bids[$.MWh^-1] /50/,
Mmax /10000/;

parameters
qd(d) demand /1 200/,
Pb_g(g, w, b) price offer by block bg of thermal generating unit g in time period t and scenario w /1.1.1 22, 1.1.2 23, 1.2.1 22.1, 1.2.2 22.3/,
q_hmax(h) maximum capacity of hydroplant in time period t[MW] /1 200/,
q_gmax(g, w, b) maximum capacity of block bg of thermal generating unit g in time period t /1.1.1 150, 1.1.2 150, 1.2.1 150, 1.2.2 150/,
q_gmin(g, w, b) minimum capacity of block bg of thermal generating unit g in time period t/1.1.1 0, 1.1.2 0, 1.2.1 0, 1.2.2 0/;

positive variables
Pb_h(h) price offer by block bg of hydropower plant in period t ,
qb_h(h) quantity offer by block bg of hydropower plant in period t;

*Pb_h.fx(h) = 20;

variables
obj the target,
lamda(w) locational marginal price at node n in period t and scenario w,
q_h(h, w) power produced by block bg of hydropower plant in period t and scenario w,
q_g(g, w, b) power produced block bg of thermal generating unit g in period t and scenario w,
miu_hmax(h, w) duel,
miu_hmin(h, w),
miu_gmax(g, w, b),
miu_gmin(g, w, b);

binary variables
ah_min(h, w),
ah_max(h, w),
ag_min(g, w, b),
ag_max(g, w, b);

equations
ob,
BidLimit(h, b),
BlockLimit(h),
DerLamda(w),
derH(h, w),
derG(g, w, b),
CompHmin1(h, w),
CompHmin2(h, w),
CompHmin3(h, w),
CompHmin4(h, w),
CompGmin1(g, w, b),
CompGmin2(g, w, b),
CompGmin3(g, w, b),
CompGmin4(g, w, b),
CompHmax1(h, w),
CompHmax2(h, w),
CompHmax3(h, w),
CompHmax4(h, w),
CompGmax1(g, w, b),
CompGmax2(g, w, b),
CompGmax3(g, w, b),
CompGmax4(g, w, b);

ob.. obj =e= -sum((g, w, b), q_g(g, w, b) * Pb_g(g, w, b)) + sum((d, w), Lamda(w) * qd(d)) - sum((g, w, b), miu_gmax(g, w, b) * q_gmax(g, w, b)) - sum(h, Pb_h(h));
BidLimit(h, b).. Pb_h(h) =l= Pb_cap;
BlockLimit(h).. qb_h(h) =e= q_hmax(h);

DerLamda(w).. sum(d, qd(d)) - sum(h, q_h(h, w)) - sum((g, b), q_g(g, w, b)) =e= 0;
derH(h, w).. Pb_h(h) - Lamda(w) + miu_hmax(h, w) - miu_hmin(h, w) =e= 0;
derG(g, w, b).. Pb_g(g, w, b) - Lamda(w) + miu_gmax(g, w, b) - miu_gmin(g, w, b) =e= 0;

CompHmin1(h, w) .. q_h(h, w) =g= 0;
CompHmin2(h, w) .. miu_hmin(h, w) =g= 0;
CompHmin3(h, w) .. q_h(h, w) =l= ah_min(h, w)*Mmax;
CompHmin4(h, w) .. miu_hmin(h, w) =l= (1-ah_min(h, w))*Mmax;

CompHmax1(h, w) .. qb_h(h)-q_h(h, w) =g= 0;
CompHmax2(h, w) .. miu_hmax(h, w) =g= 0;
CompHmax3(h, w) .. qb_h(h)-q_h(h, w) =l= ah_max(h, w)*Mmax;
CompHmax4(h, w) .. miu_hmax(h, w) =l= (1-ah_max(h, w))*Mmax;

CompGmin1(g, w, b) .. q_g(g, w, b)-q_gmin(g, w, b) =g= 0;
CompGmin2(g, w, b) .. miu_gmin(g, w, b) =g= 0;
CompGmin3(g, w, b) .. q_g(g, w, b)-q_gmin(g, w, b) =l= ag_min(g, w, b)*Mmax;
CompGmin4(g, w, b) .. miu_gmin(g, w, b) =l= (1-ag_min(g, w, b))*Mmax;

CompGmax1(g, w, b) .. q_gmax(g, w, b)-q_g(g, w, b) =g= 0;
CompGmax2(g, w, b) .. miu_gmax(g, w, b) =g= 0;
CompGmax3(g, w, b) .. q_gmax(g, w, b)-q_g(g, w, b) =l= ag_max(g, w, b)*Mmax;
CompGmax4(g, w, b) .. miu_gmax(g, w, b) =l= (1-ag_max(g, w, b))*Mmax;

model simple /all/;
option optcr=0;
solve simple using MIP maximizing obj;
Manassaldi
User
User
Posts: 118
Joined: 7 years ago
Location: Rosario - Argentina

Re: An MIP formulation for MPEC can be solved with option optcr=0. However, the result appears not an optimal solution.

Post by Manassaldi »

Hi, on my computer I don't have that problem

normal solution: z=8820
with Pb_h.fx(h) = 20 : z=8800

Normal solution is greater than forced solution

Bye!
Post Reply