【转】二维异形件排版算法介绍(三)
轉自: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進行舉報,并提供相關證據,一經查實,本社區將立刻刪除涉嫌侵權內容。
總結
以上是生活随笔為你收集整理的【转】二维异形件排版算法介绍(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拼接dem,山地出现平地
- 下一篇: DIY玩家必玩 《装机模拟器2》试玩版上