日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转】云社区 博客 博客详情 二维异形件排版算法介绍(一)

發布時間:2023/12/10 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】云社区 博客 博客详情 二维异形件排版算法介绍(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:https://bbs.huaweicloud.com/blogs/175385

【摘要】 排樣問題(Nesting Problem)又稱為下料問題(Cutting and stock problems)或填充問題(Packing Problem),其目標是在材料切割過程中尋找一個較高的材料利用率。排樣問題屬于經典的NP-Hard問題,其時間復雜度隨著問題規模的增加迅速上升,難以在合理時間內精確求解大規模實例。

算法簡介

?

排樣問題(Nesting Problem)又稱為下料問題(Cutting and stock problems)或填充問題(Packing Problem),其目標是在材料切割過程中尋找一個較高的材料利用率。排樣問題屬于經典的NP-Hard問題,其時間復雜度隨著問題規模的增加迅速上升,難以在合理時間內精確求解大規模實例。相較于矩形排樣問題,異形件排樣問題的突出特點是裁片的邊界輪廓復雜,計算過程中需要復雜的幾何運算,其算法復雜度將進一步上升,是學術界和工業界公認的難以求解的問題。因此在大多數情況下,不規則形狀排樣算法主要是以啟發式算法和智能搜索算法為主。

綜上所述,二維異形件排樣算法涉及到的關鍵技術主要有三個,如圖1所示,分別是高效率的幾何算法、排樣策略和優化算法。

圖1.?排樣算法關鍵技術

NFP求解算法

?

二維異形件排樣算法的一個相當重要的方面是計算幾何算法,其主要內容在于計算異形件之間的靠接位置、確定裁片與面料之間的包含關系、判斷是否重疊以及實現二維區域之間的交、并、差等布爾運算。

為尋找一種更簡便高效的靠接和重疊判斷計算方法,研究人員提供了臨界多邊形(No-Fit Polygon,NFP)的概念[1]。臨界多邊形NFP的簡要定義如下:給定兩個多邊形,其中一個固定,另一個多邊形圍繞固定的多邊形作不旋轉的剛體運動,并圍繞固定多邊形滑動,直到回到起點位置,在此過程中在運動多邊形上選取一點作為參考點,則參考點在環繞過程中形成的軌跡就稱為臨界多邊形,如圖2所示。

?

?

圖2.?臨界多邊形概念(圖片來源:參考文獻[2])

NFP求解還會遇到特殊場景,如圖3所示,圖a由于多邊形A存在凹槽,多邊形B可以在凹槽內部移動,此時將形成空腔NFP;圖b由于多邊形B恰好可以沿著多邊形A凹槽移動,此時NFP將退化成線;圖c多邊形B恰好可以放在多邊形B凹槽內,此時NFP將退化成點。NFP求解算法同時要考慮這些特殊情景。

?

圖3.?特殊NFP場景:a.?空腔NFP;b. NFP退化成線;c. NFP退化成點(圖片來源:參考文獻[3])

由于臨界多邊形的重要性質,NFP目前已成為二維不規則形狀排樣算法的基礎性幾何工具。如何快速準確的計算出NFP是異形件排樣問題的關鍵技術。學界目前的求解算法主要有4種,分別是凸化分割法、移動碰撞法[4]、明科夫斯基矢量和法[5]以及軌跡線法[2]。簡要介紹如下:

(1)凸化分割法。凸化分割法基本思路是將凹多邊形分割為凸多邊形,然后求得凸多邊形之間的NFP,最后將凸多邊形的NFP進行合并得到最終的NFP。凹多邊形凸化分割的算法有多種,例如三角劃分、凹點劃分、條帶分割、角平分線分割等。設多邊形邊數為n,凹點個數為r,目前最少次數分割算法時間復雜度不超過O(n+r2min(r2,n)),?當簡單多邊形的凹點個數達到n/2時,該分割算法的復雜度已達到O(n3)。如果再加上求解凸多邊形的NFP和求解多邊形并集的布爾運算,該方法的時間復雜度將進一步增加。此外,該方法可以得到內部空腔NFP,但是對于NFP退化場景,標準多邊形求并運算無法得到。

(2)移動碰撞法。移動碰撞法的基本步驟如下:如圖4所示,首先根據多邊形A和B當前時刻的靠接狀態,得到B下一步的移動方向,在該移動方向上,計算出A和B之間的最小碰撞距離,從而得到移動距離,根據移動方向和移動距離,將B移動到新的位置,然后重復以上過程,直至繞完一圈,回到初始位置。該算法比較容易實現,但是該算法總的時間復雜度較高,達到(O(m+n)mn)。此外,該算法可以處理空腔NFP和退化NFP等特殊場景。

?

圖4.?移動碰撞法計算NFP(圖片來源:參考文獻[2])

(3)明科夫斯基矢量和法。兩個凸多邊形之間的NFP等價于計算兩者的明科夫斯基矢量和,其算法復雜度為O(m+n)。其基本求解思路如下:如圖5所示,首先多邊形A(固定多邊形)按照逆時針排列,多邊形B(移動多邊形)按照順時針排列。然后,將多邊形A和多邊形B的所有邊矢量置于原點(0,0),接著,對所有邊矢量按與起始矢量的夾角從小到大排序,最后將排序后的邊矢量進行串聯累加,即可得到A和B的臨界多邊形NFPAB。然而,當兩個多邊形中有一個為凹多邊形時,凹邊的遍歷次序將會被打亂,從而不能合成一個臨界多邊形。為解決此問題,研究人員引入了斜率圖的概念來解決此問題[5,6]。然而,該方法實現復雜,時間復雜度也比較高,最壞情況下的時間復雜度為O(m2n2log(mn))。此外,該算法也可以處理空腔NFP和退化NFP等特殊場景。

圖5.?明科夫斯基矢量和法求解凸多邊形NFP(圖片來源:參考文獻[2])

(4)軌跡線法。軌跡線法的基本原理是:如圖6所示,首先求得多邊形每個頂點相對于另一個多邊形的所有軌跡線,然后從軌跡線集合中得到外圍多邊形和內部順時針環,即為臨界多邊形。該算法從NFP的本身定義出發,算法過程簡單,平均時間復雜度為O(mn),并且能夠處理內部空腔NFP和退化NFP等特殊情景。

?

圖6.?軌跡線法NFP算法原理圖(圖片來源:參考文獻[2])

總結

NFP是二維異形件排樣算法的基礎性幾何工具,實現不好將嚴重影響排樣算法性能。作者曾采用凸化分解法求解100個多邊形的NFP,由于多邊形平均點數較大(平均82個),單純計算NFP的時間開銷就達到半小時。因此,非常有必要對各種NFP求解算法進行比較分析,選擇一種高效的NFP求解算法。表1總結了4種NFP算法的時間復雜度,以及是否可以處理特殊情景。

文獻[2, 4, 5]是各種NFP求解算法的巔峰之作,建議初學者先從移動碰撞法[4]入手學習(該文實現細節講解清楚,其余文章則較少),然后再考慮實現其他方法。

?

表1. 4種NFP求解算法對比

?時間復雜度能否處理內部空腔能否處理退化場景
凸化分解法>O(m3+n3)YesNo
移動碰撞法O((m+n)mn)YesYes
明科夫斯基矢量和法O(m2n2log(mn))YesYes
軌跡線法O(mn)YesYes

??更多有關排版算法的介紹將在后續博客中更新,歡迎大家關注。

參考文獻

?

[1] Adamowicz M, Albano A. Nesting two-dimensional shapes in rectangular modules[J]. Computer-Aided Design, 1976, 8(1): 27-33.

[2]?Huyao L, Yuanjun H, Bennell J A. The irregular nesting problem: a new approach for nofit polygon calculation[J]. Journal of the Operational Research Society, 2007, 58(9): 1235-1245.

[3] Bennell J A, Oliveira J F. The geometry of nesting problems: A tutorial[J]. European journal of operational research, 2008, 184(2): 397-415.

[4]?Burke E K, Hellier R S R, Kendall G, et al. Complete and robust no-fit polygon generation for the irregular stock cutting problem[J]. European Journal of Operational Research, 2007, 179(1): 27-49.

[5]?Bennell J A, Song X. A comprehensive and robust procedure for obtaining the nofit polygon using Minkowski sums[J]. Computers & Operations Research, 2008, 35(1): 267-281.

[6] Ghosh P K. A unified computational framework for Minkowski operations[J]. Computers & Graphics, 1993, 17(4): 357-378.


?

登錄后可下載附件,請登錄或者注冊

【版權聲明】本文為華為云社區用戶原創內容,轉載時必須標注文章的來源(華為云社區),文章鏈接,文章作者等基本信息,否則作者和本社區有權追究責任。如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至:huaweicloud.bbs@huawei.com進行舉報,并提供相關證據,一經查實,本社區將立刻刪除涉嫌侵權內容。

總結

以上是生活随笔為你收集整理的【转】云社区 博客 博客详情 二维异形件排版算法介绍(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。