更新完整代码和成品完整论文
《2024深圳杯&东三省数学建模思路代码成品论文》↓↓↓
https://www.yuque.com/u42168770/qv6z0d/zx70edxvbv7rheu7?singleDoc#
问题重述
深圳杯数学建模挑战赛2024B题:批量工件并行切割下料问题
板材切割下料是工程机械领域重要的生产环节。热切割机由固定板材的底部轨道和发出激光(或火焰)的多刀具系统构成。在一块板材下料过程中,底部轨道(下面简称轨道)只能沿着板材的长边(纵向)做来回移动,移动速度可在区间[-80,80]mm/s上连续变化;多把切割刀排列在平行于板材短边的一条直线上,每一把切割刀具可以在保持至少100(mm)相互间距和横向次序下做独立(方向和速度都可不一样)横向移动、升起空载、恢复切割、或停机等待其它刀具运行完毕;横向移动速度可在区间[-50,50]/s上连续变化。每一切割刀具不能做纵向移动,在同一块板材加工过程中,每一刀具停机后也不能从新开机。理论上,在底部轨道与多刀具移动配合下,可并行切割下料多个曲边工件。工件与板边保留不小于10边距,工件之间保留不小于10加工间距。你们的任务是:
一、不考虑切割机运行约束和一块板材的切割下料所需时间,分别针对三种矩形板材:
A8000*2500、B6000*2000、C6000*2500,任意选取附件1中1-15号工件模板(忽略每个模板的内部孔洞)中的工件切割下料,每个型号工件可下料多个,但每块板材切割出的工件至少包含5种型号。给出三种板材的切割排版方案,极大化板材面积利用率。
二、假设可以最多使用5把切割刀下料,设计分别从A、B、C三种型号的板材切割出一题中所得到的下料结果工件的方案,使得整块板的切割下料所需时间尽量短。给出轨道一维移动和所使用的每把刀具的协同运行方案(包括每个刀具横向移动、升起空载、恢复切割、停机等)。
三、附件2给出了一个批量工件的型号分布。选取A,B,C 型板材的任意数量组合切割下料这批工件,不考虑设备时间利用率,极大化所需三个型号板材的总体面积利用率,给出每个型号的板材所需数量和切割排版方案。
四、假设可以最多使用10把切割刀下料附件2给出的批量工件,所需A,B,C 型板材的总体利用率不小于三题中所得排版利用率的95%,极小化这批工件的总体切割下料所需时间。给出每个型号的板材所需数量,给出每块板材下料时轨道移动和所使用的每把刀具的运行方案。
五、实际工况不仅要考虑板材利用率和设备时间利用率,还要考虑刀具空载的能量耗费,能量、板材和设备时间三者都具有经济价值,附件2给出了三者价格比例(其中能量的计量单位使用1刀具开机1小时)。使用最多10把刀具切割下料附件2给出的批量工件,极小化所使用的能量、板材和设备时间的价值总和。给出每个型号的板材所需数量,给出每块板材下料时轨道移动和所使用的每把刀具的协同运行方案。
B题思路分析
2024深圳杯数学建模B题(东三省数学建模B题):批量工件并行切割下料问题
问题1:本题考虑如何在一块矩形板材上切割出给定尺寸的多个矩形工件,使得板材利用率最高。这是一个典型的二维装箱问题(2D bin packing)或矩形装填问题(rectangle packing)。求解这类问题通常采用启发式搜索算法,如回溯法、模拟退火、遗传算法等。以回溯法为例,我们可以将板材划分为若干discrete的网格,工件的长和宽用整数个网格表示。先将工件按某种规则(如面积降序)排序,然后依次选取一个工件,枚举其所有可能的摆放位置和方向,递归地摆放下一个工件,直到所有工件都被摆放或无法继续摆放。在搜索过程中记录最优的摆放方案,即得到最优排样结果。为了提高效率,可以设置剪枝规则,提前排除某些无望的分支。在目标函数的设计上,除了最大化利用率,还可以考虑其他因素,如最小化边角料数量、最小化切割难度等,形成多目标优化问题。
问题2:在考虑切割时间的情况下,工件的排样结果和切割顺序都会影响总加工时间。每个工件的切割路径可以抽象为刀具的一条路径,整个切割过程相当于刀具在板材上游走,经过每个工件的路径恰好一次。因此,可以将该问题转化为多个销售员(多把刀具)分别访问不同城市(不同工件)的多旅行商问题(mTSP)。目标是找到k条路径,覆盖所有工件,且总路径长度最短。这仍是一个NP-hard的组合优化问题。常用的求解方法有遗传算法(GA)、蚁群算法(ACO)、禁忌搜索等启发式算法。以遗传算法为例,我们可以将k条路径编码为一个个体,对种群中的个体进行选择、交叉、变异等操作,不断优化解的质量。评价一个切割方案的Fitness Function需要同时考虑总切割时间和Board utilization。此外,根据刀具的运动特性设置一些切割约束,避免生成无效路径。要进一步提高求解性能,可以借鉴Vehicle Routing中的某些策略,如Clustering先将工件分组,再各自路径规划等。
问题3:当订单规模进一步增大时,现有的板材种类不一定能完全满足生产需求,此时需要考虑多块板材的组合切割。首先,对于每一种板材,利用问题1的方法求解最优排样,记录单块板材的最大利用率。然后,建立整数规划模型,以各类板材的数量为决策变量,最大总利用率为目标,工件数量要求为约束,求解最优的板材组合。这里可以用Branch-and-Bound、Cutting Plane等方法求解IP模型。得到板材组合方案后,再根据各板材的排样结果生成切割任务清单。值得注意的是,由于订单规模较大,最优解可能需要的计算时间很长。实际生产中,可以接受次优解,因此可以设置时间限制,在规定时间内输出当前最优解。此外,如果某些板材的利用率较低,可以适当放宽利用率要求,从全局考虑成本最小。
问题4:在问题3的基础上,进一步引入时间约束,要求所有工件加工完成的用时最短。这需要在多块板材排样的基础上,优化每块板材的切割路径,协调各刀具之间、上下料与切割之间的时序关系。可以将其建模为Flexible Job Shop Scheduling Problem(FJSP)与mTSP的组合优化问题。目标函数是最小化makespan,约束条件包括工件加工要求、机器能力限制、排样利用率要求等。求解思路可以分为两阶段:先用启发式算法生成若干可行的Board Usage方案(包括板材组合和具体排样);再为每个方案优化切割和调度过程,如用Hybrid GA结合调度规则求解FJSP子问题,同时用Adaptive ACO求解mTSP子问题。比较所有方案的makespan,综合评价其性能。还可以设计Memetic Algorithm,将两阶段的求解嵌套迭代,在Evolutionary框架下集成不同的Heuristics,快速收敛到全局最优解。
问题5:在生产实践中,Board Utilization、Makespan、Energy Consumption通常是相互trade-off的多个优化目标。它们分别对应材料成本、人工/机器时间成本、能源成本,权重可以用单位时间的货币价值来衡量。整个Cut Planning就是在总成本最低的约束下,合理分配和调度有限的板材、刀具、时间等资源。这可以建模为多目标优化问题(MOP),用Weighted Sum法将多个目标归一化为总成本目标,或用e-Constraint法将除Makespan外的目标转为约束,在Makespan最小的前提下优化其他指标。之前用到的SA、GA、ACO等Meta-heuristic都可以推广到多目标优化,关键是设计合理的Solution Encoding和Fitness Evaluation。在约束处理上,可以用Penalty Function将约束violation量化为惩罚项,使unfeasible solution也可参与进化,扩大搜索空间。在种群搜索过程中,还可以用Pareto Dominance、Crowding Distance等机制保持解集的多样性,收敛到一个分布良好的Pareto Front。最后再从这些non-dominated solutions中选取总成本最优的切割方案。
后续更新代码和论文!