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

2022华为杯研究生数学建模竞赛B题思路解析

B题思路
子问题1:排样优化问题。要求建立混合整数规划模型,在满足生产订单需求和相关约
束条件下,尽可能减少板材用量。
约束:
1. 在相同栈(stack) 里的产品项(item) 的宽度(或长度)应该相同;
2.最终 切割生成的产品项是完整的,非拼接而成。
本子问题要求编程,以数据集A为输入,输出结果要求见第五部分。

子问题1的思路:
首先观察并分析数据(A1-A4, A5删掉不考虑,官方已通知),每个excel表中材料相同,
目标为给出板材的切割方案。
根据第3条假定,排样方式为精确排样且切割段数不超过三,子问题中还要求相同栈里
产品宽度或高度相同,所以很容易想到将数据中具有相同长度或宽度的部件进行合并,排列
成更大的部件组合作为一一个栈,比如这三个部件:

 他们宽度相同,将其组合成224*1153的一个大块部件作为一个栈,然后这个栈再加上
-些冗余,比如224*1160,注意得保持宽度不变,之后再合并类似的不同栈组成更大的条
带,以满足条带的长度恰好是板材的长或宽,不同条带再一次组合直到匹配原材料的长宽。
总共组合三次,每次都可以加,上适当冗余,最后能精确匹配原材料版的长宽。这样的划分可
符合题目要求。对于三阶段约束排样算法,有精确算法(如线性规划,动态规划,整数规划
和分支定界法等)和启发式算法(遗传算法,模拟退火算法等)两种,可根据实际数据量大小进
行选择。
然后如何鉴定这切分的优秀程度呢?可用有效利用率表示,利用率即为所有部件面积和
除以所用的所有原料面积和,越高越好。

首先确定极限利用率,即理论最少需要多少板材,如A1中所有部件面积和为284万平
方米,需要83.54块2440*1220的原材料板,即至少需要84块版,那么极限利用率为99.45%,.
因此划分后利用率越接近99.45越好(理论不可能超过),当然这个,,上限还能再降低,比如
A1数据中有2418*58的部件,由于原材料版最长边为2440且没有小于22的部件可用,因
此这种部件放入版中必然会有22*58的面积损失,如果考虑这种情况还可以进一步降低.上界。
最底层的算法是几何算法,可以采用左底策略等放置部件,通过不同策略选择最优的元件放
置到矩形中。
随机化方法和智能优化算法,则要处理排放矩形的顺序,可以使用各种规则,比如面积
大小排序,周长,宽度,高度,综合等等,然后还要组织选择搜索策略。往往需要快速找到一个局部范围内的较优解,然后慢慢搜索到更好的全局解。
以遗传算法为例:
首先将长或宽相同的部件进行分组,遗传算法以整数编码(编码方式不唯---,比如:每个
部件有组号和组内序号,正数表示横放,负数表示竖放等等),解码时根据整数排列顺序组
合相邻的部件为更大的部件,然后将不同部件拼合,计算出利用率等。

子问题2:订单组批问题。要求建立混合整数规划模型,对数据集B中全部的订单进行
组批,然后对每个批次进行独立排样,在满足订单需求和相关约束条件下,使得板材原片的
用量尽可能少。
在满足子问题1约束的基础上进-步要求:
1) 每份订单当且仅当出现在一个批次中;
2)每个批次中的相同材质的产品项(item) 才能使用同一块板材原片进行排样;
3)为保证加工环节快速流转,每个批次产品项(item) 总数不能超过限定值;
4)因工厂产能限制,每个批次产品项(item) 的面积总和不能超过限定值;
本子题要求编程,以数据集B为输入,输出结果要求见第五部分。

子问题2的思路:
子问题2的数据量达到109218 条,我们需要做的是根据题目要求完成组批,组批需要
满足以下限制:
单个批次产品项(item)总数上限max itemn_ num= 1000
单个批次产品项(item)的面积总和上限max item_ area = 250 (m2)
根据产品项数量粗略估计,至少需要110 个批次。
我们要寻找需遵循的组批原则。题目背景中提到:组批批次太小,材料利用率低,生产
效率低;如果组批批次太大,材料利用率会提高,但订单交货期得不到保证,订单分拣难度
提高,生产效率降低。
假定我们已有一种组批策略,需要建立一个可以量化组批合理性的模型,可以使用批次
内批次内产品项数/单批次产品项总数.上限和批次内产品面积/单个批次产品项面积总和,上
限这两个指标进行评价。
那么组批策略如何产生呢,可以建立整数规划模型,在数据处理的基础,上(将item按照
相同材质、大小一致的汇总)使用启发式算法,如遗传算法等进行求解。

可以尝试多种组批策略,分别计算所用板材原片的数量,选取最小的作为最优解。

具体思路和其他题目思路,可以点击下方群名片

相关文章:

  • 2022华为杯研究生数学建模竞赛E题思路解析
  • 【C语言】学生考勤管理系统
  • 常用的调试技巧(如何检测bug)
  • SpringBoot二十六课大纲和目录
  • 2022年中国研究生数学建模竞赛C题-汽车制造涂装-总装缓存调序区调度优化问题
  • 2022研究生数模A题——移动场景超分辨定位问题
  • vue2脚手架之全局事件总线
  • spring boot学生社团管理系统的设计与实现毕业设计源码151109
  • STM32CUBEMX开发GD32F303(15)----外部中断EXTI
  • 算法竞赛Java选手的语言快速熟悉指南
  • 【电商数仓】数仓搭建之服务数据(data warehouse service-- DWS)层(DWS层概述、几个系统函数和用户主题的建立与数据导入)
  • Window系统安装FFmpeg
  • 青少年python系列 6.循环
  • 向上转型和向下转型
  • 烂大街的TCP/IP网络模型,你真的懂了?
  • 78. Subsets
  • Android优雅地处理按钮重复点击
  • ECMAScript入门(七)--Module语法
  • ES6 ...操作符
  • ES学习笔记(12)--Symbol
  • exif信息对照
  • GitUp, 你不可错过的秀外慧中的git工具
  • linux学习笔记
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 第十八天-企业应用架构模式-基本模式
  • 分布式熔断降级平台aegis
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 聊聊redis的数据结构的应用
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 排序算法之--选择排序
  • 项目管理碎碎念系列之一:干系人管理
  • 用element的upload组件实现多图片上传和压缩
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #etcd#安装时出错
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $.ajax()
  • (C语言)共用体union的用法举例
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (function(){})()的分步解析
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (一一四)第九章编程练习
  • (转)jdk与jre的区别
  • (转)LINQ之路
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)ORM
  • ***检测工具之RKHunter AIDE
  • .NET 4.0中的泛型协变和反变
  • .NET Core 2.1路线图
  • .NET Core 成都线下面基会拉开序幕