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

转自:https://bbs.huaweicloud.com/blogs/203947

【摘要】 相比于基于可行解的排样算法,重叠移除算法在改变解的状态时,允许零件之间发生重叠,然后采用分离技术消除重叠,直到达到算法的终止条件为止。重叠移除算法的关键技术点主要有:重叠度量方法、零件扰动技术、重叠消除技术。

1       二维异形件排样算法

上两篇博客提到二维异形件排样算法涉及到临界多边形(NFP)的求解算法,以及排样算法的排样策略,感兴趣的童鞋可以查看博文:          https://bbs.huaweicloud.com/blogs/175385

https://bbs.huaweicloud.com/blogs/196289

2       二维异形件重叠移除排样算法

 

相比于基于可行解的排样算法,重叠移除算法在改变解的状态时,允许零件之间发生重叠,然后采用分离技术消除重叠,直到达到算法的终止条件为止。重叠移除算法的基本流程伪代码如下图所示:

 

图1. 重叠移除算法基本流程伪代码(图片来源:参考文献[1])

其中,MinimizeOverlap函数是重叠移除算法的关键,涉及到的关键技术点主要有:重叠度量方法、零件扰动技术、重叠消除技术。下面分别就这三个方面进行简要介绍。

 

2.1   重叠度量方法

两个零件之间的重叠指标主要有三种方式,如图2所示,分别是重叠面积、最小嵌入深度,以及最小横向/纵向嵌入深度等。重叠面积是最直接的衡量零件重叠的方法,但是此种方法最大的问题是计算复杂度高,每移动一次零件,都要求计算其与其他零件的重叠面积。第2种重叠衡量方法是最小嵌入深度。所谓嵌入深度,是指为消除重叠,按照某个方向移动其中一个零件的距离。所谓最小嵌入深度,是指所有可能方向的嵌入深度的最小值。第3种重叠移除方法是第2种方法的特例,限制可能方向为横向和纵向两种。

 

图2. 重叠指标计算方法:(a) 重叠面积;(b) 最小嵌入深度;(c) 最小横向/纵向嵌入深度

 

 

重叠移除算法的一个主要瓶颈是计算量大,其中,零件重叠度量是其中主要瓶颈之一。为提高算法效率,学术界提出了很多种改进算法[2,3,4]。以第2种方法为例,直接的思路是计算参考点相对于NFP每条边的最小距离,从中选择最小值即为最小嵌入深度。这个方法的时间复杂度是O(n),其中n表示NFP的边个数。为简化计算,可采用Medial Axis算法对NFP进行剖分,当参考点落在其中某个剖分时,参考点到该剖分对应线段的最小距离即为该点到NFP所有线段的最小值。如图3所示,当参考点为v1时,其到线段s3的最小距离即为该点到NFP所有线段的最小距离。

 

图3. NFP的Medial Axis剖分(图片来源:参考文献[3])

2.2   零件扰动技术

零件扰动技术主要包括三大类:平移、旋转和交换[5]。扰动的目的是破坏当前的解结构,使零件之间产生重叠,以便使用重叠移除技术消除之。从优化的角度分析,零件扰动是为了跳出当前的局部最优解,向更优解进发的必要步骤。

2.3 重叠移除技术

 

重叠移除技术主要有两种策略:每次移动所有零件和每次移动一个零件。分别介绍如下:

(1)每次移动所有样片

以文献[3]中的基于非线性优化算法(LBFGS)的重叠移除方案为例,该算法使用重叠零件间的嵌入深度衡量重叠程度,以当前排样方案中所有零件间嵌入深度的加和作为优化目标,将消除重叠转化为一个连续优化问题进行求解。如图4所示,该算法将消除零件间重叠所需的最小位移定义为梯度函数,在梯度信息指导下进行零件的移动。相较于其他基于重叠移除策略的排样算法,该算法的局部寻优能力更强,但也更容易陷入局部病态解导致消除重叠失败。

 

图4. 零件间嵌入深度与最小分离向量

(2)每次移动一个样片

该算法每次只移动一个重叠零件。若移动后重叠指标变小,则保留此次移动,否则不进行移动。此方法主要涉及候选位置寻找算法和全局寻优算法。零件候选位置的选择通常有两种方法:一种是依次按照长度方向和宽度方向移动零件,直到零件重叠指标最小为止[4]。如图5所示,重叠零件通过3次移动最终寻找到了不发生重叠的位置;另一种是采用搜索算法,比如布谷鸟邻域搜索算法,迭代寻找重叠指标最小的点[1]。全局寻优算法一般采用Guide Local Search(GLS)算法,每次迭代后通过更新惩罚因子跳出局部最优[1,4]。

 

图5. 重叠零件候选位置寻找算法

3  总结

 

重叠移除算法原理简单,但要想实现一个高效可行的解决方案却并不容易。面临的主要难点主要有三点:

(1)  高效的计算几何算法:其中,NFP计算是首先需要攻克的难题之一;

(2)  高超的编程实现能力:重叠移除算法有部分功能函数是高频调用函数,实现细节对算法效率影响较大,一般情况需要持续优化;此外,所有的商用排版软件都采用了并行化实现方式,并行化实现方案对算法效率和效果影响也较大;、

(3)   参数调节:学术界对异形件排版算法的细节往往很少或没有介绍,这导致复现的算法几乎都达不到论文中呈现的结果,因此需要实现者自己调整算法参数,或者提出全新的改进方案。

   至此,二维异形件排版算法介绍完毕。若有问题,欢迎大家留言交流。

 

 

参考文献

 

[1] 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.

[2] Egeblad J, Nielsen B K, Odgaard A. Fast neighborhood search for two-and three-dimensional nesting problems[J]. European Journal of Operational Research, 2007, 183(3): 1249-1266.

[3] Imamichi T, Yagiura M, Nagamochi H. An iterated local search algorithm based on nonlinear programming for the irregular strip packing problem[J]. Discrete Optimization, 2009, 6(4): 345-361.

[4] Umetani S, Yagiura M, Imahori S, et al. Solving the irregular strip packing problem via guided local search for overlap minimization[J]. International Transactions in Operational Research, 2009, 16(6): 661-683.

[5] Heckmann R, Lengauer T. A simulated annealing approach to the nesting problem in the textile manufacturing industry[J]. Annals of Operations Research, 1995, 57(1): 103-133.

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:huaweicloud.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

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

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

相关文章

【转】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第二层,彼此不直接通信…

【转】Wireshark网络抓包(四)——工具

转自:https://www.cnblogs.com/strick/p/6344486.html 一、基本信息统计工具 1)捕获文件属性(Summary) 1. File:了解抓包文件的各种属性,例如抓包文件的名称、路径、文件所含数据包的规模等信息 2. Tim…

silverlight + wcf(json格式) + sqlserver存储过程分页

silverlight并没有提供现成的分页控件,百度了一圈,也没有发现aspx中好用的类似AspNetPager成熟控件,网上现有的一些分页代码,很多也是基于1.0版本的,silverlight2.0的并不多,自个儿琢磨了一下,发…

什么是指利用计算机和现代,现代计算机一般指什么计算机?

现代计算机一般指通用数字电子计算机,它是当今世界电子计算机行业中的主流,其内部处理的是一种称为符号信号或数字信号的电信号;它的主要特点是“离散”,在相邻的两个符号之间不可能有第三种符号存在。电子计算机分为模拟式电子计…