2021 年高教社杯全国大学生数学建模竞赛题目 C 题 生产企业原材料的订购与运输
简单写写模型和思路
某建筑和装饰板材的生产企业所用原材料主要是木质纤维和其他植物素纤维材料, 总体可分为A,B,C三种类型。该企业每年按48周安排生产,需要提前制定24周的原材料订购和转运计划,即根据产能要求确定需要订购的原材料供应商(称为"供应商")和相应每周的原材料订购数量(称为"订货量"),确定第三方物流公司(称为"转运商")并委托其将供应商每周的原材料供货数量(称为"供货量")转运到企业仓库。
该企业每周的产能为2.82万立方米,每立方米产品需消耗A类原材料0.6立方米,或B类原材料0.66立方米,或C类原材料0.72立方米。由于原材料的特殊性,供应商不能保证严格按订货量供货,实际供货量可能多于或少于订货量。为了保证正常生产的需要,该企业要尽可能保持不少于满足两周生产需求的原材料库存量,为此该企业对供应商实际提供的原材料总是全部收购。
在实际转运过程中,原材料会有一定的损耗(损耗量占供货量的百分比称为"损耗率"),转运商实际运送到企业仓库的原材料数量称为"接收量"。每家转运商的运输能力为6000立方米/周。通常情况下,一家供应商每周供应的原材料尽量由一家转运商运输。
原材料的采购成本直接影响到企业的生产效益,实际中A类和B类原材料的采购单价分别比C类原材料高20%和10%。三类原材料运输和储存的单位费用相同。
附件1给出了该企业近5年402家原材料供应商的订货量和供货量数据。附件2给出了8家转运商的运输损耗率数据。请你们团队结合实际情况,对相关数据进行深入分析,研究下列问题:
1.根据附件1,对402家供应商的供货特征进行量化分析,建立反映保障企业生产
重要性的数学模型,在此基础上确定50家最重要的供应商,并在论文中列表给出结果。
2.参考问题1,该企业应至少选择多少家供应商供应原材料才可能满足生产的需求?针对这些供应商,为该企业制定未来 24 周每周最经济的原材料订购方案,并据此制定损耗最少的转运方案。试对订购方案和转运方案的实施效果进行分析。
3.该企业为了压缩生产成本,现计划尽量多地采购 A 类和尽量少地采购 C 类原材料,以减少转运及仓储的成本,同时希望转运商的转运损耗率尽量少。请制定新的订购方案及转运方案,并分析方案的实施效果。
4.该企业通过技术改造已具备了提高产能的潜力。根据现有原材料的供应商和转运商的实际情况,确定该企业每周的产能可以提高多少,并给出未来 24 周的订购和转运方案。
问题一
根据附件1,对402家供应商的供货特征进行量化分析,建立反映保障企业生产
重要性的数学模型,在此基础上确定50家最重要的供应商。
已知:
该企业每周的产能为2.82万立方米,每立方米产品需消耗A类原材料0.6立方米,或B类原材料0.66立方米,或C类原材料0.72立方米。为了保证正常生产的需要,该企业要尽可能保持不少于满足两周生产需求的原材料库存量。
给出了A类B类C类原材料需求。
给出了要保存不少于满足两周的生产需求的原材料库存量
该企业每年按48周安排生产,需要提前制定24周的原材料订购和转运计划。
所以5年为 48 ∗ 5 48*5 48∗5周,划分为 24 ∗ 2 ∗ 5 24*2*5 24∗2∗5次计划分析
确定50家最重要的供应商,首先分析表格发现有好几家有长期交易,那么数学模型得要体现这一点。
数据中还有间断性大量供货交易的情况
建立反映保障企业生产重要性的数学模型。
第一部分为供货天数,第二部分为供货总量,第三部分为紧急供货的部分
分别给予权重为 1:4:5
理由:小数多天的其实没那么重要,真正看重的是供货总量。紧急供货部分提供数量大的对保存生产更为重要。
w i = 0.1 ∗ d a y i + 0.4 ∗ w e i g h t i + 0.5 ∑ j = 1 240 a i j w_i = 0.1 * day_i + 0.4 * weight_i + 0.5 \displaystyle\sum_{j=1}^{240} a_{ij} wi=0.1∗dayi+0.4∗weighti+0.5j=1∑240aij
其中 d a y i day_i dayi为改第 i i i个供应商供货总天数, w e i g h t i weight_i weighti为第 i i i个供应商供货总量, a i j a_{ij} aij为第 i i i个供应商第 j j j周的紧急供货占比
问题二
建立该企业应至少选择多少家供应商供应原材料才可能满足生产的需求模型
设 0 / 1 0/1 0/1变量 f i f_i fi表示选不选第 i i i个供应商
已知变量 t y p e i j , = 1 , 2 , 3 type_{ij} , = 1,2,3 typeij,=1,2,3表示该第 i i i个供应商供不供第 j j j种材料
设整形变量 a i j k a_{ijk} aijk为第 i i i个供应商第 k k k周提供第 j j j种材料的数量(这里直接取表中订货量,已知),因为 a i j k = 0 a_{ijk}=0 aijk=0就是表示不提供所以去除 t y p e type type变量
已知该企业每周的产能为2.82万立方米,每立方米产品需消耗A类原材料0.6立方米,或B类原材料0.66立方米,或C类原材料0.72立方米。设变量 d e p l e t e i deplete_i depletei为该企业每周消耗第 i i i种材料的多少(已知)。
即例如 d e p l e t e A = 0.6 ∗ 2.82 deplete_A = 0.6*2.82 depleteA=0.6∗2.82
min ∑ i = 1 402 f i \min \displaystyle\sum_{i=1}^{402} f_i mini=1∑402fi
{ ∑ i = 1 402 ∑ k ′ = 1 k f i ∗ a i j k ′ ≥ ( k + 2 ) ∗ d e p l e t e j , j = 1 , 2 , 3 , k = 1 , 2...240 \begin{cases} \displaystyle\sum_{i=1}^{402} \displaystyle\sum_{k'=1}^{k} f_i*a_{ijk'} \ge (k+2)*deplete_j ,j=1,2,3 , k = 1,2...240\\ \end{cases} {i=1∑402k′=1∑kfi∗aijk′≥(k+2)∗depletej,j=1,2,3,k=1,2...240
问题二.1
针对这些供应商,为该企业制定未来 24 周每周最经济的原材料订购方案
简单来说就是虽然选择这个供应商,但不一定不需要每周都要它供货
所以现在 f i f_i fi已经已知。
设新变量 b i j k b_{ijk} bijk为为第 i i i个供应商第 k k k周提供第 j j j种材料的实际数量
min ∑ i = 1 402 ∑ j = 1 3 ∑ k = 1 240 f i ∗ b i j k \min \displaystyle\sum_{i=1}^{402}\displaystyle\sum_{j=1}^{3}\displaystyle\sum_{k=1}^{240}f_i*b_{ijk} mini=1∑402j=1∑3k=1∑240fi∗bijk
{ ∑ i = 1 402 ∑ k ′ = 1 k f i ∗ b i j k ′ ≥ ( k + 2 ) ∗ d e p l e t e j , j = 1 , 2 , 3 , k = 1 , 2...240 b i j k ≤ a i , j , k , i = 1 , 2 , . . . , 402 , j = 1 , 2 , 3 , k = 1 , 2...240 \begin{cases} \displaystyle\sum_{i=1}^{402} \displaystyle\sum_{k'=1}^{k} f_i*b_{ijk'} \ge (k+2)*deplete_j ,j=1,2,3 , k = 1,2...240\\ b_{ijk} \le a_{i,j,k} ,i=1,2,...,402,j=1,2,3 , k = 1,2...240 \end{cases} ⎩ ⎨ ⎧i=1∑402k′=1∑kfi∗bijk′≥(k+2)∗depletej,j=1,2,3,k=1,2...240bijk≤ai,j,k,i=1,2,...,402,j=1,2,3,k=1,2...240
但
原材料的采购成本直接影响到企业的生产效益,实际中A类和B类原材料的采购单价分别比C类原材料高20%和10% 。三类原材料运输和储存的单位费用相同。
所以考虑到价格,设C类价格为1单位价格,那么A,B分别为1.2和1.1单位价格
你们新增一个变量 p r i c e j price_j pricej表示为 j j j类原材料价格
模型变为
min ∑ i = 1 402 ∑ j = 1 3 ∑ k = 1 240 f i ∗ b i j k ∗ p r i c e j \min \displaystyle\sum_{i=1}^{402}\displaystyle\sum_{j=1}^{3}\displaystyle\sum_{k=1}^{240}f_i*b_{ijk}*price_j mini=1∑402j=1∑3k=1∑240fi∗bijk∗pricej
{ ∑ i = 1 402 ∑ k ′ = 1 k f i ∗ b i j k ′ ≥ ( k + 2 ) ∗ d e p l e t e j , j = 1 , 2 , 3 , k = 1 , 2...240 b i j k ≤ a i , j , k , i = 1 , 2 , . . . , 402 , j = 1 , 2 , 3 , k = 1 , 2...240 \begin{cases} \displaystyle\sum_{i=1}^{402} \displaystyle\sum_{k'=1}^{k} f_i*b_{ijk'} \ge (k+2)*deplete_j ,j=1,2,3 , k = 1,2...240\\ b{ijk} \le a_{i,j,k} ,i=1,2,...,402,j=1,2,3 , k = 1,2...240 \end{cases} ⎩ ⎨ ⎧i=1∑402k′=1∑kfi∗bijk′≥(k+2)∗depletej,j=1,2,3,k=1,2...240bijk≤ai,j,k,i=1,2,...,402,j=1,2,3,k=1,2...240
问题二.2
并据此制定损耗最少的转运方案。
要知道
根据产能要求确定需要订购的原材料供应商(称为"供应商")和相应每周的原材料订购数量(称为"订货量"),确定第三方物流公司(称为"转运商")并委托其将供应商每周的原材料供货数量(称为"供货量")转运到企业仓库。
在实际转运过程中,原材料会有一定的损耗(损耗量占供货量的百分比称为"损耗率"),转运商实际运送到企业仓库的原材料数量称为"接收量"。每家转运商的运输能力为6000立方米/周 。通常情况下,一家供应商每周供应的原材料尽量由一家转运商运输。
那么简单来讲目标就是损耗最小
设变量 l o s s i j loss_{ij} lossij为第 i i i个转运商第 j j j周的损耗率(%),为已知
首先我们假定一家供应商每周供应的原材料一定 由一家转运商运输。
那么设"0/1"变量 g i j g_{ij} gij为第 i i i家供应商对应第 j j j家转运商
上一问已经求出 b i j k b_{ijk} bijk为已知
min ∑ i = 1 402 ∑ j = 1 8 g i j ∗ ( l o s s j k ∗ ∑ k = 1 240 ∑ l = 1 3 b i l k ) \min \displaystyle\sum_{i=1}^{402}\displaystyle\sum_{j=1}^{8}g_{ij}* (loss_{jk}*\displaystyle\sum_{k=1}^{240}\displaystyle\sum_{l=1}^{3} b_{ilk}) mini=1∑402j=1∑8gij∗(lossjk∗k=1∑240l=1∑3bilk)
{ ∑ i = 1 402 ∑ l = 1 3 g i j ∗ b i l k ≤ 6000 , k = 1 , 2...240 \begin{cases} \displaystyle\sum_{i=1}^{402}\displaystyle\sum_{l=1}^{3} g_{ij}*b_{ilk} \le 6000 , k = 1,2...240\\ \end{cases} {i=1∑402l=1∑3gij∗bilk≤6000,k=1,2...240
那如果首先我们假定一家供应商每周供应的原材料不一定 由一家转运商运输。
那么就把一周的货物分开
设变量 c i j k l c_{ijkl} cijkl为第 i i i个供应商第 k k k周提供第 j j j种材料并且选择第 l l l个转运商转运的实际数量
min ∑ j = 1 8 ∑ k = 1 240 l o s s j k ∗ ( ∑ i = 1 240 ∑ l = 1 3 c i l k j ) \min \displaystyle\sum_{j=1}^{8}\displaystyle\sum_{k=1}^{240} loss_{jk}*(\displaystyle\sum_{i=1}^{240}\displaystyle\sum_{l=1}^{3}c_{ilkj}) minj=1∑8k=1∑240lossjk∗(i=1∑240l=1∑3cilkj)
{ ∑ i = 1 402 ∑ l = 1 3 g i j ∗ b i l k ≤ 6000 , k = 1 , 2...240 ∑ j = 1 3 ∑ l = 1 8 c i j k l = b i j k , i = 1 , 2 , . . . 402 , k = 1 , 2 , . . . 240 \begin{cases} \displaystyle\sum_{i=1}^{402}\displaystyle\sum_{l=1}^{3} g_{ij}*b_{ilk} \le 6000 , k = 1,2...240\\ \displaystyle\sum_{j=1}^{3}\displaystyle\sum_{l=1}^{8} c_{ijkl} = b_{ijk} , i = 1,2,...402,k=1,2,...240 \end{cases} ⎩ ⎨ ⎧i=1∑402l=1∑3gij∗bilk≤6000,k=1,2...240j=1∑3l=1∑8cijkl=bijk,i=1,2,...402,k=1,2,...240
问题三
该企业为了压缩生产成本,现计划尽量多地采购 A 类和尽量少地采购 C 类原材料,以减少转运及仓储的成本,
参考问题二的模型
min ∑ i = 1 402 ∑ j = 1 3 ∑ k = 1 240 f i ∗ b i j k \min \displaystyle\sum_{i=1}^{402}\displaystyle\sum_{j=1}^{3}\displaystyle\sum_{k=1}^{240}f_i*b_{ijk} mini=1∑402j=1∑3k=1∑240fi∗bijk
{ ∑ i = 1 402 ∑ k ′ = 1 k f i ∗ b i j k ′ ≥ ( k + 2 ) ∗ d e p l e t e j , j = 1 , 2 , 3 , k = 1 , 2...240 b i j k ≤ a i , j , k , i = 1 , 2 , . . . , 402 , j = 1 , 2 , 3 , k = 1 , 2...240 \begin{cases} \displaystyle\sum_{i=1}^{402} \displaystyle\sum_{k'=1}^{k} f_i*b_{ijk'} \ge (k+2)*deplete_j ,j=1,2,3 , k = 1,2...240\\ b_{ijk} \le a_{i,j,k} ,i=1,2,...,402,j=1,2,3 , k = 1,2...240 \end{cases} ⎩ ⎨ ⎧i=1∑402k′=1∑kfi∗bijk′≥(k+2)∗depletej,j=1,2,3,k=1,2...240bijk≤ai,j,k,i=1,2,...,402,j=1,2,3,k=1,2...240
要多采购A少采购C,那么给A和C分别来个权重 λ A \lambda_A λA和 λ C \lambda_C λC,当然也要给B分一个权重
权重自行衡量,仅需要 λ A > λ C \lambda_A \gt \lambda_C λA>λC即可
min ∑ i = 1 402 ∑ k = 1 240 f i ∗ ( b i A k ∗ λ A + b i C k ∗ λ C + b i B k ∗ λ B ) \min \displaystyle\sum_{i=1}^{402}\displaystyle\sum_{k=1}^{240}f_i*(b_{iAk}*\lambda_A+b_{iCk}*\lambda_C +b_{iBk}*\lambda_B) mini=1∑402k=1∑240fi∗(biAk∗λA+biCk∗λC+biBk∗λB)
{ ∑ i = 1 402 ∑ k ′ = 1 k f i ∗ b i j k ′ ≥ ( k + 2 ) ∗ d e p l e t e j , j = 1 , 2 , 3 , k = 1 , 2...240 b i j k ≤ a i , j , k , i = 1 , 2 , . . . , 402 , j = 1 , 2 , 3 , k = 1 , 2...240 \begin{cases} \displaystyle\sum_{i=1}^{402} \displaystyle\sum_{k'=1}^{k} f_i*b_{ijk'} \ge (k+2)*deplete_j ,j=1,2,3 , k = 1,2...240\\ b_{ijk} \le a_{i,j,k} ,i=1,2,...,402,j=1,2,3 , k = 1,2...240 \end{cases} ⎩ ⎨ ⎧i=1∑402k′=1∑kfi∗bijk′≥(k+2)∗depletej,j=1,2,3,k=1,2...240bijk≤ai,j,k,i=1,2,...,402,j=1,2,3,k=1,2...240
问题三.1
同时希望转运商的转运损耗率尽量少。请制定新的订购方案及转运方案,并分析方案的实施效果。
和问题二.2做法一模一样即可
此时 b i j k b_{ijk} bijk用刚刚算出来的即可
min ∑ j = 1 8 ∑ k = 1 240 l o s s j k ∗ ( ∑ i = 1 240 ∑ l = 1 3 c i l k j ) \min \displaystyle\sum_{j=1}^{8}\displaystyle\sum_{k=1}^{240} loss_{jk}*(\displaystyle\sum_{i=1}^{240}\displaystyle\sum_{l=1}^{3}c_{ilkj}) minj=1∑8k=1∑240lossjk∗(i=1∑240l=1∑3cilkj)
{ ∑ i = 1 402 ∑ l = 1 3 g i j ∗ b i l k ≤ 6000 , k = 1 , 2...240 ∑ j = 1 3 ∑ l = 1 8 c i j k l = b i j k , i = 1 , 2 , . . . 402 , k = 1 , 2 , . . . 240 \begin{cases} \displaystyle\sum_{i=1}^{402}\displaystyle\sum_{l=1}^{3} g_{ij}*b_{ilk} \le 6000 , k = 1,2...240\\ \displaystyle\sum_{j=1}^{3}\displaystyle\sum_{l=1}^{8} c_{ijkl} = b_{ijk} , i = 1,2,...402,k=1,2,...240 \end{cases} ⎩ ⎨ ⎧i=1∑402l=1∑3gij∗bilk≤6000,k=1,2...240j=1∑3l=1∑8cijkl=bijk,i=1,2,...402,k=1,2,...240
问题四
该企业通过技术改造已具备了提高产能的潜力。根据现有原材料的供应商和转运商的实际情况,确定该企业每周的产能可以提高多少,并给出未来 24 周的订购和转运方案
本来已知
该企业每周的产能为2.82万立方米,每立方米产品需消耗A类原材料0.6立方米,或B类原材料0.66立方米,或C类原材料0.72立方米。
现在改成未知每周的产能为 E \Epsilon E万立方米
所以在问题二中的 d e p l e t e A = 0.6 ∗ 2.82 deplete_A = 0.6*2.82 depleteA=0.6∗2.82改为 d e p l e t e A = 0.6 ∗ E deplete_A = 0.6*\Epsilon depleteA=0.6∗E
min ∑ i = 1 402 f i \min \displaystyle\sum_{i=1}^{402} f_i mini=1∑402fi
{ ∑ i = 1 402 ∑ k ′ = 1 k f i ∗ a i j k ′ ≥ ( k + 2 ) ∗ d e p l e t e j , j = 1 , 2 , 3 , k = 1 , 2...240 \begin{cases} \displaystyle\sum_{i=1}^{402} \displaystyle\sum_{k'=1}^{k} f_i*a_{ijk'} \ge (k+2)*deplete_j ,j=1,2,3 , k = 1,2...240\\ \end{cases} {i=1∑402k′=1∑kfi∗aijk′≥(k+2)∗depletej,j=1,2,3,k=1,2...240
采购
min ∑ i = 1 402 ∑ j = 1 3 ∑ k = 1 240 f i ∗ b i j k \min \displaystyle\sum_{i=1}^{402}\displaystyle\sum_{j=1}^{3}\displaystyle\sum_{k=1}^{240}f_i*b_{ijk} mini=1∑402j=1∑3k=1∑240fi∗bijk
{ ∑ i = 1 402 ∑ k ′ = 1 k f i ∗ b i j k ′ ≥ ( k + 2 ) ∗ d e p l e t e j , j = 1 , 2 , 3 , k = 1 , 2...240 b i j k ≤ a i , j , k , i = 1 , 2 , . . . , 402 , j = 1 , 2 , 3 , k = 1 , 2...240 \begin{cases} \displaystyle\sum_{i=1}^{402} \displaystyle\sum_{k'=1}^{k} f_i*b_{ijk'} \ge (k+2)*deplete_j ,j=1,2,3 , k = 1,2...240\\ b_{ijk} \le a_{i,j,k} ,i=1,2,...,402,j=1,2,3 , k = 1,2...240 \end{cases} ⎩ ⎨ ⎧i=1∑402k′=1∑kfi∗bijk′≥(k+2)∗depletej,j=1,2,3,k=1,2...240bijk≤ai,j,k,i=1,2,...,402,j=1,2,3,k=1,2...240
转运
min ∑ j = 1 8 ∑ k = 1 240 l o s s j k ∗ ( ∑ i = 1 240 ∑ l = 1 3 c i l k j ) \min \displaystyle\sum_{j=1}^{8}\displaystyle\sum_{k=1}^{240} loss_{jk}*(\displaystyle\sum_{i=1}^{240}\displaystyle\sum_{l=1}^{3}c_{ilkj}) minj=1∑8k=1∑240lossjk∗(i=1∑240l=1∑3cilkj)
{ ∑ i = 1 402 ∑ l = 1 3 g i j ∗ b i l k ≤ 6000 , k = 1 , 2...240 ∑ j = 1 3 ∑ l = 1 8 c i j k l = b i j k , i = 1 , 2 , . . . 402 , k = 1 , 2 , . . . 240 \begin{cases} \displaystyle\sum_{i=1}^{402}\displaystyle\sum_{l=1}^{3} g_{ij}*b_{ilk} \le 6000 , k = 1,2...240\\ \displaystyle\sum_{j=1}^{3}\displaystyle\sum_{l=1}^{8} c_{ijkl} = b_{ijk} , i = 1,2,...402,k=1,2,...240 \end{cases} ⎩ ⎨ ⎧i=1∑402l=1∑3gij∗bilk≤6000,k=1,2...240j=1∑3l=1∑8cijkl=bijk,i=1,2,...402,k=1,2,...240
把上面的模型合并一下
思路:
设送货为 b b b
实际上就是最终能送到的货物量 C = ( 1 − l o s s ) ∗ b C = (1-loss) * b C=(1−loss)∗b
也就说送货减去损失的货物为实际货物
那么实际货物满足需求即可
∑ i = 1 402 ∑ k ′ = 1 k C ≥ ( k + 2 ) ∗ d e p l e t e j , j = 1 , 2 , 3 , k = 1 , 2...240 \displaystyle\sum_{i=1}^{402} \displaystyle\sum_{k'=1}^{k} C \ge (k+2)*deplete_j ,j=1,2,3 , k = 1,2...240 i=1∑402k′=1∑kC≥(k+2)∗depletej,j=1,2,3,k=1,2...240
具体模型就不写了