钢管订购和运输问题一代码和结果
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
function f=result(t)
%求解问题1
tic;
x0=zeros(8,15);vlb=zeros(8,15);
m=zeros(1,7);
s=[800 800 1000 2000 2000 2000 3000];
s(t)=s(t)-50;
N=[1 1 1 0 1 1 0];
%每公里钢管从Si到达Ai站点的最小费用
C=[ ;
;
;
;
;
;
];
options=optimset('LargeScale','off','Algorithm' ,'active-set','MaxFunEvals' ,50000);%,'Tolx',;
[x,f]=fmincon('myfun',x0,[],[],[],[],vlb,[],'mycon',options,C,N,s);
for i=1:7
for j=1:15
m(i)=m(i)+N(i)*x(i,j);
end
end
x,m,f;
b=(f-1278600)/1278600*(s(t)+50)/50
toc
function f=myfun(XX,C,N,s)
%问题1的目标函数
x=XX(1:7,1:15);
rl=XX(8,1:15);
L=[104 301 750 606 194 205 201 680 480 300 220 210 420 500];
f=0;
for i=1:7
for j=1:15
f=f+N(i)*x(i,j)*C(i,j);%运输费和成本费
end
end
for i=1:14
f=f+(rl(i)*(rl(i)+1)/2+(L(i)-rl(i))*(L(i)-rl(i)+1)/2)*;%铺设时的运输费end
f
function [c,ceq]=mycon(XX,C,N,s)
%问题1的约束条件
x=XX(1:7,1:15);
rl=XX(8,1:15);
L=[104 301 750 606 194 205 201 680 480 300 220 210 420 500];
m=zeros(1,7);
a=zeros(1,15);
cc=0;
for i=1:7
for j=1:15
m(i)=m(i)+N(i)*x(i,j);
end
c(i)=m(i)-s(i);
cc=cc+m(i);
end
for i=1:14
c(i+7)=rl(i)-L(i);
end
for i=2:14
for j=1:7
a(i)=a(i)+N(j)*x(j,i);
end
ceq(i-1)=a(i)-rl(i)+rl(i-1)-L(i-1);
end
t1=0;t2=0;
for i=1:7
t1=t1+N(i)*x(i,1);
t2=t2+N(i)*x(i,15);
end
ceq(14)=t1-rl(1);
ceq(15)=rl(15);
ceq(16)=cc-5171;
结果:
表一 i S 到i A 的最小费用(单位:万元/单位)
1S 2S 3S 4S 5S 6S 7S
1A 2A
3A
4A
5A 38
11
1 121 156
14
6 15
6 166 6A 7A 86 96 131
12
1 13
1 141 8A 9A 10
A
92
14
2 82
62
57
62
76
11
A 96
146
86 51 33 51 66
表二 各厂的生产量及总费用(生产量可小于500)(单位:单位 、万元)
6
表三 各厂的生产量及总费用(单位:单位 、万元)
6
6
表四 问题一订购和运输方案(不足1km 的按整数计)(单位:单位 、万元)。