二维异形件排版算法介绍(二)

举报
我爱吃芒果 发表于 2020/09/01 19:47:05 2020/09/01
【摘要】 二维不规则异形件主要有两种策略:分别是基于可行解的排样策略和基于重叠移除的排样策略。所谓基于可行解的排样策略,是指在排样过程中零件之间始终是不重叠的,而基于重叠移除的排样策略,是指在排样过程中允许零件之间发生重叠,在搜索过程中采用一定策略减少零件重叠的程度,直至最终得到可行解为止。

1       二维异形件排样算法

上一篇博客提到二维异形件排样算法涉及到高速几何算法、排样策略和优化算法,并且系统综述了临界多边形(NFP)的求解算法,感兴趣的童鞋可以查看博文:https://bbs.huaweicloud.com/blogs/175385

2       二维异形件排样策略

二维不规则异形件主要有两种策略:分别是基于可行解的排样策略和基于重叠移除的排样策略。所谓基于可行解的排样策略,是指在排样过程中零件之间始终是不重叠的,而基于重叠移除的排样策略,是指在排样过程中允许零件之间发生重叠,在搜索过程中采用一定策略减少零件重叠的程度,直至最终得到可行解为止。下面分别详细介绍。

2.1   基于可行解策略

基于可行解的排样策略的好处是排样方案总是可行的。设计该类算法需要考虑两个主要因素:零件的可行放置位置和零件摆放的评估方法。最经典的策略是“左底法”,即将零件摆放在所有可行点中最靠左的位置,若出现多个最左点,则选择最底下的位置。

如何确定零件的可行放置位置呢?上文我们知道,NFP可以表征两个简单多边形“相切”的情况,因此,当固定一个简单多边形时,第二个简单多边形可以选择其相对第一个简单多边形的NFP上的点作为可行放置点。当然,这样的点有无穷多个,因此,一般只选择NFP的顶点(也可能再加上线段中点)作为可行放置点。

你可能会有这样的疑问,当只有两个简单多边形时当然可以这样摆放,但是如果已经摆放了若干个简单多边形,再摆放下一个简单多边形时,该如何保证其不与所有的多边形都不重叠呢?这的确是一个非常好的问题,也正是开发异形件切割排版算法遇到的第一个难题。解决方案主要有两个,一是将已经排版的简单多边形合并成一个大多边形,然后再进行排版,如图1所示,二是考虑所有NFP的顶点以及NFP每条线段的交点,然后再判断这些点是否在某个NFP的内部,如果该点不在任何一个NFP内部,则该点为可行点,否则不是可行点。第一个方案的问题是,零件之间的空隙将无法再放其他的简单多边形,造成原料浪费,第二个方案的问题计算成本大。

图2-1.png

1. 基于可行解的排样选点策略(图片来源:参考文献[1]

零件排放位置该如何评估呢?常见的方法如表1和图2所示:

1. 异形零件摆放位置评估方法

表2-1.png

图2-2.png

2. 零件摆放位置评估常见方法(图片来源:参考文献[2]

上述基于可行解策略得到的排样方案效果一般不会太好,还需要智能优化算法改善结果。常见的智能优化算法有遗传算法、模拟退火算法、价值修正、束搜索等方法,下面详细介绍一下束搜索方法。

图2-3.png

3. 束搜索方法示意图(图片来源:参考文献[3

束搜索(Beam Search)是一种启发式图搜索方法,在每一步深度扩展的时候,剪掉一些质量比较差的节点,留下一些质量较高的节点。这样就减少了空间消耗,并提升了时间效率。具体而言,如图3a)所示,束搜索使用广度优先策略创建搜索树,在树的每一层,按照局部启发式评价方法对节点进行排序,留下预先指定个数(filter width)的节点,而后再对这些节点进行全局启发式评价,再次留下预先指定个数(beam width)节点。仅这些节点在下一层次继续扩展,其余节点就被剪掉了。图3b)展示了filter width=3beam width=2时的搜索过程。束搜索评价函数采用顺序搜索评价函数加和模式,选择表1Incentive列中的L1R1Balanced列中的O2,令评价函数等于L1+R1-O2

束搜索还需要考虑零件的排序,常见的零件排序方法有如下几种:(1)面积;(2)长度;(3)宽度;(4)周长;(5)凸包面积;(6)包络矩形面积等等。一般采用零件面积进行排序。

2.2   基于重叠移除的排样策略

所谓重叠移除算法,如图4示,是指在初始可行解的基础上,减少原料长度,并通过交换、平移等邻域搜索技术改变当前的排版方案,在改变时允许裁片之间发生重叠,然后采用分离技术消除重叠,得到改进可行解。上述过程不断交替进行,直到达到算法终止条件为止。

图2-4.png

4. 重叠移除方法示意图(图片来源:参考文献[4]

首先,使用启发式方法得到一个可行解,假设原料长度为L。若得到了可行解,则缩小原料长度,若没有得到可行解,则适当增加原料长度。之后,扰动当前解,实施上述优化程序。该过程迭代进行,直到达到算法终止条件。最终选择原料长度最小的可行解作为算法的输出。

重叠移除排版算法的详细介绍将在后续博客中更新,欢迎大家关注。

参考文献

[1] Oliveira J F, Gomes A M, Ferreira J S. TOPOS–A new constructive algorithm for nesting problems[J]. OR-Spektrum, 2000, 22(2): 263-284.

[2] Bennell J A, Song X. A beam search implementation for the irregular shape packing problem[J]. Journal of Heuristics, 2010, 16(2): 167-188.

[3] Bennell J A, Song X. A beam search implementation for the irregular shape packing problem[J]. Journal of Heuristics, 2010, 16(2): 167-188.

[4] Elkeran A. A new approach for sheet nesting problem using guided cuckoo search and pairwise clustering[J]. European Journal of Operational Research, 2013, 231(3): 757-769.


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。