• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      板材排樣中非擬合多邊形的構造實現(xiàn)方法①

      2019-09-24 06:21:26毛良獻
      計算機系統(tǒng)應用 2019年9期
      關鍵詞:排樣參考點多邊形

      毛良獻,王 品

      1(中國科學院大學,北京 100049)

      2(中國科學院 沈陽計算技術研究所,沈陽 110168)

      3(沈陽高精數(shù)控智能技術股份有限公司,沈陽 110168)

      板材排樣問題影響著許多領域,例如紡織品、塑料、金屬切削等等,其中最主要的就是兩維不規(guī)則形狀的排樣.這些問題通??梢悦枋鰹椋簩⒁幌盗械牟灰?guī)則的二維形狀放置在一個或多個板子上,使得他們盡可能的接觸,這樣就可以節(jié)約板材的面積,提高板材利用率.這種板材排樣是一個NP 難問題,因此有許多方法用于解決它,包括線性規(guī)劃方法,啟發(fā)式放置方法等等[1-4].通常,絕大多數(shù)情況都可以利用三角函數(shù)[5]來解決,但NFP 提供了一種高效的解決策略.

      在本文中,介紹了非擬多邊形及實現(xiàn)它一種方法.非擬合多邊形結構能處理一些傳統(tǒng)方法(基于三角函數(shù))很難解決的特殊情況,說明非擬合多邊形在排樣處理中可以作為一種解決思路.

      1 非擬合多邊形

      本文提出了一種非擬合多邊形(No-Fit Polygon,NFP) 的構造方式,原理是利用環(huán)繞的方法來產(chǎn)生NFP[6],該算法是對文獻[6]提出的算法的一種改進實現(xiàn).比起傳統(tǒng)的利用三角函數(shù)的重疊測試[7-10],實現(xiàn)該算法簡單,同時具有時間復雜度較低的優(yōu)點.

      算法的原理如下,輸入?yún)?shù)是兩個二維多邊形,形狀可以是不規(guī)則的.假定其中一個多邊形(記為A)保持不動,另一個多邊形(記為B) 繞A 運動.這樣當B 環(huán)繞A 一周后,就可以生成一個非擬合多邊形(下面簡稱為NFP).

      假定多邊形A 為固定多邊形,B 為環(huán)繞多邊形.算法實現(xiàn)過程分為4 步.(1)首先需要A 與B 接觸;(2)移動B;(3)找到下一個起點;(4)將平移向量合并.

      1.1 多邊形A 與B 的接觸

      在B 繞A 運動之前,需要把B 放置在A 的邊上,保證B 接觸A,但又和A 不相交.然后,可以對B 沿某方向平移,使之一直是和A 保持接觸.

      例如,圖1給出的多邊形A和B,同時標記了A 的最低點A_minY和B 的最高點B_maxY.

      圖1 多邊形A和B

      那么,可以讓B 的最高點與A 的最低點接觸,這樣A 與B 是一定接觸,但不相交(也可以有其他方法,例如B 最左點和A 的最右點接觸,等等).平移向量

      那么B 按T 平移后,如圖2所示,B 與A 接觸并且不交叉.此時,B 所在位置是B 繞A 運動的開始位置,并記錄起點和B 的參考點,保證B 在繞A 平移過程中可以回到初始位置.設B 的參考點和起點都為A_minY.那么,當B 的參考點再次平移到起點(A_minY)時,就可以確定B 繞A 一周.

      1.2 移動B

      在A 與B 接觸后,需要對B 做平移操作.這個過程細分為以下5 步.

      1.2.1 找出接觸邊對

      當前A和B 接觸,通過遍歷A和B 的全部邊,找出所有接觸點.繼而確定全部接觸邊對.

      如圖3所示,找到4 組接觸邊對,分別是<a1,b1>,<a1,b3>,<a2,b1>,<a2,b3>.

      圖2 多邊形B 沿T 向量平移

      圖3 接觸點及接觸邊對

      1.2.2 從接觸邊對中找出平移向量

      在1.2.1 節(jié)中,找到4 組接觸邊對.接觸邊對的作用是:一組接觸邊對能生成一個平移向量,故能得到全部的平移向量.例如,在圖3的4 組邊對中,1 號邊對<a1,b1>可以生成一個平移向量=-,是由邊b1 生成的.那為什么是由邊b1 生成,而非a1 生成? 算法假定平移向量是接觸點到邊的終點,故a1 生成的是空向量.是的反向,這是認為B 必須繞A 做逆時針運動.那么2 號邊對<a1,b3>就不能生成平移向量.因為接觸點是a1(也是b3)的終點.而3 號邊對<a2,b1>(a2 與b1 是平行關系)可以生成平移向量=(或者=-).也就是說,在這種情況下可以選擇任何一邊來生成平移向量.4 號邊對<a2,b3>中,=.接觸邊對對應的平移向量見表1.

      1.2.3 刪除不可行的平移向量

      對1.2.2 節(jié)中找到的所有平移向量,需要依次判斷多邊形A 與B 這些向量移動會不會交叉.若有交叉,那么該向量就是不可行的.按如下方式思考:因為B 繞A 運動,那么1.2.1 節(jié)中的接觸邊對中來自B 的邊是運動的.也就是說,我們可以對每一個平移向量,依次針對每一組接觸邊對,判斷來自B 的邊按該向量平移,是否與來自A 的邊相交.若有一組接觸邊相交,那么就可以判斷該平移向量是不可行的,直接舍棄.

      表1 多邊形A和B 的接觸邊對對應的平移向量

      那么怎么驗證接觸邊對中來自B 的邊按平移向量平移,會不會與來自A 的接觸邊交叉.對于每一組接觸邊對而言,可以計算出弧度區(qū)間,使得來自B 的邊沿區(qū)間中的某個弧度方向平移,不會和來自A 的邊相交.故只需要判斷平移向量的弧度方向是否在該區(qū)間內即可.例如,對1.2.1 節(jié)中的四組接觸邊對,可以確定相應的弧度區(qū)間(用圓弧表示可行的弧度區(qū)間,如圖4所示.

      圖4 接觸邊對的可行弧度區(qū)間

      1.2.4 修剪可行的平移向量

      通過1.2.3 的過濾,找到了全部可行的平移向量.那么接下來,需要判斷每一個可行的平移向量是否能全部應用.

      在圖5中,A 是一個不規(guī)則多邊形,B 是一個矩形.紅色的是一個可行的平移向量,淺綠色是紅色的平移向量平移到B 的每個頂點之后的情況.

      此時B 沿著紅色的平移向量平移,A 與B 必然交叉.從而,必須對紅色向量進行修剪.圖中得到修剪后的是綠色的平移向量.看到有兩個綠色向量,但取得是較短的那個.同時,需要注意的是,B 按修剪后的平移向量平移,一定不會與A 相交?

      圖5 多邊形沿平移向量平移,交叉

      在圖6中,A 不變,B 是較大的矩形,紅色向量仍是可行的平移向量.將紅色向量平移到B 的每個頂點,發(fā)現(xiàn)并不需要修剪平移向量.但是按紅色向量平移后,如圖7所示,A 與B 相交.這種情況下,就需要考慮將可行的平移向量平移到A 的每個頂點,然后再修剪.如圖8所示.

      在圖8中,將平移向量的每個終點平移到A 的每個頂點,判斷與B 的交叉性,最終得到修剪后的平移向量(綠色).然后將兩種情況的最小值作為最終的可行平移向量.對每一個可行的平移向量執(zhí)行上述過程之后,就能得到全部修剪后的平移向量,然后按從長到短排序.接下來只需要按最長的修剪后的可行平移向量平移B 就可以了.

      圖6 平移向量的起點放置在B 的每個頂點

      圖7 多邊形B 沿平移向量平移

      圖8 平移向量的修剪

      值得指出的是,在文獻[5]中,直接使用修剪后的最長平移向量進行平移.但是,在實驗中發(fā)現(xiàn)該平移向量不一定是能用的.也就是說,按此平移向量平移后,B 在下一次平移之前就不一定與A 接觸了.

      1.2.5 移動多邊形B

      通過前面的步驟,得到了修剪后最長的可行平移向量.接下來,B 按這個向量平移即可.但需要注意兩點:(1)判斷B 的參考點是否回到了起點.若回到起點,得到一個NFP.(2)判斷B 的參考點是否越過起點.這個是對文獻[5]的一個補充.也就是此時B 的平移距離過長,超過了起點,如圖10所示.

      圖9 B 沿平移向量 (或)平移情況分析

      圖10 B 的參考點沿平移向量平移越過起點

      在圖10中,紅色的是可行的平移向量,綠色的表示B 的參考點的平移.由圖知,當B 的參考點沿平移向量平移后,越過了起點.本來可以生成一個NFP,現(xiàn)在就會無限循環(huán)下去,因為B 的參考點不會移東到起點了.在這種情況下,需要縮短平移向量.

      1.3 找到下一個起點

      在1.2 節(jié)中,生成了一個完整的外部NFP,是B 對A 的外部環(huán)繞.是否存在著其他NFP 呢? 也就是B 在A 的內部平移存不存在,從而生成內部的NFP.這里涉及到起點搜索.在1.2 節(jié)中,我們假定的起點是A 的最低點.而在這里,我們需要找到其他起點,以便B 能從這些起點出發(fā),得到其他的NFP.

      1.3.1 起點搜索算法

      在尋找外部NFP 過程中,A 中的有些邊可能沒有遍歷到.故可以從這些邊中尋找起點.假設a 是A 中一條未遍歷的邊,試著在a 中找到一個可行的起點.算法過程如下:依次讓B 的每個頂點平移到a 的起點,判斷:(1)如果A 此時與B 沒有相交,那么a 的起點是一個可行的起點.可再次運用1.2 節(jié)中介紹的方法.(2)如果A 此時與B 有交叉,那么需要讓B 沿著a 移動,直到平移到一個的不相交位置,或者到達a 的終點(這就說明在a 上不可能找到起點).

      現(xiàn)在,假定A 與B 相交,然后B 沿a 平移尋找可行的起點.首先,可以快速判斷一下,B 沿著a 移動是否一定存在交叉.方法如下:因為此時的接觸點是a 的起點,并且B 中有兩條邊也接觸到這個頂點.那只要判斷一下,B 的兩條接觸邊是否至少有一條邊在a 的左側.若成立,那么B 沿著a 移動一定會與A 相交.這樣,就需要判斷A 中其他未遍歷的邊了.如果通過上述判斷,就需要修剪a 向量.過程如下:當前的平移向量=a 的起點->a 的終點.同樣,利用1.2.4 中介紹的修剪方法修剪,得到.那么B 按平移,同時更新接觸點和B 的參考點.再次運用1.2 節(jié)中介紹的方法,找出剩余的平移向量.這里要注意,就是對a 進行標記,表示a 被遍歷過了.那么在下一次的搜索中就不會遍歷邊a 了.

      1.4 平移向量合并生成NFP

      通過1.1 節(jié)到1.3 節(jié)的計算,找到所需要的全部平移向量.現(xiàn)在,就需要對他們合并生成NFP.每一組平移向量都對應一個起點和B 的參考點.那么對B 的參考點執(zhí)行一組平移操作,就可以生成一個NFP.

      2 案例介紹

      下面舉一些例子,如圖11至圖15,表明算法的運行情況.圖11至圖15中左圖是多邊形的初始位置,右圖是平移的開始位置、起點和生成的NFP.

      圖11 生成一個外部的NFP

      3 測試

      根據(jù)文獻[5]和來自the Association of the European Operational Research Societies 的板材排樣工作小組的數(shù)據(jù)集(https://www.euro-online.org/websites/esicup/data-sets/),執(zhí)行如表2所列出的測試.實驗中使用的機器為Intel Core i5-3230M@2.6 GHz,8 GB 內存.表格的形式參考了文獻[5].

      圖12 生成一個外部的NFP

      圖13 生成內部和外部的NFP

      圖14 生成內部和外部的NFP

      圖15 互鎖和外部的NFP

      4 結論與展望

      生成了完整的NFP 結構,給出算法實現(xiàn)的具體細節(jié)和一些要點.通過測試,表明該方法具有一定的高效性.與先前的一些借助于三角函數(shù)的方法相比,該算法的實現(xiàn)簡單,高效,且不需要對每一種特殊情況做特殊的考慮.利用起點搜索過程,對某些傳統(tǒng)方法無法解決的互鎖,洞等情況,能夠成功解決.對板材排樣系統(tǒng)的設計與實現(xiàn)有一定的借鑒意義.

      表2 對不同數(shù)據(jù)集的測試結果

      猜你喜歡
      排樣參考點多邊形
      多邊形中的“一個角”問題
      FANUC數(shù)控系統(tǒng)機床一鍵回參考點的方法
      多邊形的藝術
      解多邊形題的轉化思想
      多邊形的鑲嵌
      參考點對WiFi位置指紋算法的影響
      測控技術(2018年5期)2018-12-09 09:04:24
      數(shù)控機床返回參考點故障維修
      基于壓縮因子粒子群的組合排樣的研究
      FANUC數(shù)控機床回參考點故障分析與排除
      U形電器支架的多工位模具的排樣及模具設計
      重型機械(2016年1期)2016-03-01 03:42:09
      五莲县| 准格尔旗| 焦作市| 石城县| 昌邑市| 遵义市| 金沙县| 麦盖提县| 旬阳县| 库伦旗| 抚顺县| 南京市| 涟水县| 繁昌县| 上虞市| 余干县| 社旗县| 攀枝花市| 金川县| 玉林市| 柞水县| 甘洛县| 蒲江县| 龙海市| 和龙市| 彭水| 宣恩县| 桐柏县| 永兴县| 那曲县| 赤壁市| 台前县| 汉寿县| 横峰县| 信宜市| 德州市| 凤阳县| 德钦县| 集安市| 富顺县| 眉山市|