Sets i departments /1*3/ t periods /1,2/; Alias(i,j); Parameters lx(i) Length /1 20, 2 20, 3 20/ ly(i) Width /1 10, 2 20, 3 10/ ax(i) Input-X /1 0, 2 0, 3 5/ ay(i) Input-Y /1 -5, 2 10, 3 5/ bx(i) Output-X /1 0, 2 -10, 3 0/ by(i) Output-Y /1 5, 2 0, 3 -5/ RRF(i) /1 5, 2 5, 3 0/ RoV(i) /1 1, 2 1, 3 1/ ReV(i) /1 1, 2 1, 3 1/; Table Vol(i,j,t) Material flow 1 2 1.2 150 15 1.3 50 400 2.1 100 20 2.3 20 250 3.1 50 350 3.2 600 100; Table FR(i,j) 1 2 3 1 3 1 2 3 0 3 1 0; Scalar Eta Speed(sec_m) /5/ MC Handling cost /10/ Len Length of plant /150/ Wid Width of plant /100/ TOS Ocuupied Area /800/ MM1 Big coefficient /1000/ MM2 Big coefficient /1000/ MM3 Big coefficient /20000/ MM4 Big coefficient /1000/ MM5 Big Coefficient /1000/; Variables ZZ1; Positive Variables x, y, l, w, cx, cy, Ox, Oy, R, Teta, DmaxF, VF, VxF, VyF, Dis, D; Binary Variables Left, Below, re, ro, hv, O1, O2, O3, O4, a3, a4; execseed = 1e8*(frac(jnow)); loop(i, loop(t, x.l(i,t) = uniform(1,10); y.l(i,t) = uniform(1,10); ); ); Equations Obj1 Con9a(i,t) Con9b(i,t) Con9c(i,t) Con9d(i,t) Con10(i,t) Con11(i,t) Con12a(i,t) Con12b(i,t) Con12c(i,t) Con13a(i,t) Con13b(i,t) Con14a(i,j,t) Con14b(i,j,t) Con14c(i,j,t) Con14d(i,j,t) Con14e(i,j,t) Con15a(i,t) Con15b(i,t) Con15c(i,t) Con15d(i,t) Con16a(i,t) Con16b(i,t) Con16c(i,t) Con16d(i,t) Con17(i,t) Con18a(i,j,t) Con18b(i,j,t) Con19b(i,j,t) Con22a(i,j,t) Con22b(i,j,t) Con23(i,j,t) Con24c(i,j,t) Con24d(i,j,t) Con24f(i,j,t); Obj1 .. ZZ1 =e= sum((i,j,t)$(ord(j)>ord(i)), MC*Vol(i,j,t)*D(i,j,t)) + sum((i,t)$(ord(t)>1), RRF(i)*re(i,t) + ReV(i)*R(i,t-1,t)) + sum((i,t)$(ord(t)>1), RRF(i)*ro(i,t)*(1-re(i,t)) + RoV(i)*ro(i,t)) + sum((i,j,t), VF(i,j,t)); Con9a(i,t)$(ord(t)>1) .. x(i,t)-x(i,t-1) =l= MM1*re(i,t); Con9b(i,t)$(ord(t)>1) .. x(i,t-1)-x(i,t) =l= MM1*re(i,t); Con9c(i,t)$(ord(t)>1) .. y(i,t)-y(i,t-1) =l= MM1*re(i,t); Con9d(i,t)$(ord(t)>1) .. y(i,t-1)-y(i,t) =l= MM1*re(i,t); Con10(i,t) .. O1(i,t)+O2(i,t)+O3(i,t)+O4(i,t) =e= 1; Con11(i,t) .. O2(i,t)+O4(i,t) =e= hv(i,t); Con12a(i,t) .. Teta(i,t) =e= O1(i,t)+2*O2(i,t)+3*O3(i,t)+4*O4(i,t); Con12b(i,t)$(ord(t)>1) .. Teta(i,t)-Teta(i,t-1) =l= MM2*ro(i,t); Con12c(i,t)$(ord(t)>1) .. Teta(i,t-1)-Teta(i,t) =l= MM2*ro(i,t); Con13a(i,t) .. l(i,t) =e= lx(i)*(1-hv(i,t))+ly(i)*hv(i,t); Con13b(i,t) .. w(i,t) =e= lx(i)*hv(i,t)+ly(i)*(1-hv(i,t)); Con14a(i,j,t)$(ord(j)<>ord(i)) .. x(i,t)-x(j,t)+Len*(1-Left(j,i,t)) =g= (l(i,t)+l(j,t))/2; Con14b(i,j,t)$(ord(j)<>ord(i)) .. y(i,t)-y(j,t)+Wid*(1-Below(j,i,t)) =g= (w(i,t)+w(j,t))/2; Con14c(i,j,t)$(ord(j)<>ord(i)) .. Left(i,j,t)+Left(j,i,t)+Below(i,j,t)+Below(j,i,t) =g= 1; Con14d(i,j,t)$(ord(j)<>ord(i)) .. Left(i,j,t)+Left(j,i,t) =l= 1; Con14e(i,j,t)$(ord(j)<>ord(i)) .. Below(i,j,t)+Below(j,i,t) =l= 1; Con15a(i,t) .. x(i,t)-0.5*l(i,t) =g= 0; Con15b(i,t) .. x(i,t)+0.5*l(i,t) =l= Len; Con15c(i,t) .. y(i,t)-0.5*w(i,t) =g= 0; Con15d(i,t) .. y(i,t)+0.5*w(i,t) =l= Wid; Con16a(i,t) .. cx(i,t) =e= x(i,t)+(O1(i,t)-O3(i,t))*ax(i)+(O2(i,t)-O4(i,t))*ay(i); Con16b(i,t) .. cy(i,t) =e= y(i,t)+(O2(i,t)-O4(i,t))*ax(i)+(O1(i,t)-O3(i,t))*ay(i); Con16c(i,t) .. Ox(i,t) =e= x(i,t)+(O1(i,t)-O3(i,t))*bx(i)+(O2(i,t)-O4(i,t))*by(i); Con16d(i,t) .. Oy(i,t) =e= y(i,t)+(O2(i,t)-O4(i,t))*bx(i)+(O1(i,t)-O3(i,t))*by(i); Con17(i,t)$(ord(t)>1) .. R(i,t-1,t) =e= abs(x(i,t)-x(i,t-1))+abs(y(i,t)-y(i,t-1)); Con18a(i,j,t)$(ord(j)<>ord(i)) .. D(i,j,t) =e= abs(Ox(i,t)-cx(j,t))+abs(Oy(i,t)-cy(j,t)); Con18b(i,j,t)$(ord(j)<>ord(i)) .. Dis(i,j,t) =e= sqrt(sqr(x(i,t)-x(j,t))+sqr(y(i,t)-y(j,t))); Con19b(i,j,t) .. DmaxF(t) =g= Dis(i,j,t); Con22a(i,j,t)$((ord(j)>ord(i)) and FR(i,j)<>0) .. VxF(i,j,t) =g= 1-(abs(x(i,t)-x(j,t))/((FR(i,j)*DmaxF(t))/6)); Con22b(i,j,t)$((ord(j)>ord(i)) and FR(i,j)<>0) .. VyF(i,j,t) =g= 1-(abs(y(i,t)-y(j,t))/((FR(i,j)*DmaxF(t))/6)); Con23(i,j,t)$((card(j)>card(i)) and FR(i,j)=0) .. VxF(i,j,t)+VyF(i,j,t) =e= 0; Con24c(i,j,t)$(ord(j)>ord(i)) .. VF(i,j,t) =g= VxF(i,j,t)-MM4*a3(i,j,t); Con24d(i,j,t)$(ord(j)>ord(i)) .. VF(i,j,t) =g= VyF(i,j,t)-MM4*a4(i,j,t); Con24f(i,j,t)$(ord(j)>ord(i)) .. a3(i,j,t)+a4(i,j,t) =e= 1; Model First /Obj1, Con9a, Con9b, Con9c, Con9d, Con10, Con11, Con12a, Con12b, Con12c, Con13a, Con13b, Con14a, Con14b, Con14c, Con14d, Con14e, Con15a, Con15b, Con15c, Con15d, Con16a, Con16b, Con16c, Con16d, Con17, Con18a, Con18b, Con19b, Con22a, Con22b, Con23, Con24c, Con24d, Con24f/; Option MINLP=BonMin, limrow=100, limcol=100; Solve First using MINLP min ZZ1; Display ZZ1.l, x.l, y.l, l.l, w.l, R.l, Teta.l, DmaxF.l, Dis.l, Below.l, Left.l, re.l, ro.l, hv.l, O1.l, O2.l, O3.l, O4.l, VxF.l, VyF.l, VF.l, a3.l, a4.l;