2022年全国大学生数学建模竞赛E题目-小批量物料生产安排详解+思路+Python代码时序预测模型(四)

简介: 2022年全国大学生数学建模竞赛E题目-小批量物料生产安排详解+思路+Python代码时序预测模型(四)

前言


我们直接开始主题吧,这篇文章直接解决第二问和第三问,将所有思路和做法都提供给各位参考!!!


实在太累了这几天都是2点睡觉啊喂,思路都是开源没收一分钱!!只希望各位以后遇到建模比赛可以艾特认识一下我,我可以提供免费的思路和部分源码,最近CSDN上也有很多活动和比赛可以带着大家做一做,有兴趣的小伙伴加我微信就好了。好了时间紧迫我们立即开始!


一、问题一再梳理


根据我的前三篇思路和部门代码,都讲解的非常清楚了,给的思路也十分清晰。我们根据不同的指标确定了相应的权重,经过权重计算得到了相应的分值从而挑选出前六个物料编码。我们根据思维导图梳理一下:


7588406ac24942508963acd4b6ee7768.jpg


那么如果我们顺利的完成了问题一,手下就应该有如下资源:


  • 周时序预测模型以及公式
  • 1-177周六种物料需求数据集
  • 第二问给出的物料第 101~110 周的生产计划、实际需求、库存、缺货量及服务水平


二、问题二具体思路


1.题意理解


根据第二题题意分析,我们得到需要我们设计一种制定生产计划的方法,使得平均服务水平不低于 85%。从第 101 周开始,在每周初,制定本周的 物料生产计划,安排生产,直至第 177 周为止。


假设:本周计划生产的物料,只能在下周及以后使用。为便于统一计算结果, 进一步假设第 100 周末的库存量和缺货量均为零,第 100 周的生产计划数恰好等于第 101 周的 实际需求数。


2.具体分析


首先可以确定一点


需求


需求就是设计一个方案,说明清楚,以及两张表格。


时间范围


选定的 6 种物料的全部计算结果(第 101 ∼ 177 周)


条件


1.平均服务水平不低于 85%。

平均服务水平计算公式:


27f6643e29324cc9b491ccd27a109eaa.png

2.在制定本周的生产计划时,可以使用任何历史数据、需求特征以及预测数据,但不能 使用本周及本周以后的实际需求数据。也就是说假设我们在指定第101周的生产计划时,不能用101周以后的数据来使用,只能用101周之前的数据,也就是只能用历史数据来跑结果。


3.解题思路


问题二很明显就是明摆着让你使用第一问的预测模型,对其做出总结,引入限定条件检验真值效果而已。很多小伙伴说采取动态规划或者是使用机器学习仿真来研究写出,若是这些方法脱离了你第一问的建模成果,那么又得重新建模,这显然不是出题老师想要的结果。总得来说就是对你第一问的时序预测模型的一个总体估量。


这里不知道大家也没有了解过移动平均法,这里主要就是出仓与入仓的营销策略,在量化分析中此问题十分常见,给大家补充一个知识点:


时间序列法并不属于机器学习而是统计分析法,供预测用的历史数据资料有的变化表现出比较强的规律性,由于它过去的变动趋势将会连续到未来,这样就可以直接利用过去的变动趋势预测未来。但多数的历史数据由于受偶然性因素的影响,其变化不太规则。利用这些资料时,要消除偶然性因素的影响,把时间序列作为随机变量序列,采用算术平均、加权平均和指数平均等来减少偶然因素,提高预测的准确性。


时序特性


那么基于此类时序数据我们可以发现此类数据一般用于这下面四种特性:

1.长期趋势(Trend)


2.季节变化(Season)


3.循环波动(Cyclic)


4.不规则波动(Irregular)


四种影响因素通常有两种组合方式:


一种是加法模型:Y=T+S+C+I,认为数据的发展趋势是4种影响因素相互叠加的结果


一种是乘法模型:Y=T*S*C*I,认为数据的发展趋势是4种因素相互综合的结果


那么只要我们能够保持在并不需要此物料的周数能够一直生存囤积物料,到下一次需求量来临的时候保证服务水平>85%就好了。这才是关键所在。


固我们只需要使用历史数据进行时序预测滑动到想要的时间窗口就OK了,能够保证在没有需求的空缺周数积累的库存满足下一次需求即可。


十分注意!!!


这里有很多同学遗漏了一点,时间序列并不是连续的,而是离散时序数据,而其他空缺时间的需求全为零!!需要一并考虑再进行时序预测。


第二点就是平滑预测窗口最好尽可能的小,每期数据所包含的信息量不一样,近期数据包含着更多关于未来情况的信心。因此,把各期数据等同看待是不尽合理的,应考虑各期数据的重要性,对近期数据给予较大的权重,这就是加权移动平均法的基本思想。


这里附上完成表格和预测图表:


ff947b79f02941879d9d02b8d32d61db.png



b8033891854e46b6a3702b78ba5c7f7a.png

37363c26f7744f868bf353dfd6b0b66d.png



5acaa99b536a49e4a19559e824c46a6a.png

071bd1a43ca843c5b581132755dca135.png

以此平滑得到服务水平高于85%即可完成第二问。


三、问题三具体思路


细心建模的小伙伴肯定会注意了,既然你第二问只限定了我服务水平高于85%。那么我就每周都生成很多物料,那岂不是平均服务水平全是100%了?


这点问题出题老师怎么可能没有想到,所以根据第二问的解答流程,顺势提出了第三问了:


1.题意理解


考虑到物料的价格,物料的库存需要占用资金。在库存量与服务水平之间达到某种平衡,调整现有的周生产计划。请根据新的周生产计划,对问题 1 选 定的 6 种物料重新计算,并将全部计算结果以表 1 的形式输出。


2.具体分析


想必大家看我文章一步一步应该不难发现,题目难度正在逐渐增大,现在我们就需要考虑这个成本问题了。题目之间都是相互关联的,没有说哪一问是单独拿出来就可以解答的,第三问解答的基础必须依赖第一问和第二问的基础,数学建模比赛问题向来如此!


这里需求和条件与第二问类似只不过条件不同而已


条件


1.平均服务水平不低于 85%。

平均服务水平计算公式:

27f6643e29324cc9b491ccd27a109eaa.png


2.在制定本周的生产计划时,可以使用任何历史数据、需求特征以及预测数据,但不能 使用本周及本周以后的实际需求数据。也就是说假设我们在指定第101周的生产计划时,不能用101周以后的数据来使用,只能用101周之前的数据,也就是只能用历史数据来跑结果。


3.库存量与服务水平比值阈值确定


首先我们知道物料去买是需要成本的,根据相应的销售单价和需求量,我们根据每周的生产计划都需要去购买相应的物料。也就是说我们第一问求出的销售单价融合指标,需求额度终于可以派上用场了。


3.解题思路


首先我们仍然还是使用的第二问的模型,其实第三问相当于对于第二问的模型进行一个优化,使其得到一个更符合实际效益的模型。首先一点我们根据第二问预测出来的数据是可用的,但是存在一个最优性的问题:


那就是我们可以根据服务水平的大小去动态的更改每周的生产量,这里需要确定一个较优的阈值进行判断。


也就是说服务水平保持在较高的水平,我们可以适当调低生产计划。

当服务水平保持在较低的水平,我们可以适当提高生产计划。

在这个条件下,我们还需要保持服务水平高于85%


那么我们可设服务水平为\alpha,生产计划为gif.gifgif.gif的范围始终保持在[85%,100%]中,而上一个服务水平序列我们可以设置为gif.gif我们可以去挖掘上一个gif.gif与下一个gif.gif\的关系,使其与保持一个gif.gif动态平衡。由此得到新的方案

这里展示一下修正效果图:

e6e4a22111024941bcc2df6f677f1f9a.png

目录
相关文章
|
5月前
|
机器学习/深度学习 算法 Python
【Python强化学习】时序差分法Sarsa算法和Qlearning算法在冰湖问题中实战(附源码)
【Python强化学习】时序差分法Sarsa算法和Qlearning算法在冰湖问题中实战(附源码)
36 1
|
1天前
|
数据采集 算法 数据可视化
python实现时序平滑算法SG滤波器
python实现时序平滑算法SG滤波器
|
13天前
|
安全 Python
【视频】Python用GM(1,1)灰色模型预测模型对电力预测
【视频】Python用GM(1,1)灰色模型预测模型对电力预测
|
14天前
|
机器学习/深度学习 人工智能 算法
|
14天前
|
机器学习/深度学习 人工智能 数据可视化
python用回归模型对水泥生产关键温度点预测模型
python用回归模型对水泥生产关键温度点预测模型
|
23天前
|
数据挖掘 vr&ar Python
使用Python实现时间序列预测模型
使用Python实现时间序列预测模型
29 3
|
2月前
|
算法 Python
数学建模-python递归、lingo解多元一次方程
数学建模-python递归、lingo解多元一次方程
33 0
|
3月前
|
前端开发 关系型数据库 MySQL
基于python的大学生社团管理系统
基于python的大学生社团管理系统
35 0
|
5月前
|
存储 定位技术 Python
Python中ArcPy实现Excel时序数据读取、反距离加权IDW插值与批量掩膜
Python中ArcPy实现Excel时序数据读取、反距离加权IDW插值与批量掩膜
|
5月前
|
数据安全/隐私保护 索引 Python
大学生常用python变量和简单的数据类型、可迭代对象、for循环的3用法
大学生常用python变量和简单的数据类型、可迭代对象、for循环的3用法
81 0