Sets: SI/1..5/:s; SJ/1..4/:c; SK/1..4/:q,u; link1(SI,SJ):x,a,tij; link2(SJ,SK):y,b,tjk; endsets data: s=180,140,120,140,120; q=200,160,220,80; u=0.75,0.75,0.75,0.75; capij=200; capjk=100; tij=0.56 12.22 7.97 3.33 13.33 0.89 3.33 7.28 4.11 12.44 1.28 15.11 6.78 3.6 12.22 1.11 14.33 10.44 4.56 14.44; tjk=1.6 2.34 3.4 2.7 2 1.2 1.4 4 3.5 3 1.3 5.2 2 2.8 3.4 4.4; enddata min=@smax((tij(i,j)+tjk(j,k))*c(j));
@sum(SI(i): @sum(SJ(j): x(i,j)*a(i,j)))=@sum(SJ(j):@sum(SK(k):y(j,k)*b(j,k))); #Index variables may not share names with other variables#
@for(SJ(j): @sum(SI(i): x(i,j)*a(i,j))=@sum(SK(k):y(j,k)*b(j,k)));
@for(SI(i): @sum( SJ(j):x(i,j)*a(i,j))<=s(i));
@for(SJ(j): @sum(SK(k):b(j,k))=c(j)); @for(SJ(j): @sum(SI(i):a(i,j))=c(j));
@for(SI(i):@for(SJ(j):x(i,j)*a(i,j)<=capij)); @for(SJ(j):@for(SK(k):y(j,k)*b(j,k)<=capjk));
@for(link1(i,j):@bin(a)); @for(link2(j,k):@bin(b)); @for(SJ(j):c(j)=a(i,j)*b(j,k));
@for(SK(k):@sum(SJ(j):y(j,k)*b(j,k))/q(k)>=u(k));
@for(SI(i):@for(SJ(j):x(i,j)>=0)); @for(SJ(j):@for(SK(k):y(j,k)>=0)); end
|