sets:
A/1..7/:d,e,m;
B/1..12/;
C/1..25/;
F/1..16/;
links(A,B):x;
link(A,C):y;
lin(A,F):z;
endsets
@for(B(j):@sum(A(i)|i#GE#1#and#i#le#7:x(i,j))<=4);
@for(C(j):@sum(A(i)|i#GE#1#and#i#le#7:y(i,j))<=5);
d(i)=x(i,1)+x(i,2)+x(i,3)+x(i,4)+x(i,5)+x(i,6)+x(i,7)+x(i,8)+x(i,9)+x(i,10)+x(i,11)+x(i,12);
e(i)=y(i,1)+y(i,2)+y(i,3)+y(i,4)+y(i,5)+y(i,6)+y(i,7)+y(i,8)+y(i,9)+y(i,10)+y(i,11)+y(i,12)+y(i,13)+y(i,14)+y(i,15)+y(i,16)+y(i,17)+y(i,18)+y(i,19)+y(i,20)+y(i,21)+y(i,22)+y(i,23)+y(i,24)+y(i,25);
m(i)=750*z(i,1)+1250*z(i,2)+1000*z(i,3)+700*z(i,4)+600*z(i,5)+600*z(i,6)+650*z(i,7)+550*z(i,8)+430*z(i,9)+530*z(i,10)+480*z(i,11)+480*z(i,12)+390*z(i,13)+490*z(i,14)+240*z(i,15)+340*z(i,16);
max=m(1)+m(2)+m(3)+m(4)+m(5)+m(6)+m(7);
z(i,1)+z(i,2)+z(i,3)+z(i,4)<=d(i);
z(i,5)+z(i,6)+z(i,7)+z(i,8)<=e(i);
z(i,9)+z(i,10)+z(i,11)+z(i,12)<=17;
z(i,13)+z(i,14)+z(i,15)+z(i,16)<=10;
z(i,1)<=3;
z(i,2)>=2;
z(i,3)>=2;
z(i,4)>=1;
z(i,1)+z(i,5)+z(i,9)+z(i,13)<=17;
z(i,2)>=2;
z(i,2)<=5;
z(i,6)>=2;
z(i,10)>=2;
z(i,14)>=1;
z(i,2)+z(i,6)+z(i,10)+z(i,14)<=20;
z(i,3)=2;
z(i,7)>=2;
z(i,11)>=2;
z(i,15)>=1;
z(i,3)+z(i,7)+z(i,11)+z(i,15)<=15;
z(i,4)>=1;
z(i,4)<=2;
z(i,8)>=2;
z(i,8)<=8;
z(i,12)>=1;
z(i,16)=0;
z(i,4)+z(i,8)+z(i,12)+z(i,16)<=18;
@for(links:@bin(x));
@for(link:@bin(y));
个人觉得还是下标设的有问题,但是不太会弄,麻烦了!
|