$offlisting $offsymxref $offuellist $offuelxref option solprint=silent,optcr=0,optca=0,reslim=2000; set p/1*2/ k/k01,k02,k03/ m/1*2/ c/1*2/ l/1*6/ t/1*2/ ; alias (t,tprime),(l,lprime),(m,mprime),(c,cprime); parameter BigM/100000000/ IE(p) ok/1 50 2 50/ IA(p) ok/1 5 2 5/ delta(m) ok/1 900 2 750/; table D(p,t) ok 1 2 1 200 500 2 700 250 ; parameter tt(m) ok/1 500 2 500/ fc(t) ok/1 20000 2 20000/ BU ok/3/ BL ok/2/ cmax ok; cmax=card(l)/BL; table ttt(k,p,m) ok 1 2 k01 . 1 0 0 k01 . 2 .76 0 k02 . 1 0 .79 k02 . 2 .65 0 k03 . 1 0 0 k03 . 2 .39 0 ; table dd(l,lprime) ok 1 2 3 4 5 6 1 0 1 2 1 2 3 2 1 0 1 2 1 2 3 2 1 0 3 2 1 4 1 2 3 0 1 2 5 2 1 2 1 0 1 6 3 2 1 2 1 0 ; parameter alpha(m) ok/1 1800 2 1500/ beta(m) ok/1 9 2 7/ gamma(m) ok/1 18000 2 15000/ oc(p) ok/1 200 2 200/ hc(p) ok/1 20 2 20/ ; parameter a(k,p,m); a(k,p,m)=0; a(k,p,m)$(ttt(k,p,m)>0)=1; positive variable x(k,p,m,l,t),y(k,p,m,l,mprime,lprime,t),np(m,t),nplus(m,t),nminus(m,t),o(p,t),v(p,t),yyy1(k,p,m,l,mprime,lprime,c,t),yyy2(k,p,m,l,mprime,lprime,c,cprime,t),wp(m,l,t),wm(m,l,t),xx(k,p,m,l,c,t); binary variable yy(c,t),w(m,l,c,t); variable z,z1,z2; equations obj1,obj2,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,eq1,eq2,eq3,eq4 ; obj1.. z1=e=sum((t,c,m,l,mprime,lprime,p,k)$(ord(k) lt card(k) and ord(l) ne ord(lprime)),yyy1(k,p,m,l,mprime,lprime,c,t)*dd(l,lprime)*IA(p)) +sum((t,c,cprime,m,l,mprime,lprime,p,k)$(ord(k) lt card(k) and ord(c) ne ord(cprime)),yyy2(k,p,m,l,mprime,lprime,c,cprime,t)*dd(l,lprime)*IE(p)) +(1/2)*sum((c,l,m),delta(m)*w(m,l,c,"1")) +(1/2)*sum((t,l,m)$(ord(t) lt card(t)),delta(m)*(wp(m,l,t)+wm(m,l,t))) +sum((t,m),gamma(m)*np(m,t)) +sum((t,m),alpha(m)*(sum((c,l),w(m,l,c,t)))) +sum((t,p,k,m,l),beta(m)*ttt(k,p,m)*x(k,p,m,l,t)) +sum((t,c),fc(t)*yy(c,t)) +sum((t,p),oc(p)*o(p,t)) +sum((t,p),hc(p)*v(p,t)); obj2(c).. z2=e=sum((t,m,l,p,k),xx(k,p,m,l,c,t)*ttt(k,p,m)); c1(k,p,m,l,t).. x(k,p,m,l,t)=l=BigM*a(k,p,m); c2(p,t).. d(p,t)=e=sum((m,l),x("k01",p,m,l,t))+v(p,t-1)-v(p,t)+o(p,t); c3(m,t)$(ord(t) > 1).. sum((c,l),w(m,l,c,t))=e=sum((c,l),w(m,l,c,t-1))+np(m,t)+nplus(m,t)-nminus(m,t); c4(m,t)$(ord(t) ge 3).. nplus(m,t)=l=sum(tprime$(ord(tprime) ge 2 and ord(tprime) lt ord(t)),nminus(m,t))-sum(tprime$(ord(tprime) ge 3 and ord(tprime) lt ord(t)),nplus(m,t)); c5(t).. sum((m,c,l),w(m,l,c,t))=l=card(l); c6(c,t).. sum((m,l),w(m,l,c,t))=l=yy(c,t)*BU; c7(c,t).. BL*yy(c,t)=l=sum((m,l),w(m,l,c,t)); c8(c,t)$(ord(c) lt card(c)).. yy(c+1,t)=l=yy(c,t); c9(m,l,t).. sum((p,k),x(k,p,m,l,t)*ttt(k,p,m))=l=tt(m)*sum(c,w(m,l,c,t)); c10(k,p,m,l,t).. x(k,p,m,l,t)=e=sum((mprime,lprime),y(k,p,m,l,mprime,lprime,t)); c11(k,p,mprime,lprime,t)$(ord(k) > 1).. x(k,p,mprime,lprime,t)=e=sum((m,l),y(k-1,p,m,l,mprime,lprime,t)); c12(l,t).. sum((m,c),w(m,l,c,t))=l=1; eq1(k,p,m,l,mprime,lprime,c,t)$(ord(l) ne ord(lprime)).. yyy1(k,p,m,l,mprime,lprime,c,t)=g=y(k,p,m,l,mprime,lprime,t)-BigM*(2-w(m,l,c,t)-w(mprime,lprime,c,t)); eq2(k,p,m,l,mprime,lprime,c,cprime,t)$(ord(c) ne ord(cprime) and ord(l) ne ord(lprime)).. yyy2(k,p,m,l,mprime,lprime,c,cprime,t)=g=y(k,p,m,l,mprime,lprime,t)-BigM*(2-w(m,l,c,t)-w(mprime,lprime,cprime,t)); eq3(m,l,t).. sum(c,w(m,l,c,t))-sum(c,w(m,l,c,t+1))=e=wp(m,l,t)-wm(m,l,t); eq4(k,p,m,l,c,t).. xx(k,p,m,l,c,t)=g=x(k,p,m,l,t)-bigM*(1-w(m,l,c,t)); model model1/all/; model model2/all/; parameter z1star,z2star,z2max,z1max; solve model1 using mip minimizing z1; z1star=z1.l; z2max=z2.l; display z1star; solve model2 using mip minimizing z2; z2star=z2.l; z1max=z1.l; display z2star; equation objective ; objective.. z=e=(z1star-z1)/(z1star-z1max)+(z2star-z2)/(z2star-z2max); model mymodel /model1,objective/; solve mymodel using mip minimizing z; display z.l,z1.l,z2.l