【转】二维异形件排版算法介绍(二)
1???????二維異形件排樣算法
上一篇博客提到二維異形件排樣算法涉及到高速幾何算法、排樣策略和優(yōu)化算法,并且系統(tǒng)綜述了臨界多邊形(NFP)的求解算法,感興趣的童鞋可以查看博文:https://bbs.huaweicloud.com/blogs/175385
2???????二維異形件排樣策略
二維不規(guī)則異形件主要有兩種策略:分別是基于可行解的排樣策略和基于重疊移除的排樣策略。所謂基于可行解的排樣策略,是指在排樣過程中零件之間始終是不重疊的,而基于重疊移除的排樣策略,是指在排樣過程中允許零件之間發(fā)生重疊,在搜索過程中采用一定策略減少零件重疊的程度,直至最終得到可行解為止。下面分別詳細(xì)介紹。
2.1???基于可行解策略
基于可行解的排樣策略的好處是排樣方案總是可行的。設(shè)計該類算法需要考慮兩個主要因素:零件的可行放置位置和零件擺放的評估方法。最經(jīng)典的策略是“左底法”,即將零件擺放在所有可行點中最靠左的位置,若出現(xiàn)多個最左點,則選擇最底下的位置。
如何確定零件的可行放置位置呢?上文我們知道,NFP可以表征兩個簡單多邊形“相切”的情況,因此,當(dāng)固定一個簡單多邊形時,第二個簡單多邊形可以選擇其相對第一個簡單多邊形的NFP上的點作為可行放置點。當(dāng)然,這樣的點有無窮多個,因此,一般只選擇NFP的頂點(也可能再加上線段中點)作為可行放置點。
你可能會有這樣的疑問,當(dāng)只有兩個簡單多邊形時當(dāng)然可以這樣擺放,但是如果已經(jīng)擺放了若干個簡單多邊形,再擺放下一個簡單多邊形時,該如何保證其不與所有的多邊形都不重疊呢?這的確是一個非常好的問題,也正是開發(fā)異形件切割排版算法遇到的第一個難題。解決方案主要有兩個,一是將已經(jīng)排版的簡單多邊形合并成一個大多邊形,然后再進(jìn)行排版,如圖1所示,二是考慮所有NFP的頂點以及NFP每條線段的交點,然后再判斷這些點是否在某個NFP的內(nèi)部,如果該點不在任何一個NFP內(nèi)部,則該點為可行點,否則不是可行點。第一個方案的問題是,零件之間的空隙將無法再放其他的簡單多邊形,造成原料浪費,第二個方案的問題計算成本大。
圖1.?基于可行解的排樣選點策略(圖片來源:參考文獻(xiàn)[1])
零件排放位置該如何評估呢?常見的方法如表1和圖2所示:
表1.?異形零件擺放位置評估方法
圖2.?零件擺放位置評估常見方法(圖片來源:參考文獻(xiàn)[2])
上述基于可行解策略得到的排樣方案效果一般不會太好,還需要智能優(yōu)化算法改善結(jié)果。常見的智能優(yōu)化算法有遺傳算法、模擬退火算法、價值修正、束搜索等方法,下面詳細(xì)介紹一下束搜索方法。
圖3.?束搜索方法示意圖(圖片來源:參考文獻(xiàn)[3)
束搜索(Beam Search)是一種啟發(fā)式圖搜索方法,在每一步深度擴展的時候,剪掉一些質(zhì)量比較差的節(jié)點,留下一些質(zhì)量較高的節(jié)點。這樣就減少了空間消耗,并提升了時間效率。具體而言,如圖3(a)所示,束搜索使用廣度優(yōu)先策略創(chuàng)建搜索樹,在樹的每一層,按照局部啟發(fā)式評價方法對節(jié)點進(jìn)行排序,留下預(yù)先指定個數(shù)(filter width)的節(jié)點,而后再對這些節(jié)點進(jìn)行全局啟發(fā)式評價,再次留下預(yù)先指定個數(shù)(beam width)節(jié)點。僅這些節(jié)點在下一層次繼續(xù)擴展,其余節(jié)點就被剪掉了。圖3(b)展示了filter width=3,beam width=2時的搜索過程。束搜索評價函數(shù)采用順序搜索評價函數(shù)加和模式,選擇表1中Incentive列中的L1和R1,Balanced列中的O2,令評價函數(shù)等于L1+R1-O2。
束搜索還需要考慮零件的排序,常見的零件排序方法有如下幾種:(1)面積;(2)長度;(3)寬度;(4)周長;(5)凸包面積;(6)包絡(luò)矩形面積等等。一般采用零件面積進(jìn)行排序。
2.2???基于重疊移除的排樣策略
所謂重疊移除算法,如圖4示,是指在初始可行解的基礎(chǔ)上,減少原料長度,并通過交換、平移等鄰域搜索技術(shù)改變當(dāng)前的排版方案,在改變時允許裁片之間發(fā)生重疊,然后采用分離技術(shù)消除重疊,得到改進(jìn)可行解。上述過程不斷交替進(jìn)行,直到達(dá)到算法終止條件為止。
圖4.?重疊移除方法示意圖(圖片來源:參考文獻(xiàn)[4])
首先,使用啟發(fā)式方法得到一個可行解,假設(shè)原料長度為L。若得到了可行解,則縮小原料長度,若沒有得到可行解,則適當(dāng)增加原料長度。之后,擾動當(dāng)前解,實施上述優(yōu)化程序。該過程迭代進(jìn)行,直到達(dá)到算法終止條件。最終選擇原料長度最小的可行解作為算法的輸出。
重疊移除排版算法的詳細(xì)介紹將在后續(xù)博客中更新,歡迎大家關(guān)注。
參考文獻(xiàn)
[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.
登錄后可下載附件,請登錄或者注冊
【版權(quán)聲明】本文為華為云社區(qū)用戶原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載,如需轉(zhuǎn)載請發(fā)送郵件至:huaweicloud.bbs@huawei.com;如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,歡迎發(fā)送郵件進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。總結(jié)
以上是生活随笔為你收集整理的【转】二维异形件排版算法介绍(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】DCMTK各模块说明!!!!!!!
- 下一篇: 【转】dicom网络通讯入门(2)