目录标题
问题重述
某企业每年以 48 周安排生产 A,B,C 三种原材料,需提前制定 24 周的订 购和转运计划。
已知该企业每周的产能为 2.82 万立方米,单位立方米产品需消 耗 A 或 B 或 C 类原材料的量分别为 0.6、0.66、0.72 立方米;
每家转运商的运 输能力为 6000 立方米/周;A、B、C 类原材料采购单价之比为 1.2:1.1:1,且产 生的单位运输和储存费用相同。
实际生产中,要求尽可能保持不少于满足两周 生产需求的原材料库存量,该企业对供应商提供的原材料全部收购,且通常一 家供应商每周供应的原材料尽量由一家转运商运输。据此,需建立数学模型解 决以下问题:
问题一:已知该企业近 5 年 402 家原材料供应商的订货量和供应量数据, 要求量化分析其供货特征,建立保障企业生产重要性的数学模型,并挑选出 50 家最重要的供应商。
问题二:在问题一的基础上确定满足生产需求的最少供应商数量,针对这 些供应商,为企业制定未来 24 周每周最经济的原材料订购方案。已知近 5 年 8 家转运商的运输损耗率数据,进一步给出损耗最少的转运方案,并分析订购方 案和转运方案的实施效果。
问题三:为该企业制定尽量多地采购 A 类和尽量少地采购 C 类原材料的订 购及转运方案,同时保证转运损耗率尽量少,并分析其实施效果。
问题四:根据现有供应商和转运商的情况,求取该企业每周的潜在产能提 高量,并确定未来 24 周的订购和转运方案。
论文摘要
本文以 TOPSIS 法、马尔科夫预测和目标规划理论为基础,分别建立最少供应商 模型、最经济订购模型、最小损耗转运模型、压缩生产成本的订购转运模型和产能提 高模型,为企业制定不同条件下的订购方案及转运方案。
针对问题一,首先对供应商的供货特征进行量化分析,提炼了交付率、交付率大 于 1 的次数、总供货量三个指标,构建衡量企业生产重要性的指标体系。在此基础 上,利用熵权法求出三个指标的权重,然后用 TOPSIS 方法量化供应商的重要性,根 据综合得分值的大小确定 50 家最重要的供应商,其中 A、B、C 三类供应商数量分别 为 14、16、20 家。
针对问题二,可将未来 24 周视为 24 个互相联系的阶段,考虑到每个阶段决策的 选取具有马尔科夫性,且依赖于交付率的动态变化,故选择马尔科夫预测模型对交付 率的波动情况进行预测;
然后,以供应商数量最少为目标函数,以满足生产的库存 量,供应商每周供货量不多于运输上限 6000 立方米,不多于其 240 周内的供货量的最 大值为约束条件,建立了确定最少供应商的 0-1 整数规划模型,得到最少供应商数量 为 30 家。
在此基础上,将目标函数变为使原材料总订购费用最少,建立最经济订购模 型,得到每周的订购方案。进一步以运输的损耗量最小为目标函数,以转运商每周运 输上限及一家供应商供应的原材料由一家转运商运输为约束条件,建立最小损耗转运 模型,得到每家转运商的转运方案,且平均损耗率为 0.665。最后,以制定方案的目标 来判断该方案是否可行,结果表明两种方案的制定均可行。
针对问题三,将尽量多地采购 A 和尽量少地采购 C 转化为储存原材料的体积最 小,结合转运原材料损耗量最少这一目标,建立压缩生产成本的双目标规划模型,通 过加权求和将双目标规划转化为单目标规划,最终得到该条件下的订购、转运方案, 平均损耗率为 0.665。与问题二效果分析方法类似,得到两种方案的制定均可行。
针对问题四,由于每家供应商供货量的上限直接决定产能能力,因此以每周供应 商供货量与损耗量之差最大为目标,以转运上限和一家供应商提供的原材料由一家转 运商转运为约束条件建立产能提高模型,计算出企业每周的最大产能量,剔除部分异 常数据后取平均得到最终产能增加量为 0.63 万立方米,同时得到新的订购和转运计 划。最后,对模型中运用的方法进行优缺点评价和改进,并考虑了实际应用中的推 广。
关键词:TOPSIS 法 马尔科夫预测 目标规划 订购转运计划
代码
附录:主要代码
2.1 第一题马尔可夫预测模型(matlab)
%计算马尔可夫状态转移矩阵
a1=xlsread('C:\Users\zh128\Desktop\Data\第一问.xlsx',2,'A2:A403');
a2=xlsread('C:\Users\zh128\Desktop\Data\第一问.xlsx',2,'C2:C403');
a3=xlsread('C:\Users\zh128\Desktop\Data\第一问.xlsx',2,'D2:D403');
y=linspace(0,0,402);
z=linspace(0,0,402);
b=linspace(0,0,402);
for i = 1:402
x=sqrt((1-a1(i,1))^2+(1-a2(i,1))^2+(1-a3(i,1))^2);
y(1,i)=x;
end
xlswrite('C:\Users\zh128\Desktop\Data\第一问.xlsx',y',2,'E2:E403')
for i = 1:402
x=sqrt((0-a1(i,1))^2+(0-a2(i,1))^2+(0-a3(i,1))^2);
z(1,i)=x;
end
xlswrite('C:\Users\zh128\Desktop\Data\第一问.xlsx',z',2,'F2:F403')
b = z./(z+y);
%计算综合评价得分
a1=xlsread('C:\Users\zh128\Desktop\Data\第一问.xlsx',2,'A2:A403');
a2=xlsread('C:\Users\zh128\Desktop\Data\第一问.xlsx',2,'C2:A403');
a3=xlsread('C:\Users\zh128\Desktop\Data\第一问.xlsx',2,'D2:A403');
y1=linspace(0,0,402);
y2=linspace(0,0,402);
y3=linspace(0,0,402);
sum1=0;
sum2=0;
sum3=0;
for i = 1:402
sum1=a1(i,1)+sum1;
sum2=a2(i,1)+sum2;
sum3=a3(i,1)+sum3;
end
for i = 1:402
x1=a1/sum1;
y1(1,i)=x1;
x2=a1/sum2;
y2(1,i)=x2;
x3=a1/sum3;
y3(1,i)=x3;
end
sum=0;
for i = 1:402
z1=y1(1,i)*log(y1(1,i));
sum=z1+sum;
e1=sum*(1/log(i))*(-1);
y1(1,i)=1-e1;
end
sum1=0;
sum2=0;
sum3=0;
for i = 1:402
sum1=y1(1,i)+sum1;
% sum2=a2(i,1)+sum2;
% sum3=a3(i,1)+sum3;
end
for i = 1:402
y1(1,)
% sum2=a2(i,1)+sum2;
% sum3=a3(i,1)+sum3;
end
xlswrite('C:\Users\zh128\Desktop\Data\第一问.xlsx',z',2,'F2:F403')
%计算马尔可夫概率矩阵
a1=xlsread('C:\Users\zh128\Desktop\Data\交付率状态.xlsx','Sheet1','C2:IH403');
x50=xlsread('C:\Users\zh128\Desktop\Data\第二问.xlsx','Sheet2','A2:A51');
g00=linspace(0,0,402);
g01=linspace(0,0,402);
g11=linspace(0,0,402);
g10=linspace(0,0,402);
p12=zeros(50,24);
%初始化
b1=0;
b2=0;
%计算转移参数出现的频数
for j = 1:402
b1 = a1(j,1);
f00=0;
f01=0;
f11=0;
f10=0;
for i = 2:240
b2=a1(j,i);
%设置表格中空值为3,因而要跳过空值影响
if b1==3
b1=a1(j,i);
continue;
end
if b2==3
continue;
end
if b1==1&&b2==1
f11=f11+1;
b1=b2;
end
if b1==1&&b2==0
f10=f10+1;
b1=b2;
end
if b1==0&&b2==1
f01=f01+1;
b1=b2;
end
if b1==0&&b2==0
f00=f00+1;
b1=b2;
end
end
g00(1,j)=f00;
g01(1,j)=f01;
g10(1,j)=f10;
g11(1,j)=f11;
end
%计算转移频率
g00=g00./(g00+g01);
g01=g01./(g00+g01);
g10=g10./(g10+g11);
g11=g11./(g10+g11);
for j = 1:50
i=x50(j,1);
p0=[0 1];
p=[g00(1,i) g01(1,i);g01(1,i) g11(1,i)

最低0.47元/天 解锁文章
8万+





