model:
sets:
shijian/1..6/;
feiliao/1..5/:t;
link(shijian,feiliao):y,x,m;
endsets
data:
m=1650 1800 1950 1650 1725
1950 1950 1650 1350 1725
1650 2100 1950 1500 1425
1800 1650 1800 1800 1875
1500 1800 2250 1650 1575
1350 1500 2100 1200 2025;
t=0.088 0.061 0.020 0.042 0.050;
enddata
!目标函数;
max=@sum(link:2250*y-m*x)-75*(30*500+
@sum(feiliao(j):x(1,j)-y(1,j))+
@sum(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#2:x(i,j)-y(i,j)))+
@sum(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#3:x(i,j)-y(i,j)))+
@sum(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#4:x(i,j)-y(i,j)))+
@sum(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#5:x(i,j)-y(i,j))));
!加工能力约束;
@for(shijian(i):
@sum(feiliao(j)|j#ge#1#and#j#le#2:y(i,j))<=200);
@for(shijian(i):
@sum(feiliao(j)|j#ge#3#and#j#le#5:y(i,j))<=250);
!储存量约束;
@for(feiliao(j):x(1,j)-y(1,j)<=500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#2:x(i,j)-y(i,j))<=500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#3:x(i,j)-y(i,j))<=500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#4:x(i,j)-y(i,j))<=500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#5:x(i,j)-y(i,j))<=500);
@for(feiliao(j):x(1,j)-y(1,j)+500>=0);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#2:x(i,j)-y(i,j))>=-500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#3:x(i,j)-y(i,j))>=-500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#4:x(i,j)-y(i,j))>=-500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#5:x(i,j)-y(i,j))>=-500);
!杂质含量约束;
@sum(feiliao(j):y(1,j)*t(j))>0.03*@sum(feiliao(j):y(1,j));
@sum(feiliao(j):y(2,j)*t(j))>0.03*@sum(feiliao(j):y(2,j));
@sum(feiliao(j):y(3,j)*t(j))>0.03*@sum(feiliao(j):y(3,j));
@sum(feiliao(j):y(4,j)*t(j))>0.03*@sum(feiliao(j):y(4,j));
@sum(feiliao(j):y(5,j)*t(j))>0.03*@sum(feiliao(j):y(5,j));
@sum(feiliao(j):y(6,j)*t(j))>0.03*@sum(feiliao(j):y(6,j));
@sum(feiliao(j):y(1,j)*t(j))<0.06*@sum(feiliao(j):y(1,j));
@sum(feiliao(j):y(2,j)*t(j))<0.06*@sum(feiliao(j):y(2,j));
@sum(feiliao(j):y(3,j)*t(j))<0.06*@sum(feiliao(j):y(3,j));
@sum(feiliao(j):y(4,j)*t(j))<0.06*@sum(feiliao(j):y(4,j));
@sum(feiliao(j):y(5,j)*t(j))<0.06*@sum(feiliao(j):y(5,j));
@sum(feiliao(j):y(6,j)*t(j))<0.06*@sum(feiliao(j):y(6,j));
!月末余量约束;
@sum(shijian(i):x(i,1)-y(i,1))=0;
@sum(shijian(i):x(i,2)-y(i,2))=0;
@sum(shijian(i):x(i,3)-y(i,3))=0;
@sum(shijian(i):x(i,4)-y(i,4))=0;
@sum(shijian(i):x(i,5)-y(i,5))=0;
!复合肥基本条件;
@for(shijian(i):
@sum(feiliao(j)|j#ge#1#and#j#le#2:y(i,j))>0.0005);
@for(shijian(i):
@sum(feiliao(j)|j#ge#3#and#j#le#5:y(i,j))>0.0005);
end
第二问:
model:
sets:
shijian/1..6/;
feiliao/1..5/:t,m1;
link(shijian,feiliao):y,x;
endsets
data:
m1=1650 1800 1950 1650 1725;
t=0.088,0.061,0.020,0.042,0.050;
r=?;
enddata
!目标函数;
max=@sum(link:2250*y)-@sum(feiliao(j):m1(j)*x(1,j))-
(1950*(1+r/100)*x(2,1)+1950*(1+r/100)*x(2,2)+1650*(1+2*r/100)*x(2,3)+1350*(1+2*r/100)*x(2,4)+1725*(1+2*r/100)*x(2,5)+
1650*(1+2*r/100)*x(3,1)+2100*(1+2*r/100)*x(3,2)+1950*(1+4*r/100)*x(3,3)+1500*(1+4*r/100)*x(3,4)+1425*(1+4*r/100)*x(3,5)+
1800*(1+4*r/100)*x(4,1)+1650*(1+4*r/100)*x(4,2)+1800*(1+8*r/100)*x(4,3)+1800*(1+8*r/100)*x(4,4)+1875*(1+8*r/100)*x(4,5)+
1500*(1+8*r/100)*x(5,1)+1800*(1+8*r/100)*x(5,2)+2250*(1+16*r/100)*x(5,3)+1650*(1+16*r/100)*x(5,4)+1575*(1+16*r/100)*x(5,5)+
1350*(1+16*r/100)*x(6,1)+1500*(1+16*r/100)*x(6,2)+2100*(1+32*r/100)*x(6,3)+1200*(1+32*r/100)*x(6,4)+2025*(1+32*r/100)*x(6,5)
)-75*(30*500+
@sum(feiliao(j):x(1,j)-y(1,j))+
@sum(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#2:x(i,j)-y(i,j)))+
@sum(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#3:x(i,j)-y(i,j)))+
@sum(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#4:x(i,j)-y(i,j)))+
@sum(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#5:x(i,j)-y(i,j))));
!加工能力约束;
@for(shijian(i):
@sum(feiliao(j)|j#ge#1#and#j#le#2:y(i,j))<=200);
@for(shijian(i):
@sum(feiliao(j)|j#ge#3#and#j#le#5:y(i,j))<=250);
!储存量约束;
@for(feiliao(j):x(1,j)-y(1,j)<=500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#2:x(i,j)-y(i,j))<=500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#3:x(i,j)-y(i,j))<=500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#4:x(i,j)-y(i,j))<=500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#5:x(i,j)-y(i,j))<=500);
@for(feiliao(j):x(1,j)-y(1,j)+500>=0);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#2:x(i,j)-y(i,j))>=-500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#3:x(i,j)-y(i,j))>=-500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#4:x(i,j)-y(i,j))>=-500);
@for(feiliao(j):@sum(shijian(i)|i#ge#1#and#i#le#5:x(i,j)-y(i,j))>=-500);
!杂质含量约束;
@sum(feiliao(j):y(1,j)*t(j))>0.03*@sum(feiliao(j):y(1,j));
@sum(feiliao(j):y(2,j)*t(j))>0.03*@sum(feiliao(j):y(2,j));
@sum(feiliao(j):y(3,j)*t(j))>0.03*@sum(feiliao(j):y(3,j));
@sum(feiliao(j):y(4,j)*t(j))>0.03*@sum(feiliao(j):y(4,j));
@sum(feiliao(j):y(5,j)*t(j))>0.03*@sum(feiliao(j):y(5,j));
@sum(feiliao(j):y(6,j)*t(j))>0.03*@sum(feiliao(j):y(6,j));
@sum(feiliao(j):y(1,j)*t(j))<0.06*@sum(feiliao(j):y(1,j));
@sum(feiliao(j):y(2,j)*t(j))<0.06*@sum(feiliao(j):y(2,j));
@sum(feiliao(j):y(3,j)*t(j))<0.06*@sum(feiliao(j):y(3,j));
@sum(feiliao(j):y(4,j)*t(j))<0.06*@sum(feiliao(j):y(4,j));
@sum(feiliao(j):y(5,j)*t(j))<0.06*@sum(feiliao(j):y(5,j));
@sum(feiliao(j):y(6,j)*t(j))<0.06*@sum(feiliao(j):y(6,j));
!月末余量约束;
@sum(shijian(i):x(i,1)-y(i,1))=0;
@sum(shijian(i):x(i,2)-y(i,2))=0;
@sum(shijian(i):x(i,3)-y(i,3))=0;
@sum(shijian(i):x(i,4)-y(i,4))=0;
@sum(shijian(i):x(i,5)-y(i,5))=0;
!复合肥基本条件;
@for(shijian(i):
@sum(feiliao(j)|j#ge#1#and#j#le#2:y(i,j))>0.0005);
@for(shijian(i):
@sum(feiliao(j)|j#ge#3#and#j#le#5:y(i,j))>0.0005);
end
还是自己做吧!