2022研究生数学建模竞赛(华为杯)B题

2023-05-16

题目:

方形件组批优化问题

一、背景介绍

智能制造被“中国制造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(条带),如Stripe1Strip2;第2阶段纵向切割生成模块称之为stack(栈),如Strip1继续被切割分成Stack1Stack2Stack3;第三阶段横向切割生成模块称之为item(产品项),如Stack1继续被切割分成Item1Item2Item3

三、问题

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

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

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

约束:

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

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

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

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

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

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

四、输入数据说明

每套输入数据由两部分组成,一部分是输入参数(参见后文),另一部分是产品项(item数据(需要另外下载),这里仅给出格式描述。

  1. 输入参数:
  1. 单个批次产品项item)总数上限 max_item_num = 1000
  2. 单个批次产品项item)的面积总和上限max_item_area = 250(m2)
  3. 原片长度plate_length = 2440(mm)
  4. 原片宽度plate_width = 1220 (mm)

  1. 产品项数据格式

序号

item_id

材质item_material

数量

item_num

长度(mm)

item_length

宽度(mm)

item_width

订单号

item_order

0

JL-18-E0

1

553

60

CR02707168

  1. 数据集:
  1. 数据集A;
  2. 数据集B。

数据集链接:

链接:https://pan.baidu.com/s/1fGQbY3eAAMBCJPVu5I-cPA?pwd=fqnt 
提取码:fqnt

五、提交结果要求

参赛选手必须按比赛规则提交规定格式的论文报告。此外,本赛题还有如下要求:

  1. 建立完整的数学模型
    1. 模型所用变量和参数都需要解释清楚。变量一般用单个小写英文字母表示;参数可以是希腊字母,也可以是第一个字母大写的英文字符串,但需要尽可能简洁;下标尽可能只用单个小写的英文字母表示。为简洁易读易懂起见,变量可以有上撇( ),上横(  辅助记号;
    2. 所有变量、参数和记号都必须通篇前后一致。

  1. 根据模型设计求解算法
    1. 模型和算法是两个独立的概念。提交的论文必须对数学模型的特点进行分析,包括模型的规模和结构,求解的难易,等等;
    2. 算法必须针对数学模型的特点设计。论文需要解释算法的合理性,包括算法实现的难易,复杂度估计和运行时间分析。如果采用实用性算法,必须解释算法的思路;
    3. 模型算法描述必须逻辑严谨,条理清晰,同时简单易懂。

  1. 编写程序算法,并使用给定数据进行求解
    1. 程序编写可以按自己的专长选用高级语言或脚本语言,或多种方法的组合,求解器可以是商用、开源、自主开发,由参赛者根据自己的情况选择。
    2. 程序必须模块化,结构要面向目标,注释清晰;
    3. 参赛选手需要在报告附录中介绍程序和数据结构。

  1. 论文报告必须明确包括如下数据以及排样方案效果图(如果两个排样方案相同,只需增加一个数量说明即可),同时欢迎作者采用其它图表形式对实验结果进行描述,但要求设计简单易懂,线条清晰,色彩分明,重点突出,标注恰到好处。

结果指标【注】

子问题1

子问题2

板材利用率

要求

要求

【注】:板材利用率 = 产品项面积之和 / 使用原片面积之和

  1. 本赛题还需提交程序实现的计算结果,及如下两个文本文件:。
    1. 排版方案:以原片左底点位坐标原点,以坐标系形式描述产品项的位置分布,还原排版方案,用文件名“cut_program.csv”提交,输出结果数据格式如下:

原片材质

原片序号

产品id

产品x坐标

产品y坐标

产品x方向长度

产品y方向长度

5-0218S

0

3

0

0

646.5

148

    1. 组批方案:输出组批结果(包含每个批次的排版方案),在产品项数据的基础上增加一列批次号属性,用文件名“sum_order.csv”提交,输出结果数据格式如下:

批次序号

原片材质

原片序号

产品id

产品x坐标

产品y坐标

产品x方向长度

产品y方向长度

0

5-0218S

0

3

0

0

646.5

148

参考文献

  1. Silva  E,  Alvelos  F,  Valério  de  Carvalho  J  M.  An  integer  programming  model  for two-and three-stage two-dimensional cutting stock problems [J]. European Journal of Operational Research, 2010, 205(3): 699-708.
  2. Cui Y D, Huang B X. Reducing the number of cuts in generating three-staged cutting patterns [J]. European Journal of Operational Research, 2012, 218: 358-365.
  3. Puchinger J, Raidl G R. Models and algorithms for three-stage two-dimensional bin packing [J]. European Journal of Operational Research, 2007, 183(3): 1304-1327.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022研究生数学建模竞赛(华为杯)B题 的相关文章

  • session数据保存

    1 xff0c 点击表格中的单选框 xff0c 选择商品数据 xff0c 然后点击加入所选商品 xff0c 该商品就会添加到所选商品的列表中去 2 xff0c 关于Session并不陌生 xff0c Session是另一种记录客户状态的机制
  • Ubuntu 16.04设置开机自启动脚本

    1 创建脚本 sh文件 可以在 home user Documents scripts路径下建立名为auto run test sh的文件 xff1b auto run test sh里面写上具体要做的事 xff0c 例如我这里 xff1a
  • spring详解

    Spring 详解 什么是spring Spring是一个开源框架 xff0c 它由Rod Johnson创建 它是为了解决企业应用开发的复杂性而创建的 Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情 然而 xff
  • 谁是你生命中的贵人

    谁是你生命中的贵人 谨以此文献给我一生至爱 作者 xff1a 成晓旭 版权保留 转载请保持文章完整性 最近很奇怪的发现 xff0c 生命中的人和事 xff0c 常常不是均匀而规律地分布在人生的时间轴上 xff0c 或许很长时间都平淡无奇 x
  • Android开发之使用BroadcastReceiver实时监听电量(源码分享)

    Android系统中实时的监听手机电量以及开机启动功能都是通过BroadcastReceiver组件实现的 我们能够动态注冊这个类的一个实例通过Context registerReceiver 方法或者静态注冊 xff0c 通过 lt Re
  • 爬取豆瓣网站前top250电影名称和评分保存到本地excel中(附效果图和代码)

    import requests from lxml import etree import xlwt headers 61 39 User Agent 39 39 Mozilla 5 0 Windows NT 10 0 Win64 x64
  • IDEA项目结构介绍

    文章目录 IDEA项目结构介绍一 创建project模块二 创建Module模块三 创建Package包四 创建class类五 代码测试 IDEA项目结构介绍 project xff08 项目 工程 xff09 module xff08 模
  • Uart串口通讯协议与环形队列(裸机/RTOS)

    MCU上使用的稳定Uart通讯协议 环形队列 协议的主要内容 xff1a 接收 xff1a 字节间超时判断 环形队列接收 非阻塞式接收整帧数据 接收查错 xff1b 发送 xff1a 未应答重发 span class token punct
  • 对Excel表格数据的导出

    一 xff1a 有Excel文件模板的导出 xff08 1 xff09 判断模板文件是否存在 1 先通过Server MapPath 将相对的路径转为实际的物理路径 2 然后在通过IO流判断文件是否存在 例 xff1a System IO
  • Linux命令

    基本操作 Linux关机 重启 关机 shutdown h now 重启 shutdown r now 查看系统 CPU信息 查看系统内核信息 uname a 查看系统内核版本 cat proc version 查看当前用户环境变量 env
  • AOP概念及作用详细解释

    今天学习spring的时候接触到一个新的知识以及概念AOP 老师当时讲这个知识点的时候 xff0c 并没有讲太多关于这方面的知识 xff0c 我们所学习到的知识侧重于应用 xff0c 所以对这一块的理论知识是有一点缺少 xff0c 以至于小
  • Permission denied解决办法之一

    最近在编一个小程序 xff0c 有一步需要我删除一个文件 xff0c 但当用remove 后返回值始终是 1 用了perror后提示 Permission denied xff0c 在搜索后总是找不到解决办法 xff0c 然后我感觉是需要删
  • 数脉科技:Windows server 2016的基础设置

    是否经常不会设置Windows server 2016这款服务器而苦恼呢 xff0c 现在不用怕了数脉科技一点一点耐心的来教会大家如何学会Windows server 2016的基础设置吧 xff01 一 组策略 WIN键 43 R键 xf
  • 2020-09-11

    三招你成为短视频大神 xff01 很多小伙伴对于自媒体比较眼红 xff0c 看着抖音快手上很多靠直播 靠短视频火起来的人都挣到钱了 xff0c 所以跃跃欲试 xff0c 也想在这里面分一杯羹 但是真的那么容易吗 xff1f 直播就不用说了
  • 2020-10-15

    短视频配音选材的方法 网络短视频内容花样众多 xff0c 在快手短视频或者抖音短视频上面总是能刷到很多新奇的东西 xff0c 其中给短视频配音也是一个模块 xff0c 根据剧情来即兴发挥或者编排台词都是很重要的一部分 给短视频配音又分好多种
  • 服务器处理能力,你估算正确过吗?

    服务器处理能力 xff0c 你估算正确过吗 xff1f 作者 xff1a 成晓旭 1 引题 但凡写过技术方案的都知道 xff0c 在技术方案最终落实到工程实施部署时 xff0c 必须编制出当前解决方案需要部署的IT设备及环境 xff0c 包
  • 2020-10-20

    抖音快手短剧本写作方法 看别人拍的视频拍的新鲜有趣 xff0c 但是自己就是拍不出那种效果 xff0c 其实抖音视频前期是非常好做的 xff0c 可能发一个PPT一样的几张靓照或者是逗猫咪的小视频 xff0c 就能轻松获赞数十万 但是有个词
  • 2020-11-02

    如何更好的制作短视频内容 xff1f 细节决定成败 xff0c 对抖音短视频尤其重要 xff0c 抖音本来就是以内容为主的短视频平台 一个短视频能火 xff0c 一个短视频不火 xff0c 相同的主题 xff0c 不同的细节 xff0c 它
  • 2020-11-24

    如何才能撰写出好的短视频文案 首先是要调起用户的共鸣 xff0c 比如以前抖音上很火的一个视频 视频拍的很简单 xff0c 就是坐在出租车上拍摄的一些 xff0c 呼啸而过的高楼大厦和车流 xff0c 以及灰色的天空和不断向后跑的树 视频和
  • 2020-11-26

    短剧本创作小技巧 xff0c 提升完播率 相信每一个编剧在自己的短剧本拍成视频时 xff0c 都会有满足感和成就感 但有的时候 xff0c 也会辗转难眠 xff0c 而其中遇到了最大问题就是完播率太低 而影响完播率的关键所在 xff0c 就

随机推荐

  • 2020-11-28

    短剧本中的场景选择 一般在写短剧本的时候 xff0c 一个故事里面会有很多的故事场景 xff0c 场景写的比较好就会使短剧本在转换为段视频的时候 xff0c 制作的短视频会更加的好看 故事的场景也算得上是一个故事的主要开端 xff0c 开端
  • 基于C++11实现的阻塞队列(BlockQueue)

    思路 xff1a 生产者消费者模型 如图 xff0c 多个生产者线程和多个消费者线程共享同一固定大小的缓冲区 xff0c 它们的生产和消费符合以下规则 xff1a 生产者不会在缓冲区满的时候继续向缓冲区放入数据 xff0c 而消费者也不会在
  • 航空订票系统设计(java、数据库、通信联合项目)

    航空订票系统设计 xff08 java 数据库 通信联合项目 xff09 最近帮高中同学做的一个学校项目 xff0c 这个项目主要是用Java写的 前期主要搭建五个类 xff0c Order xff08 选择 xff09 Passenger
  • java基础之IO流中的字节流

    目录 一 xff1a 字节流写数据 二 xff1a 字节流写数据的方式 三 xff1a 字节流写数据实例 字节流写数据步骤 字节流写数据例子 字节流追加写数据 四 xff1a 字节流读取数据 五 xff1a 字节读取数据的方法 六 xff1
  • java基础之转换流

    目录 一 xff1a 解释 二 xff1a 转换流输入流 1 xff1a 构造方法 2 xff1a InputStreamReader读数据方法 3 xff1a 例子 3 xff1a 注意 三 转换流输出流 1 xff1a 构造方法 2 x
  • java基础之多线程的引入

    目录 一 xff1a 多线程概述 进程 线程 举例 二 xff1a 并行与并发 三 xff1a Java程序的运行原理 四 xff1a JVM启动的时候是单线程还是多线程呢 xff1f 一 xff1a 多线程概述 进程 正在运行的程序 xf
  • 电信运营商云计算体系架构分析

    电信运营商云计算体系架构分析 作者 xff1a 成晓旭 xff08 版权保留 欢迎转载 xff09 第三篇 xff1a 体系架构分析 电信运营商云计算发展分析之一 xff1a 战略定位分析 xff0c 可供参考 电信运营商云计算发展分析之二
  • java基础之线程安全问题(一)

    目录 一 xff1a 线程安全判断依据 二 xff1a 解决线程安全问题实现 同步代码块 1 格式 2 同步代码块的锁对象是谁 xff1f 3 xff1a 同步方法的时候 xff0c 锁对象又是谁呢 xff1f 4 xff1a 静态同步方法
  • java基础之线程安全问题(二)

    目录 一 xff1a Lock锁的使用 xff08 解决同步问题 xff09 二 xff1a 例子 三 xff1a 同步的特点 xff08 1 xff09 同步的前提 xff08 2 xff09 同步的好处 xff08 3 xff09 同步
  • redis基础知识

    目录 一 xff1a 概念 二 xff1a NoSQL分类 三 xff1a Redis数据模型 四 xff1a 键Key 一 xff1a 概念 开源的 xff08 BSD协议 xff09 xff0c 使用ANSI C 编写 xff0c 基于
  • Hive建表以及导入数据

    目录 一 xff1a 内部表和外部表 1 xff1a 外部表 2 xff1a 外部表 3 xff1a 外部表和内部表区别 二 xff1a 上传数据方式 一 xff1a 内部表和外部表 1 xff1a 外部表 内部表基础建表语句一 默认指定文
  • Hive行列互转

    目录 一 xff1a 行转列 1 xff1a lateral view 行转列 2 xff1a explode函数 3 xff1a 例子 二 xff1a 列转行 1 概念 2 xff1a 例子 一 xff1a 行转列 1 xff1a lat
  • Hive行转列的应用之计算公司累加收入

    公司代码 年度 1月 12月的收入金额 burk year tsl01 tsl02 tsl03 tsl04 tsl05 tsl06 tsl07 tsl08 tsl09 tsl10 tsl11 tsl12 853101 2010 100200
  • Hive的常用函数

    目录 1 关系运算 2 数值计算 3 条件函数 4 日期函数 5 xff1a 字符串函数 6 xff1a Hive 中的wordCount 1 关系运算 等值比较 61 61 61 lt 61 gt 不等值比较 61 lt gt 区间比较
  • IDEA配置spring环境,并简单测试

    目录 一 下载安装需要的依赖包 二 IDEA的部署 一 下载安装需要的依赖包 首先 xff0c 我们需要下载一点jar包 第一个jar包是第三方依赖的jar包 xff0c Spring的核心容器依赖commons logging的JAR包
  • Unity导出工作台(Console)数据

    首先在Unity中添加C 脚本 xff1a using System Collections using System Collections Generic using UnityEngine using UnityEditor usin
  • Unity利用代码生成空心立方体(立方体挖走一个圆柱)

    先看效果 还未生成mesh时挖去圆柱的立方体 生成mesh后挖去圆柱的立方体 放代码为敬 xff08 脚本挂在空物体上即可 xff09 xff1a using System Collections using System Collecti
  • 企业ERP系统开发总结及建议

    企业ERP系统开发总结及建议 作者 xff1a 成晓旭 对于像我们这种规模的大型公司 xff0c 自己建设 实施和维护满足公司特定管理要求的管理信息系统 xff0c 是目前部分大型公司建设企业ERP 的常见思路 比如 xff1a XXXX
  • Unity 3D导入txt文本文件坐标并打印

    先看打印结果 xff1a 首先我们创建一个txt文件 xff0c 将坐标输入或复制进去 xff0c 从左到右依次为x y z xff0c 中间用逗号 xff08 英文逗号 xff09 隔开 在Unity工程文件下的Assets文件夹下创建R
  • 2022研究生数学建模竞赛(华为杯)B题

    题目 xff1a 方形件组批优化问题 一 背景介绍 智能制造被 中国制造 2025 列为主攻方向 而个性化定制 更短的产品及系统生命周期 互联互通的服务模式等成为目前企业在智能制造转型中的主要竞争点 以离散行业中的产品为例 xff0c 如电