当前位置: 首页 > news >正文

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

目录

前言

一、问题一再梳理

二、问题二具体思路

1.题意理解

2.具体分析

需求

时间范围

条件

3.解题思路

时序特性

十分注意!!!

三、问题三具体思路

1.题意理解

2.具体分析

条件

3.解题思路

只希望各位以后遇到建模比赛可以艾特认识一下我,我可以提供免费的思路和部分源码,最近CSDN上也有很多活动和比赛可以带着大家做一做,有兴趣的小伙伴加我微信就好了。 

我已经写到这么细化的份上了,求个大家的关注和点赞不过分吧!以后的数模比赛只要我还有时间肯定会第一时间写出免费开源思路,你们的关注和点赞就是我写作的动力!!!

点关注,防走丢,如有纰漏之处,请留言指教,非常感谢



前言

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

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


一、问题一再梳理

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

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

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

二、问题二具体思路

1.题意理解

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

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

2.具体分析

首先可以确定一点

需求

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

时间范围

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

条件

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

平均服务水平计算公式:

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了,能够保证在没有需求的空缺周数积累的库存满足下一次需求即可。

十分注意!!!

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

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

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

 

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

三、问题三具体思路

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

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

1.题意理解

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

2.具体分析

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

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

条件

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

平均服务水平计算公式:

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

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

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

3.解题思路

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

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

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

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

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

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

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


只希望各位以后遇到建模比赛可以艾特认识一下我,我可以提供免费的思路和部分源码,最近CSDN上也有很多活动和比赛可以带着大家做一做,有兴趣的小伙伴加我微信就好了 

我已经写到这么细化的份上了,求个大家的关注和点赞不过分吧!以后的数模比赛只要我还有时间肯定会第一时间写出免费开源思路,你们的关注和点赞就是我写作的动力!!!

点关注,防走丢,如有纰漏之处,请留言指教,非常感谢

以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见

相关文章:

  • Python多线程的用法
  • java计算机毕业设计ssm高校运动会管理网站(源码+系统+mysql数据库+Lw文档)
  • 网课搜题公众号 搜题接口搭建步骤
  • 卷积神经网络相比循环神经网络具有哪些特征
  • Java EE——线程安全和单例模式
  • [SUCTF 2019]EasyWeb
  • 人脸识别及检测
  • Apache Doris 系列: 基础篇-Routine Load
  • 机器学习笔记 - CRAFT(文本检测的字符区域感知)论文解读
  • 【云原生-Docker】Docker 安装 Python
  • ESP8266-Arduino编程实例-TLV493D磁传感器驱动
  • Hue在大数据生态圈的集成
  • AtCoder Beginner Contest 267 (A~D)
  • 羊了个羊游戏源码搭建开发过程
  • 基于人工蜂群算法的新型概率密度模型无人机路径规划(Matlab代码实现)
  • 【Leetcode】104. 二叉树的最大深度
  • Android优雅地处理按钮重复点击
  • HTML5新特性总结
  • interface和setter,getter
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • jdbc就是这么简单
  • learning koa2.x
  • Puppeteer:浏览器控制器
  • Python十分钟制作属于你自己的个性logo
  • Spring Cloud Feign的两种使用姿势
  • VUE es6技巧写法(持续更新中~~~)
  • Zepto.js源码学习之二
  • 给新手的新浪微博 SDK 集成教程【一】
  • 后端_MYSQL
  • 如何选择开源的机器学习框架?
  • 微信开源mars源码分析1—上层samples分析
  • 硬币翻转问题,区间操作
  • 原生Ajax
  • 找一份好的前端工作,起点很重要
  • NLPIR智能语义技术让大数据挖掘更简单
  • Prometheus VS InfluxDB
  • UI设计初学者应该如何入门?
  • zabbix3.2监控linux磁盘IO
  • 阿里云移动端播放器高级功能介绍
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # 数论-逆元
  • #控制台大学课堂点名问题_课堂随机点名
  • (Java数据结构)ArrayList
  • (安卓)跳转应用市场APP详情页的方式
  • (二)换源+apt-get基础配置+搜狗拼音
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)使用VMware vSphere标准交换机设置网络连接
  • *Django中的Ajax 纯js的书写样式1
  • .bat批处理(七):PC端从手机内复制文件到本地