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

news2025/3/11 10:21:55

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

《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://www.coloradmin.cn/o/1618872.html

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

相关文章

盲人过马路安全:科技力量赋予“隐形守护者”

作为一名资深记者,我始终关注着社会各群体的生活现状,尤其是那些面临特殊挑战的人群。今天,我想聚焦一个看似平常却对盲人构成重大困扰的日常场景——过马路,以及一款名为蝙蝠避障的辅助应用如何成为他们的盲人过马路安全的守护者…

springboot的坑

问题:使用Autowired注入一个service,然后写了两个接口,第一个接口与请求时显示注入的service为空一直报错,但是第二个接口请求时service竟然不是空?在这里插入图片描述 凶手找到了,是private修饰。果然没仔…

CDN、边缘计算与云计算:构建现代网络的核心技术

在数字化时代,数据的快速传输和处理是保持竞争力的关键。内容分发网络(CDN)、边缘计算和云计算共同构成了现代互联网基础架构的核心,使内容快速、安全地到达用户手中。本文将探讨这三种技术的功能、相互关系以及未来的发展趋势。 …

网络 (基础概念, OSI 七层模型, TCP/IP 五层模型)

网络互连 网络互连: 将多台计算机连接在一起, 完成数据共享 数据共享的本质是网络数据传输, 即计算机之间通过网络来传输数, 也叫做网络通信 根据网络互连的规模不同, 将网络划分为局域网和广域网 注意: 局域网和广域网是相对的概念 局域网LAN 又称内网, 局域网和局域网之间在没…

CCS项目持续集成

​ 因工作需要,用户提出希望可以做ccs项目的持续集成,及代码提交后能够自动编译并提交到svn。调研过jenkins之后发现重新手写更有性价比,所以肝了几晚终于搞出来了,现在分享出来。 ​ 先交代背景: 1. 代码分两部分&am…

谷粒商城实战(017 业务-单点登录)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第231p-第p235的内容 介绍 单点登录(Single Sign-On,SSO)是一种身份验证服务,允许用户使用一组凭…

程序猿成长之路之数据挖掘篇——朴素贝叶斯

朴素贝叶斯是数据挖掘分类的基础,本篇文章将介绍一下朴素贝叶斯算法 情景再现 以挑选西瓜为例,西瓜的色泽、瓜蒂、敲响声音、触感、脐部等特征都会影响到西瓜的好坏。那么我们怎么样可以挑选出一个好的西瓜呢? 分析过程 既然挑选西瓜有多个…

【七】jmeter5.5+influxdb2.0+prometheus+grafana

参考文章:https://blog.csdn.net/wenxingchen/article/details/126892890 https://blog.csdn.net/Zuo19960127/article/details/119726652 https://blog.csdn.net/shnu_cdk/article/details/132182858 promethus参考 由于自己下载的是infuldb2.0,所以按照…

【视频异常检测】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 …

【webrtc】Chrome和Firefox在SDP协商过程中,针对localhost的不同处理

内网下chrome端webrtc协商失败 现象 我有一个webrtc服务器在局域网内,使用chrome浏览器访问时,发现webrtc在做媒体协商时失败。 具体表现是,在交换sdp后,ice的状态是oniceconnectionstatechange: failed 但是换成Firefox浏览器…

【Linux】文件目录及路径表示

1. Linux目录结构 在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。 /etc: 这个是系统中的配置文件,如果更改了该目录下的某个文件可能会导致系统不能启动。 /bin, /sbin, /usr/bin, /usr…

黄金行情下跌有投资机会吗?

尽管黄金价格的波动常常引起投资者的高度关注,但行情的下跌未必只是警讯,亦可能蕴藏着某些难得的投资机会。总之,答案是肯定的——在黄金行情下跌时,依旧有适宜的投资机会,只是这需要投资者具备相应的应对知识和策略。…

是德软件89600 RFID使用笔记

文章目录 1、进入RFID软件:2、RFID软件解调设置项3、如何查看一段指令数据 本文是日常工作的笔记分享。 lauch VSA(矢量频谱分析)后会出现以下界面: 当然这是因为频谱仪的输入有信号才显示如下: 否则就显示频谱仪的噪…

【书生浦语第二期实战营学习笔记作业(七)】

课程文档:https://github.com/InternLM/Tutorial/blob/camp2/opencompass/readme.md 课程作业:https://github.com/InternLM/Tutorial/blob/camp2/opencompass/homework.md OpenCompass 大模型评测实战 1. 大模型的评测1.1 大模型评测如何促进发展1.2 大…

WebSocket的原理、作用、常见注解和生命周期的简单介绍,附带SpringBoot示例

文章目录 WebSocket是什么WebSocket的原理WebSocket的作用全双工和半双工客户端【浏览器】API服务端 【Java】APIWebSocket的生命周期WebSocket的常见注解SpringBoot简单代码示例 WebSocket是什么 WebSocket是一种 通信协议 ,它在 客户端和服务器之间建立了一个双向…

线性代数 --- 矩阵的对角化以及矩阵的n次幂

矩阵的对角化以及矩阵的n次幂 (特征向量与特征值的应用) 前言: 在上一篇文章中,我记录了学习矩阵的特征向量和特征值的学习笔记,所关注的是那些矩阵A作用于向量x后,方向不发生改变的x(仅有尺度的缩放)。线…

跟着野火从零开始手搓emWin(1)初识emWin

PS:在嵌入式领域,本人认为QT的应用范围和性能几乎吊打市面上所有的GUI工具。但是本人之所以学习emWin,是因为自己有些微不足道的小想法,需要通过它来实现。但是QT有点吃硬件的配置,为了MCU专门发行的QT我又懒得去弄&am…

mac电脑搭建vue项目(下篇)

第三步:安装npm (1)执行以下命令安装cnpm淘宝镜像 sudo npm install -g cnpm --registryhttps://registry.npmmirror.com (2)执行命令cnpm -v查看版本信息,结果说找不到cnpm命令 (3&#xff…

智慧校园:大数据助力校情分析

随着信息技术的快速发展,数据信息资源以井喷的姿态涌现。数据信息的大量涌现给人们带来丰富的数据信息资源,但面对海量的信息资源时,加大了人们对有效信息资源获取的难度,数据挖掘技术正是这一背景下的产物,基于数据挖…

【003_音频开发_基础篇_Linux进程通信(20种你了解几种?)】

003_音频开发_基础篇_Linux进程通信(20种你了解几种?) 文章目录 003_音频开发_基础篇_Linux进程通信(20种你了解几种?)创作背景Linux 进程通信类型fork() 函数fork() 输出 2 次fork() 输出 8 次fork() 返回值fork() 创建子进程 方…