没有更新完之前,专栏价格为59,更新完毕之后恢复到99. 专栏内包含2024年所有数学建模比赛思路和代码,有些重要比赛着重更新(华数杯、国赛、美赛),小比赛可能会有chatgpt4更新,只需订阅一次。有些文章没有完整代码,请到专栏内查找最新代码和思路。如果比赛结束后没有更新代码(可能会有事情来不及更新)赛后我会统一退款。
2024年第五届“华数杯”专栏地址:https://blog.csdn.net/m0_52343631/category_12482955.html?spm=1001.2014.3001.5482
目录
2024年第五届“华数杯”专栏地址:https://blog.csdn.net/m0_52343631/category_12482955.html?spm=1001.2014.3001.5482
2022年优秀论文
摘要
自来水管道清理机器人(
CWPR
)能够代替或辅助人去完成自来水管道垃圾清理任
务,不仅提高自来水的品质,还能够保证水流畅通,因而越来越受到用户关注和青睐,
研究
WPCR
装置的生产组装优化问题具有一定的实际应用价值。
针对问题一,本文以单周总成本最小为期望,设定各组件生产准备成本和组件储存
成本累计和最小为目标函数,设置第
𝑡
天生产
𝑖
组件数目
𝑥
𝑡𝑖
,第
𝑡
天使用
𝑖
组件数目
𝑢
𝑡𝑖
,第
𝑡
天库存
𝑖
组件数目
𝑠
𝑡𝑖
以及第
𝑡
天是否生产
𝑖
组件
𝑝
𝑡𝑖
作为决策变量。建立
WPCR
需求约束、
每日
A
、
B
、
C
生产总工时限制约束、第
𝑡
天
𝑖
组件库存数目
𝑠
𝑡𝑖
约束、每周开始和结束无组
件库存约束、第
𝑡
天组件
𝑗
的生产数目和使用约束、
WPCR
的使用数目约束等约束条件,
建立混合整数线性规划模型,通过
python
编程结合
Gurobi
软件求解得出在总成本最小
期望下,每周
7
天的生产计划。在采取最优策略时,每周最小成本为
6259
元,其中生
产准备费用共计
4800
元,库存费用共计
1459
元。
针对问题二,在连续多周生产情况下,需要考虑统筹规划。要求组件提前一天生产
入库才能组装,基于问题一模型,将组件使用数目约束式中
𝑥
𝑡𝑖
一项剔除。此外,将每周
开始和结束时的库存约束表达式修改为每周开始各组件库存等于上周结束时各组件库
存,即
𝑠
0𝑖
= 𝑠
7𝑖
。建立考虑统筹规划的模型,利用
Gurobi
软件求解。采取最优策略时,
每周最小成本为
177207
元,其中生产准备费用共计
3600
元,库存费用共计
171922
元。
问题二中模型由于组件需要提前一天生产入库,故产生了大量的库存费用。
针对问题三,在考虑停工检修的情况下,基于问题二模型增加决策变量
𝑐
𝑡
指示是否
停工检修以及
𝑣
𝑡
表示检修情况下的动态变化总工时限制。修改增加总工时限制约束、停
工检修次数约束、检修间隔约束、生产工时限制放宽约束等,并将原本非线性约束的生
产工时限制放宽约束,转换为线性约束,建立规划模型,利用
Gurobi
软件求解。在采取
最优策略时,
7
次停工检修的时间分别是第
24
、
30
、
36
、
74
、
126
、
132
、
210
天,总成
本最优近似解为
3762337
元,优化间隙
gap
为
0.25%
。
针对问题四,考虑未来一周需求数未知的情况,基于问题二模型,加入未来
WPCR
需求预测器,建立新的模型优化未来
WPCR
需求预测器参数,根据优化的未来
WPCR
需求预测器对第
31
周的需求进行预测,然后利用问题二模型进行求解,得到未来一周
的生产计划。为方便处理,模型假设每周日结束时给下周一预留的组件是恒定量,该恒
定量由模型优化得到。在参数优化部分,文章采样题目给出的历史数据,得到多条
“
历史
数据
-
预测数据
”
样本,对采样数据施加
95%
以上天数
WPCR
订单正常交付,
85%
以上周
数
WPCR
订单正常交付的约束,保证预测的效果满足题目要求。在生产计划求解阶段,
文章采用预测得到的
WPCR
需求和优化的预留的组件量,得到成本最低的生产计划。除
此之外,由于建立的优化预测器参数和预留的组件量的模型过于复杂,难以得到可行解,
求解效率低,本文将参数优化部分模型进行简化,建立两个模型分别优化未来
WPCR
需
求预测器和预留的组件量,提高求解效率。
关键词:
线性规划;混合整数规划模型;有瓶颈设备多级生产计划;
Gurobi
优化求解器
一、 问题重述
1.1
问题背景
自来水管道清理机器人(
Water pipe cleaning robot
,简称
WPCR
)是一种可在水下移
动、具有视觉和感知系统、通过遥控或自主操作方式、使用机械臂代替或辅助人去完成
自来水管道垃圾清理任务的装置。运用这种装置能够及时清理管道,既可提高自来水的
品质,也能够保证水流畅通,因而越来越受到水务公司和家庭住户的青睐。
某工厂生产的
WPCR
装置需要用
3
个容器艇(用
A
表示)、
4
个机器臂(用
B
表
示)、
5
个动力系统(用
C
表示)组装而成。每个容器艇(
A
)由
6
个控制器(
A1
)、
8
个
划桨(
A2
)和
2
个感知器(
A3
)组成。每个机器臂(
B
)组成比较复杂,简单可划分为
2
个力臂组件(
B1
)和
4
个遥感器(
B2
)组成。每个动力系统(
C
)由
8
个蓄电池(
C1
)、
2
个微型发电机(
C2
)和
12
个发电螺旋(
C3
)组成。也就是说组装一个完整的
WPCR
装置,需要
3
个容器艇(
A
),包括
18
个控制器(
A1
)、
24
个划桨(
A2
)以及
6
个感知
器(
A3
)。组装一台
WPCR
需要的其他部件数以此类推。组装
WPCR
所需要的产品统
称为组件,包括
A
和
A1
、
A2
、
A3
,
B
和
B1
、
B2
,
C
和
C1
、
C2
、
C3
。
该工厂每次生产计划的计划期为一周(即每次按照每周
7
天的订购数量实行订单生
产),只有最终产品
WPCR
有外部需求,其他组件不对外销售。容器艇(
A
)、机器臂(
B
)、
动力系统(
C
)生产要占用该工厂最为关键的设备,因而严格控制总生产工时。
A
、
B
、
C
的工时消耗分别为
3
时
/
件、
5
时
/
件和
5
时
/
件,即生产
1
件
A
需要占用
3
个工时,生
产
1
件
B
需要占用
5
个个工时,生产
1
件
C
需要占用
5
个工时。
为了顺利生产
WPCR
,工厂在某一天生产组件产品时,需要付出一个与生产数量无
关的固定成本,称为生产准备费用。比如第一天生产了
A
,则要支付
A
的生产准备费
用,若第二天再生产
A
,则需要再支付
A
的生产准备费用。如果某一天结束时某组件有
库存存在,则工厂必须付出一定的库存费用(与库存数量成正比)。另外,按照工厂的信
誉要求,目前接收的所有订单到期必须全部交货,轻易不能有缺货事件发生。
1.2
目标任务
本次研究的目标任务如下:
问题一:假设该工厂第一天(周一)开始时没有任何组件库存,并且要求第
7
天(周
日)结束后不留下任何组件库存。每天采购的组件马上就可用于组装,组装出来的组件
也可以马上用于当天组装成
WPCR
。要求在总成本最小条件下,制定每周
7
天的生产计
划。
问题二:实际生产中,组件
A
、
B
、
C
需要提前一天生产入库才能组装
WPCR
,
A1
、
A2
、
A3
、
B1
、
B2
、
C1
、
C2
、
C3
也需要提前一天生产入库才能组装
A
、
B
、
C
。在连续
多周生产情况下,需要统筹规划。比如在周一生产
WPCR
前一天(上周周日)必须事先
准备好组件库存,而且在本周日必须留下必要的组件库存用以保障下周一的生产。在给
定每周的
WPCR
需求和关键设备工时限制以及每次生产准备费用和单件库存费用数据
情况下,要求制定每周
7
天的生产计划以使总成本最低。
问题三:在问题二的情况下,保障生产的持续性,工厂需要在
30
周
210
天里必须
设置
7
次停工检修,每次检修时间为
1
天。检修之后关键设备生产能力有所提高,检修
后的第一天
A
、
B
、
C
生产总工时限制将会放宽
10%
,随后逐日减少放宽
2%
的比例,直
至为
0
。检修日的订单只能提前安排生产,当天不能生产任何组件。假设每周的关键设
备工时限制以及每次生产准备费用和单件库存费用数据不变,任意两次检修之间要相隔
6
天以上。在给定
30
周的
WPCR
外部需求数据情况下,求检修日放在哪几天使得总成
本最小。
问题四:在生产实际中,在未知
WPCR
外部需求订单的前提下,公司需要有一个稳
妥的单周生产计划。在问题二的情况下,给定历史周订单数据,在不知未来某周
7
天订
单数且继续追求周总成本最小的前提下,如何制定周生产计划,既能够保障每天的
WPCR
订单均以
95%
以上的概率保证正常交付,又能够以
85%
以上的概率保证整周的
WPCR
订单能正常交付。
二、 问题分析
WPCR
装置由
3
个容器艇(用
A
表示)、
4
个机器臂(用
B
表示)、
5
个动力系统
(用
C
表示)组装。
WPCR
组装成本由生产准备成本和组件储存成本构成,整理各组件
工时消耗、生产准备费用、单位库存费用等参数如图
1
所示。
2.1
问题一的分析
问题一属于混合整数线性规划问题
[1]
,
按照表
6
中
WPCR
到
C3
顺序,共有
WPCR
、
A
、
A1
、
A2
、
A3
、
B
、
B1
、
B2
、
C
、
C1
、
C2
、
C3
,总计十二类产品组件。针对问题一,
我们以第
𝑡
天生产各组件的数目、第
𝑡
天使用各组件的数目、第
𝑡
天各组件的库存数目以及
第
𝑡
天是否生产某组件的指示变量作为决策变量,选取生产准备成本和组件储存成本构
成的
WPCR
一周组装成本作为目标函数,建立数学模型求解目标函数的最小值
[2]
。利用
Gurobi
求解最优总成本期望下的单周生产计划。
2.2
问题二的分析
问题二属于问题一的变形,要求组件
A
、
B
、
C
需要提前一天生产入库才能组装
WPCR
,
A1
、
A2
、
A3
、
B1
、
B2
、
C1
、
C2
、
C3
也需要提前一天生产入库才能组装
A
、
B
、
C
。因
此需要将问题一求解模型中的组件生产所需其他组件的数目约束条件修改为
𝑡 − 1
日的
𝑗
组件库存数
𝑠
𝑡−1,𝑗
大于等于
𝑡
日
𝑗
组件使用数目
𝑢
𝑡𝑗
。同时,模型的边界条件也发生了变化,
在问题一中,周一开始和周末结束工厂均没有组件库存。在问题二中需要在本周日留下
必要的组件库存用以保障下周一的生产,因此每周开始和结束时的库存约束表达式也应
进行修改。利用
Gurobi
软件求解最优总成本期望下的单周生产计划。
2.3
问题三的分析
问题三要求在问题二的基础上,在
210
天里设置单次检修时间为
1
天的
7
次停工检
修。增加决策变量
𝑐
𝑡
指示工厂是否在第
𝑡
天停工检修,以及决策变量
𝑣
𝑡
表示考虑工厂检修
提高关键设备生产能力情况下,第
𝑡
天生产组件的总工时限制
[3]
。在问题二的约束条件中,
将原本常量的总工时限制修改为动态变化的约束变量,将是否停工检修的约束添加进生
产相关约束条件,同时需要对总停工检修次数和任意两次停工检修时间间隔进行约束,
最后对生产工时限制放宽约束。利用
Gurobi
求解最优总成本期望下的检修日时间安排。
2.4
问题四的分析
问题四要求在问题二的基础上,根据历史周订单数据,计算出未来某周
7
天订单数
的预测需求。考虑未来一周需求数未知的情况,基于问题二模型,加入未来
WPCR
需求
预测器,建立新的模型优化未来
WPCR
需求预测器参数,根据优化的未来
WPCR
需求
预测器对第
31
周的需求进行预测,然后利用问题二模型进行求解得到未来一周的生产
计划
三、 模型假设
1
、假设生产组装过程中组件无损坏、误装等人工消耗。
2
、不考虑组件存放空间需求,假设工厂可容纳组件库存无上限。
3
、不考虑生产的直接成本(如原材料成本、人力成本、电力成本等)。
4
、假设除生产停工外其它时间,工厂设备均能正常运转。
四、 主要符号说明
五、 模型建立与求解
5.1
问题一的模型建立与求解
5.1.1
模型的准备和建立
问题一要求我们在总成本最小的期望下,制定每周
7
天的生产计划。题目要求周一
开始和周末结束时,均没有任何组件库存,且当天采购、组装的组件马上可投入组装、
使用。本问题属于混合整数规划问题,选取生产准备成本和组件储存成本构成的
WPCR
一周组装成本最优作为目标函数,下面开始混合整数线性规划模型的建立
[5]
。
设下标
𝑡
,取值范围为:
1 ≤ 𝑡 ≤ 7
,表示时间周一到周日。设下标
𝑖
,取值范围为:
1 ≤ 𝑖 ≤ 12
,表示题目中所给的
WPCR
、
A
、
A1
、
A2
、
A3
、
B
、
B1
、
B2
、
C
、
C1
、
C2
、
C3
总计十二类产品组件类型。设下标
𝑗
,取值范围为:
1 ≤ 𝑗 ≤ 12
,
𝑗
与
𝑖
含义相同,用于
区分不同组件。
下面开始设决策变量,设第
𝑡
天生产
𝑖
组件的数目为
𝑥
𝑡𝑖
,
𝑥
𝑡𝑖
∈ 𝑁
,
𝑁
为自然数集;第
𝑡
天使用
𝑖
组件的数目为
𝑢
𝑡𝑖
,
𝑢
𝑡𝑖
∈ 𝑁
;第
𝑡
天库存
𝑖
组件的数目为
𝑠
𝑡𝑖
,
𝑠
𝑡𝑖
∈ 𝑁
;第
𝑡
天是否生
产
𝑖
组件的指示变量记为
𝑝
𝑡𝑖
,
𝑝
𝑡𝑖
∈ {0,1}
。
生产组件
𝑖
对组件
𝑗
的数目需求记为
𝑅𝑃
𝑖𝑗
;生产组件
𝑖
的工时耗费为
𝑇𝐶
𝑖
。需要注意的
是,题目中
𝑇𝐶
2
= 3
,
𝑇𝐶
6
= 5
,
𝑇𝐶
9
= 5
,分别表示组件
A
,
B
,
C
的工时耗费,其余组
件类型的
𝑇𝐶
𝑖
= 0
;题目中
𝑅𝑃
12
= 3
,
𝑅𝑃
16
= 4
,
𝑅𝑃
19
= 5
,
𝑅𝑃
23
= 6
,
𝑅𝑃
24
= 8
,
𝑅𝑃
25
=
2
,
𝑅𝑃
67
= 2
,
𝑅𝑃
68
= 4
,
𝑅𝑃
9,10
= 8
,
𝑅𝑃
9,11
= 2
,
𝑅𝑃
9,12
= 12
,其余为
0
。
(
1
) 目标函数
题目要求一周总成本最小,故目标函数设定为各组件生产准备成本和组件储存成本
累计和最小:
min∑∑𝐶𝑃
𝑖
𝑝
𝑡𝑖
+ 𝐶𝑆
𝑖
𝑠
𝑡𝑖
𝑡 𝑖
(1)
其中,
𝐶𝑃
𝑖
表示生产组件
𝑖
的生产准备费用,
𝑝
𝑡𝑖
表示第
𝑡
天是否生产
𝑖
组件的指示变量。
𝐶𝑆
𝑖
表示存储组件
𝑖
的单件库存费用,
𝑠
𝑡𝑖
表示第
𝑡
天库存
𝑖
组件的数目。
(
2
) 约束条件
题目给定
WPCR
每天的需求,设第
𝑡
天的
WPCR
的数目需求为
𝑅
𝑡
,则有
WPCR
需
求约束:
𝑥
𝑡1
+ 𝑠
𝑡−1,1
≥ 𝑅
𝑡
(2)
其中,
𝑥
𝑡1
表示第
𝑡
天组装的
WPCR
数目,
𝑠
𝑡−1,1
表示第
𝑡 − 1
天库存
WPCR
的数目,
𝑅
?
六、 模型的评价与推广
6.1
模型的优点
1)
针对问题
1-
问题
4
建立的混合整型规划模型,目标函数设计合理,约束全面,能够
获得全局最优
/
次优解。
2)
针对问题
3
建立的模型,不失准确性地将非线性约束简化成线性约束,将非线性模
型转化为线性模型,使原模型易于求解。
3)
针对问题
4
建立的模型,设计了每周组件备料量一致,未来一周的
WPCR
只与前几
周
WPCR
需求量相关等一系列合理假设,不失一般性地简化了模型设计。
4)
针对问题
4
建立的模型的简化求解模型,设计了未来
WPCR
需求量预测器是线性预
器,未来一周
WPCR
需求量仅与过去一周的
WPCR
需求量相关等假设,同时将未
来
WPCR
需求量预测器参数和每周备料量分成两个模型进行优化,简化了原规模较
大的难以得到可行解的混合整型规划模型,大幅提高了求解效率。
6.2
模型的不足与改进方向
1)
针对问题
3
建立的模型,尽管已经转化为线性模型,但在短时间内(
1200
秒内)仍
然无法获得最优解,只能得到的次优解,后续可以考虑升级硬件设备或优化模型。
2)
针对问题
4
建立的模型,模型假设每周组件备料量一致的合理但简单假设,但实际
生产中可能采样更复杂的组件备料量设定方式。
3)
针对问题
4
建立的模型,模型将未来
WPCR
需求量预测器设计为线性函数,并假设
未来一周
WPCR
需求量仅与过去一周的
WPCR
需求量相关,但在实际生产中,未
来
WPCR
需求量预测器可能是非线性,并且可能与过去好几周的
WPCR
需求量相
关,后续考虑改进非线性的
WPCR
需求量预测器。
4)
针对问题
4
建立的模型的简化求解,将预测器参数和每周组件备料量分开求解,虽
然提高了求解效率,但牺牲了成本上的最优性,求解的结果在成本上可能只是次优
的,在不考虑资源消耗和求解效率,优先保证最优策略时,可改进模型将预测器参
数和每周组件备料量组合求解。
七、 参考文献
[1]
姜启源,谢金星,叶俊.数学模型.北京:高等教育出版社,
2011
:
444-446
.
[2]
司守奎,孙兆亮.数学建模算法与应用.北京:国防工业出版社,
2017
:
738-743
.
[3]
张德强.多级制造车间生产计划与调度集成优化研究
[D]
.沈阳工业大学,
2015
.
[4]
张晓东,严洪森.多级车间生产计划和调度的集成优化
[J]
.机械工程学报,
2005(09)
:
98-105
.
[5]
张萃珠,李志滔,余秋萍,赵莹,何演铭,龙建宇,洪颖.基于混合整数规划的
P
型玩具生产
线平衡优化
[J]
.机电工程技术,
2022
,
51(05)
:
198-203
.
[6]
程凤,霍佳震.基于混合整数规划的冶炼型材生产组织优化
[J]
.上海管理科学,
2011
,
33(06)
:
40-42
.
[7] Optimization LLC. Gurobi optimizer reference manual[J]. 2022.