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

转自:https://bbs.huaweicloud.com/blogs/196289
【摘要】 二维不规则异形件主要有两种策略:分别是基于可行解的排样策略和基于重叠移除的排样策略。所谓基于可行解的排样策略,是指在排样过程中零件之间始终是不重叠的,而基于重叠移除的排样策略,是指在排样过程中允许零件之间发生重叠,在搜索过程中采用一定策略减少零件重叠的程度,直至最终得到可行解为止。

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

登录后可下载附件,请登录或者注册

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】介绍一些免费/开源的医学影像后处理工具

转自:https://blog.csdn.net/liaopiankun0618/article/details/84328331 来源:融视影像科技 综述 医学影像的处理有两个特质。一是复杂,整个处理流程涉及多种算法,需要调整的参数较多。二是发展快,从采集、重建到后…

android gradle 语法,Gradle 1.语法

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?gradle 语法解析:gradle的语法十分简洁,以至于看起来跟像是配置文件。先看一个简单的android项目完整的gradle脚本:build.gradle123456789101112131415…

【转】二维异形件排版算法介绍(三)

转自:https://bbs.huaweicloud.com/blogs/203947 【摘要】 相比于基于可行解的排样算法,重叠移除算法在改变解的状态时,允许零件之间发生重叠,然后采用分离技术消除重叠,直到达到算法的终止条件为止。重叠移除算法的关…

【转】Dicom格式文件解析器!!!!!!!

转自:https://www.cnblogs.com/assassinx/archive/2013/01/09/dicomViewer.html Dicom全称是医学数字图像与通讯,这里讲的暂不涉及通讯的问题 只讲*.dcm 也就是diocm格式文件的读取,读取本身是没啥难度的 无非就是字节码数据流处理。只不过确…

【转】医学影像调窗技术!!!!

转自:https://www.cnblogs.com/assassinx/p/3139505.html 在年初的时候做过一个dicom格式文件解析,当时只是提了下。看着跟别人的显示出来也差不多 其实是我想太简单了。整理了下思路 这里提供正确的调窗代码。 医学影像 说得挺高科技的 其实在这个过程…

【转】理解字节序 大端字节序和小端字节序

转自:https://www.cnblogs.com/gremount/p/8830707.html 以下内容参考了 http://www.ruanyifeng.com/blog/2016/11/byte-order.html https://blog.csdn.net/yishengzhiai005/article/details/39672529 1. 计算机硬件有两种储存数据的方式:大端字节序…

创建windows服务,定时监控网站应用程序池

最近网站总是报"Timer_Connection"错误,导致该网站所使用的应用程序池由于错误过多停止运行,网站也就出现了service unvaliable,无法访问,在网上查了很多资料,结果很让人无奈,这个问题已经困扰我了很久,一直没有得到解决,后来同事发来一篇文章让我有了新的解决方法,虽…

【转】Qtcreator中常用快捷键和小技巧

转自:https://blog.csdn.net/imxiangzi/article/details/48863855 https://blog.csdn.net/jh1513/article/details/52346802 快捷键及对应含义 下载地址:http://download.csdn.net/detail/jh1513/9615209 快捷键 功能 Esc 切换到代码编辑状态 F1 …

【转】VS编译时自动引用Debug|Release版本的dll

转自:https://www.cnblogs.com/KevinYang/archive/2011/04/10/2011879.html 公司一些早期的项目,把所有工程都放到一个解决方案下了,导致整个解决方案编译很慢,而且也不便于类库的复用和维护。因此我们决定把工程按照功能划分到不…

【转】DICOM之Print!!!!!!!!!

转自:https://blog.csdn.net/weixin_41556165/article/details/81064531 基本概念: Film:在DICOM协议中使用Film来统称不同的Hard Copy,例如photographic film和paper。 DICOM Print的数据流由Print Session、Print Job、Print(h…

静态html js文件上传,js实现动态添加上传文件页面

发邮件是需要添加一些文件,每添加一个文件,页面上可以显示一个表单文件上传选项。此功能为:初始时刻只有一个添加按钮,当点击添加文件时,会增加一个选择文件和删除区域,同时显示上传按钮,当点击…

WINCE6.0文件系统及存储管理器

*******************************LoongEmbedded******************************** 作者:LoongEmbedded 时间:2010.12.03 类别:WINCE嵌入式系统 ********************************LoongEmbedded******************************** Filesys.…

【转】Wireshark网络抓包(一)——数据包、着色规则和提示

转自:https://www.cnblogs.com/strick/p/6261463.html 一、数据包详细信息 Packet Details面板内容如下,主要用于分析封包的详细信息。 帧:物理层、链路层 包:网络层 段:传输层、应用层 1)Frame 物理层…

【转】Wireshark网络抓包(二)——过滤器

转自:https://www.cnblogs.com/strick/p/6261915.html 一、捕获过滤器 选中捕获选项后,就会弹出下面这个框,在红色输入框中就可以编写过滤规则。 1)捕获单个IP地址 2)捕获IP地址范围 3)捕获广播或多播地址…

html访问虚拟目录路径,IIS7.5虚拟目录物理路径指向共享文件夹详解

本文重点描述如何使用IIS访问共享资源来架设站点或执行 ASP.Net 等脚本。UNC是 Universal Naming Convention 的简称,也叫通用命名规范、通用命名约定。网络(范指局域网)上资源的完整位置名称。通常情况下,拥有多台服务器的朋友在使用IIS建立站点的时候&…

【转】DICOM:DICOM三大开源库对比分析之“数据加载”

背景: 上一篇博文DICOM:DICOM万能编辑工具之Sante DICOM Editor介绍了DICOM万能编辑工具,在日常使用过程中发现,“只要Sante DICOM Editor打不开的数据,基本可以判定此DICOM文件格式错误(准确率达99.9999%…

html中点击照片时放大缩小,基于jquery实现一张图片点击鼠标放大再点缩小

. 代码如下:var isopen false;var newImg;var w 200; //将图片宽度200var h 200; // 将图片高度 200$(document).ready(function(){$("img").bind("click", function(){newImg this;if (!isopen){isopen true;$(this).width($(this).width() w);$(th…

css入门之head区设置

收藏夹小图标 如果你将本站加入收藏夹,可以看到在收藏夹网址之前的IE图标变成了本站特别的图标。要实现这样效果很简单,首先制作一个16x16的icon图标,命名为favicon.ico,放在根目录下。然后将下面的代码嵌入head区: &l…

04751计算机网络安全讲解,【19份】04751计算机网络安全自考试卷_历年真题自考答案及解析_湖南080901计算机科学与技术(原B080702计算机及应用)专业-自考生资料网...

1、资料如何使用本商城提供资料为WORD版,可打印成纸质版,结合备考习惯,营造考试氛围。支持手机查看,随时随地,高效学习。WORD文档也可直接用于电脑端学习,快速浏览,永久使用。2、文档无法编辑&a…

【转】Wireshark网络抓包(三)——网络协议

转自:https://www.cnblogs.com/strick/p/6262284.html 一、ARP协议 ARP(Address Resolution Protocol)地址解析协议,将IP地址解析成MAC地址。 IP地址在OSI模型第三层,MAC地址在OSI第二层,彼此不直接通信…