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

2022年中国研究生数学建模竞赛B题-方形件组批优化问题

一、背景介绍

智能制造被“中国制造2025”列为主攻方向, 而个性化定制、更短的产品及系统生命周期、互联互通的服务模式等成为目前企业在智能制造转型中的主要竞争点。以离散行业中的产品为例,如电子器件、汽车、航空航天零部件等,这些产品均是依赖于机械设计、可分散加工、可灵活组装且同类产品款式极多。对于此类产品,客户可能提出的产品需求难以穷举、订单规模难以预测且产品质量要求极高。此时“个性化定制”的服务需求则要求企业具有高效快速的需求分析及产品设计能力、具有柔性且精益的生产流程、具有完整且精细的全流程生产管控能力。

方形件产品(也称板式类产品是以板材为主要原片、通过平面加工后的几种板式配件装配而形成的一类产品。常见方形件产品制造企业如3C(计算、通讯、消费电子)、板式家具、玻璃、钣金件等行业多采用“多品种小批量”的个性化定制生产,由于企业订单数量庞大,生产组织通常采用“订单组批+批量生产+订单分拣”的模式,通过使用订单组批来实现批量切割,提高原材料的利用率,加工完成后再按不同客户订单进行分拣。

上述个性化定制生产模式中的订单组批排样优化至关重要订单组批是将不同订单组成若干批次,实现订单的批量化生产。在对小批量、多品种、大规模的订单进行组批生产,如果组批批次太小,材料利用率低,生产效率低;如果组批批次太大,材料利用率会提高,但订单交货期得不到保证,订单分拣难度提高,生产效率降低,缓冲区容量不足而造成堵塞等,需要解决个性化与生产高效性之间的矛盾。

排样优化本质上一个下料问题(也称切割填充问题),优化的目的是合理规划方形件在板材上的布局,以减少下料过程中存在板材浪费,简化切割过程。此问题是一种计算复杂度很高的组合优化问题,也是运筹学中的一个重要分支。下料作为众多制造企业生产链中产品及零部件生产的第一道工序,消耗的材料和资源不容小视,如何提高材料利用率,降低原材料消耗,是企业减少资源和能源浪费,承担环境责任所要解决的关键问题。

二、问题描述

订单组批问题:在考虑订单交货期、设备产能负荷、仓储容量、材料利用率、生产效率、生产工艺约束等因素下,对生产订单进行组批优化。使具有相同材质、交货期相近、工艺相似的订单安排在同一个生产批次, 通过订单组批优化来保证交货期, 提高原材料的利用率,提高设备生产效率等。为便于统一处理数据和体现问题本质,本次赛题所有订单的交货期均相同,不做区分。批次的定义为完成若干订单全部任务且不含任何不完整订单任务的订单集合。

下料优化问题(也称排样优化问题):根据同一生产批次内方形件的尺寸与数量,选择原片的规格和数量,进行下料排样优化,最大化板材原片利用率。依据切割工序的工艺要求,排样方案必须满足“一刀切”(也称齐头切,Guillotine cut)约束(任何一次直线切割都要保证板材可分离,换言之,每次直线切割使得板材分成两块)。下料优化问题属于具有“一刀切”约束的板型材方形件排样优化问题。

考虑切割工艺的方式不同,分齐头切(guillotine cut)和非齐头切(如图1),齐头切又可以细分精确方式和非精确方式(涉及到切割的阶段数,如图2).图2中的三阶段排样方式主要有三种不同的类型:三阶段非精确(3NE)排样方式、三阶段匀质排样方式(3E)、三阶段同质排样方式(3H)。其中 3E 和 3H 排样方式可三个阶段内切割出准确尺寸的方形件,因此都属于精确排样方式。3NE 排样方式中,部分方形件还需要额外的第四阶段切割才能得到满足规格尺寸要求

 

(a)齐头切(guillotine cutting)                                 (b)非齐头切(non-guillotine cutting)

图1 切割示意:(a)齐头切(guillotine cutting)和(b)非齐头切(non-guillotine cutting)

 

图2 三阶段排样方式

由于涉及到阶段数不同,不同文献对于切割每个阶段的称呼不一样,为了便于理解和统一表述形式,采用英文的方式形容关键阶段模块的描述,具体可参见图3(实际切割过程中,第一刀可能垂直于长边,也可能垂直于短边,图3以垂直于其中一条边为例)

 

图3 不同切割阶段的形式定义

因为常见的阶段最多为3-4个,因此以3阶段的切割方式为例(如图3),第1阶段的横向切割生成模块称之为stripe(条带),如Stripe1和Strip2第2阶段纵向切割生成模块称之为stack(栈),如Strip1继续被切割分成Stack1、Stack2和Stack3第三阶段横向切割生成模块称之为item(产品项),如Stack1继续被切割分成Item1、Item2和Item3。

三、

本赛题由两个子问题组成,第二个子问题的约束都基于一个子问题并与之相容,但两个子问题所提供的数据不相关。如果概念定义和过程描述与业界有所出入,皆以本赛题为准。本题假定:

  1. 只考虑齐头切的切割方式(直线切割、切割方向垂直于板材一条边,并保证每次直线切割板材可分离成两块)
  2. 切割阶段数不超过3,同一个阶段切割方向相同
  3. 排样方式为精确排样
  4. 假定板材原片仅有一种规格且数量充足
  5. 排样方案不用考虑锯缝宽度(即切割的缝隙宽度)影响。

子问题1:排样优化问题。要求建立混合整数规划模型在满足生产订单需求和相关约束条件下,尽可能少板材量。

约束:

  1. 在相同栈(stack)里的产品项(item)的宽度(或长度)应该相同;
  2. 最终切割生成的产品项是完整的,非拼接而成。

本子题要求编程,数据集A为输入,输出结果要求见第五部分。

子问题2:订单组批问题要求建立混合整数规划模型数据集B中全部的订单进行组批,然后对每个批次进行独立排样,在满足订单需求和相关约束条件下,使得板材原片的用量尽可能少。

在满足子问题1约束的基础上进一步要求:

  1. 每份订单当且仅当出现在一个批次中;
  2. 每个批次中的相同材质的产品项(item)才能使用同一块板材原片进行排样;
  3. 为保证加工环节快速流转,每个批次产品项(item)不能超过限定值
  4. 因工厂产能限制,每个批次产品项(item)的面积总和不能超过限定值

本子题要求编程,数据集B为输入,输出结果要求见第五部分。

本问题为优化问题,如果学习过运筹学,比如交通、经济等专业的同学推荐,专业对口

前几年类似这种优化问题题目也出现过几次,可以搜索一下之前的案例进行参考来解图,题目的难点在于准确建立优化目标和优化约束,建立了数学模型,最后的求解用传统算法:粒子群、遗传、灰狼、退火这些都可以求解,

相关文章:

  • Three读取pdb文件创建分子结构图实例
  • Spring Data JPA @Query注解
  • 猿创征文|Python快速刷题网站——牛客网 数据分析篇(十四)
  • 【元宇宙】元宇宙的定义、特征、要素及架构
  • 4、“组件协作“模式
  • 刚开始做自媒体,无从下手,有什么好的建议吗?
  • 2022 华为杯研赛F题思路 研究生数学建模
  • Opencv项目实战:12 你这背景太假啦!
  • python解CCF-CSP真题《202209-1 如此编码》
  • 数据分析可视化08 案例 2:历史数据变化趋势图设计
  • Redis-缓存击穿
  • 信息学奥赛一本通:2072:【例2.15】歌手大奖赛
  • 【Linux】进程控制 (万字)
  • ARMv9新特性:虚拟内存系统架构 (VMSA) 的增强功能
  • 【JavaSE】之流程控制与方法
  • egg(89)--egg之redis的发布和订阅
  • Electron入门介绍
  • Java Agent 学习笔记
  • Kibana配置logstash,报表一体化
  • Laravel 中的一个后期静态绑定
  • Less 日常用法
  • spark本地环境的搭建到运行第一个spark程序
  • spring security oauth2 password授权模式
  • 阿里云应用高可用服务公测发布
  • 服务器之间,相同帐号,实现免密钥登录
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 技术:超级实用的电脑小技巧
  • 深度学习中的信息论知识详解
  • 写代码的正确姿势
  • 一道闭包题引发的思考
  • 译自由幺半群
  • elasticsearch-head插件安装
  • 整理一些计算机基础知识!
  • ​卜东波研究员:高观点下的少儿计算思维
  • # 数论-逆元
  • (¥1011)-(一千零一拾一元整)输出
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)重识new
  • .NET 发展历程
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET程序员迈向卓越的必由之路
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .net和php怎么连接,php和apache之间如何连接
  • .Net小白的大学四年,内含面经
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • .pop ----remove 删除
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • .sh 的运行
  • @ConfigurationProperties注解对数据的自动封装
  • [20161214]如何确定dbid.txt
  • [20171102]视图v$session中process字段含义
  • [2669]2-2 Time类的定义