2024深圳杯数学建模挑战赛B题:批量工件并行切割下料问题思路代码成品论文分析

更新完整代码和成品完整论文

《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中选取总成本最优的切割方案。
后续更新代码和论文!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2980656.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

信息系统项目管理师0066:过程管理(5信息系统工程—5.1软件工程—5.1.6过程管理)

点击查看专栏目录 文章目录 5.1.6过程管理1.成熟度模型2.成熟度等级5.1.6过程管理 软件过程能力是组织基于软件过程、技术、资源和人员能力达成业务目标的综合能力。包括治理能力、开发与交付能力、管理与支持能力、组织管理能力等方面。软件过程能力成熟度是指组织在提升软件产…

一个docker配置mysql主从服务器

这也就是因为穷,不然谁用一个docker配置主从,哈哈 既然成功了就记录下。过程挺折磨人的。 首先要保证你的电脑安装好了docker 为了保证docker当中主从能正常连网,现在docker里面创建一个网络环境 docker network create --driver bridge mysq…

开曼群岛:Web3企业的乐园

开曼群岛:Web3企业的理想之地 开曼群岛,在数字革命中大放异彩。近年来,该地区成立的Web3企业数量显著增加,如果保持目前的发展速度,并持续优化立法,那么扩展的速度将无可限量。本文将探讨推动这一增长的关…

Linux防火墙相关命令以及ip白名单配置

Linux防火墙相关命令以及ip白名单配置 firewall防火墙基础命令查看防火墙的服务状态查看防火墙的状态服务的开启、关闭和重启查看防火墙规则端口的查询、开放和关闭重启防火墙 防火墙白名单配置部分参数介绍 firewall防火墙基础命令 查看防火墙的服务状态 systemctl status f…

SAP ECC VS S4 HANA FICO

由于SAP 对于ECC官网的支持将于2027年12月31日结束,也就是说ECC系统从那时候起将不再得到SAP的官网支持与维护,所以近些年,很多企业都在进行从ECC到S4HANA版本的升级。 总的来说,两个版本的差别,在各个模块中&#xf…

文字转粤语语音怎么转?文字转语音

文字转粤语语音怎么转?文字转粤语语音的应用,不仅展现了现代科技的魅力,也为我们提供了更加便捷的交流方式。它们将文字转化为粤语发音,让我们能够更直观地感受粤语的韵味和魅力。同时,这些软件还具备高度的可定制性&a…

普乐蛙VR航天航空体验馆VR双人旋转座椅元宇宙VR飞船

多长假来袭!!想为门店寻找更多新鲜有趣的吸粉体验?想丰富景区体验?别着急,小编为你准备了一款爆款设备——时光穿梭机,720无死角旋转!!吸睛、刺激体验,将亲子、闺蜜、情侣…

探索GNDVI:绿光归一化植被指数的意义与应用

随着遥感技术的发展,植被指数成为了评估地表植被覆盖和健康状况的重要工具之一。GNDVI(Green Normalized Difference Vegetation Index,绿光归一化植被指数)作为一种新型的植被指数,在区分不同类型的植被覆盖和监测植被…

android openGL ES详解

1、渲染线程与主线程的通信 两个线程之间的通信可以用如下方法: 在主线程中的 GLSurfaceView 实例可以调用 queueEvent( )方法传递一个 Runnable 给后台渲染线程,渲染线程可以调用 Activity 的 runOnUIThread()来传递事件 (event) 给主线程。 2、顶点…

FPGA秋招-笔记整理(1)

一、关键路径 关键路径通常是指同步逻辑电路中,组合逻辑时延最大的路径(这里我认为还需要加上布线的延迟),也就是说关键路径是对设计性能起决定性影响的时序路径。也就是静态时序报告中WNS(Worst Nagative Slack&…

异地组网、内部网络需求同时满足,贝锐企业路由器G300开箱体验

由于公司最近新增了办事处,作为IT管理员的我不仅需要搞定办事处的网络,还需要解决远程访问公司内部办公系统以及文件存储服务器的问题。 在此之前,只有少量人员出差时,我们采用了虚拟专网方案来进行远程访问。然而,新…

JVM--Java对象到底存在哪?

Java对象存放在堆中,但堆又分为新生代和老年代,新生代又细分为 Eden、From Survivor、To Survivor。那我们创建的对象到底在哪里? 堆分为新生代和老年代,新生代用于存放使用后就要被回收的对象(朝生夕死)&a…

如何将web content项目导入idea并部署到tomcat

将Web Content项目导入IntelliJ IDEA并部署到Tomcat主要涉及以下几个步骤: 1. 导入Web Content项目 打开IntelliJ IDEA。选择“File” -> “New” -> “Project from Existing Sources…”。浏览到你的Web Content项目的文件夹,并选择它。Intell…

一文整理完MySQL关系型数据库相关知识

MySQL关系型数据库 1. 介绍1.1 MySQL 2. 安装3. SQL语句4. SQL分类5. DDL5.1 库的DDL5.2 表、列的DDL 6. DML6.1 添加数据6.2 修改数据6.3 删除数据 7. DQL7.1 基础查询7.2 条件查询7.3 排序查询7.4 聚合函数7.5 分组查询7.6 分页查询 8. 约束8.1 约束分类 9. 多表查询9.1 内连…

fnm:Rust开发的高效Node版本管理工具

简介 fnm 是一个基于 Rust 开发的 Node 版本管理工具,它的目标是提供一个快速、简单且可靠的方式来管理 Node.js 的不同版本。同时,它是跨平台的,支持 macOS、Linux、Windows。🚀 Fast and simple Node.js version manager, buil…

【QT进阶】Qt http编程之实现websocket server服务器端

往期回顾 【QT进阶】Qt http编程之json解析的简单介绍-CSDN博客 【QT进阶】Qt http编程之nlohmann json库使用的简单介绍-CSDN博客 【QT进阶】Qt http编程之websocket的简单介绍-CSDN博客 【QT进阶】Qt http编程之实现websocket server服务器端 一、最终效果 通过ip地址和端口…

的记忆:pandas(实在会忘记,就看作是一个 Excel 表格,或者是 SQL 表,或者是字典的字典。)

pandas 是一个开源的 Python 数据分析库,它提供了快速、灵活和富有表现力的数据结构,旨在使“关系”或“标记”数据的“快速分析、清洗和转换”变得既简单又直观。pandas 非常适合于数据清洗和转换、数据分析和建模等任务。以下是 pandas 的基本概念和主…

6DoF位姿估计深度学习架构---以FFB6D算法为例(复现)

说明 在位姿估计的学习过程中,发现不同算法的代码架构相差非常大,有的算法考虑通用性和可扩展性,进行了大量的模块化设计和继承,这对代码调试和复现工作带来很大麻烦。因此,为了便于算法复现与改进,本人参…

【视频异常检测】Open-Vocabulary Video Anomaly Detection 论文阅读

Open-Vocabulary Video Anomaly Detection 论文阅读 AbstractMethod3.1. Overall Framework3.2. Temporal Adapter Module3.3. Semantic Knowledge Injection Module3.4. Novel Anomaly Synthesis Module3.5. Objective Functions3.5.1 Training stage without pseudo anomaly …

智慧安防视频监控EasyCVR视频汇聚平台无法自动播放视频的原因排查与解决

国标GB28181协议EasyCVR安防视频监控平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力,平台支持7*24小时实时高清视频监控,能同时播放多路监控视频流…