返回首页

数学建模 复合肥生产

来源:www.ahlulin.com   时间:2023-01-19 09:32   点击:60  编辑:冉梦   手机版

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

还是自己做吧!

顶一下
(0)
0%
踩一下
(0)
0%