2024年ASOC SCI2区TOP,有效离散人工蜂群算法+变压器制造矩形切割问题,深度解析+性能实测

目录


1.摘要

本文解决了变压器行业中带有断刀约束的二维矩形切割问题,该问题要求从较大且大小不一的矩形中切割出一组矩形物品,其目标是最小化切割所需物品所使用的料箱数量。为了解决这个问题,本文提出了一种有效离散人工蜂群算法,其采用十进制编码方式,其中每个整数代表一种料箱或物品类型,并通过构造性启发式解码整数列表,以生成符合断刀切割约束的切割模式。此外,还设计了一种复制策略来提高解的质量。

2.问题描述

压板切割问题包括从一组变尺寸的压板中切割一组矩形物品,物品宽度为 w i w_i wi,高度为 h i h_i hi ,需求为 d i d_i di,其中 i ∈ { 1 , ... , n } i\in\{1,\ldots,n\} i∈{1,...,n},压板宽度为 W t W_t Wt,高度为 H t H_t Ht,供给量为 D t D_t Dt,其中 t ∈ { 1 , ... , m } t\in\{1,\ldots,m\} t∈{1,...,m}。在排列过程中物品可以旋转90°,当切割模式满足以下条件时,切割是可行的:物品完全放置在板内;物品不重叠;切割是无约束的断刀切割。

目标是尽可能多地利用剩余料,并节省原材料,最终的目标是最小化使用的原材料数量:
N b i n = ∑ W t H t N t / A s N_{bin}=\sum W_tH_tN_t/A_s Nbin=∑WtHtNt/As

其中, N t N_{t} Nt 是原材料压板 t t t 的数量, A s A_{s} As 是最小原材料压板的面积。

3.有效离散人工蜂群算法

本文提出了离散人工蜂群算法(DABC)用于解决二维切割问题,该问题因解空间庞大而难以通过传统精确方法解决,启发式算法易陷入局部最优。DABC通过局部改进与全局搜索相结合,避免了这一问题,并有效计算目标值。该算法在组合优化问题中的优异表现为其应用于2vMSCS-G问题提供了理论基础。

在DABC中,解决方案通过一个正整数列表表示,包含料箱类型和物品类型的编码,该解决方案包括编码列表、目标值和切割模式。

X = ( b 1 , b 2 , ⋯   , b m ; r 1 , r 2 , ⋯   , r n ) X=(b_1,b_2,\cdots,b_m;r_1,r_2,\cdots,r_n) X=(b1,b2,⋯,bm;r1,r2,⋯,rn)

其中, b t ∈ [ 1 , m ] , r i ∈ [ 1 , n ] b_t\in[1,m],r_i\in[1,n] bt∈[1,m],ri∈[1,n]。

DABC雇佣蜂阶段:蜜蜂通过交换操作生成邻近食物源的位置。随机选择编码对进行交换,并通过此操作更新解决方案。观察蜂阶段:观察蜂根据雇佣蜂提供的信息,随机选择更有利的源并通过部分匹配交叉法(PMX)生成新的邻居解。侦查蜂阶段:当源头被认为已耗尽时,侦查蜂生成新的解,并将其替换为原解。该阶段的解通过轮盘赌法和PMX方法生成。

解码过程Pack通过二叉树表示无约束断刀切割模式,叶节点为物品,H和V节点分别表示水平和垂直排列的子模式。Pack根据编码列表建立二叉树,将物品排列到料箱中,并根据面积最小化选择合适的子模式。

复制策略通过在垂直和水平方向复制切割模式,减少料箱空闲空间并优化物品排列。根据料箱尺寸和物品需求,选择复制次数较多的方向,以减少料箱使用并避免剩余物料,从而提升解决方案的质量。

4.结果展示

5.参考文献

1\] Luo Q, Rao Y, Du B. An effective discrete artificial bee colony for the rectangular cutting problem with guillotine in transformer manufacturing\[J\]. Applied Soft Computing, 2024, 159: 111617. ### 6.代码获取 xx ### 7.算法辅导·应用定制·读者交流 xx

相关推荐
_OP_CHEN5 小时前
算法基础篇:(七)基础算法之二分算法 —— 从 “猜数字” 到 “解难题” 的高效思维
c++·算法·蓝桥杯·二分查找·acm·二分答案·二分算法
一匹电信狗5 小时前
【C++11】Lambda表达式+新的类功能
服务器·c++·算法·leetcode·小程序·stl·visual studio
在等晚安么5 小时前
力扣面试150题打卡
算法·leetcode·面试
AI科技星6 小时前
宇宙膨胀速度的光速极限:基于张祥前统一场论的第一性原理推导与观测验证
数据结构·人工智能·经验分享·python·算法·计算机视觉
EXtreme356 小时前
C语言指针深度剖析(2):从“数组名陷阱”到“二级指针操控”的进阶指南
c语言·开发语言·算法
luoganttcc6 小时前
介绍一下 机器人坐标转换的 RT 矩阵
算法
草莓火锅7 小时前
用c++求第n个质数
开发语言·c++·算法
snakecy7 小时前
自然语言处理(NLP)算法原理与实现--Part 1
人工智能·算法·自然语言处理
萌新彭彭7 小时前
vLLM主要模块Scheduler详解
算法·源码阅读
灵动小溪7 小时前
时频信号分析总结
算法