亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于多核架構(gòu)的計算凸殼的并行算法的制作方法

文檔序號:6370553閱讀:340來源:國知局
專利名稱:一種基于多核架構(gòu)的計算凸殼的并行算法的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算幾何領(lǐng)域,尤其是涉及一種基于多核架構(gòu)的計算凸殼的并行算法。
背景技術(shù)
凸殼是計算幾何中最普遍、最基本的一種結(jié)構(gòu),在計算幾何中占有重要的位置。凸殼不僅有許多特性,而且還是構(gòu)造其他幾何形體的有效工具。凸殼也稱最小凸包,是包含集合S中所有對象的最小凸集。其中,平面點集凸殼是最重要、最基礎(chǔ)的問題,平面線段集合和平面多邊形集合的凸殼問題可以轉(zhuǎn)換為平面點集的凸殼問題。平面點集的凸殼問題在計算機圖形學、圖像處理與模式識別、地理信息系統(tǒng)等眾多領(lǐng)域中應用廣泛。求解平面點集的凸殼即是要求得點集的最小凸集,凸殼的邊界是一個凸多邊形。關(guān)于計算凸殼的串行算法,國內(nèi)外的早期研究成果中主要有卷包裹法、格雷厄姆算法、分治算法、增量算法、實時算法、快速算法等。隨著并行計算技術(shù)的不斷發(fā)展,國內(nèi)外的許多研究人員嘗試將并行技術(shù)應用到凸殼的計算中。這些并行算法中,絕大多數(shù)使用了分治策略,即將原問題分解為若干子問題,并行獨立求解這些子問題,然后合并所有子問題的解得到原問題的解。目前,這些并行算法還存在兩個主要問題。第一,并行粒度不受控制,負載平衡問題考慮不足,有可能出現(xiàn)瓶頸;第二,為實現(xiàn)并行計算引入了大量額外計算任務,如對原問題進行分解時,通常要對初始 點集合進行排序等。以周培德提出的用分治法求解平面點集凸殼的Z3_2算法為例,其基本思想是先求出點集中X、y坐標最大值、最 小值,然后順序連接最大值、最小值所對應的點成四邊形,該四邊形劃分點集為5個子集,不考慮位于四邊形內(nèi)的子集,對其他4個子集迭代地刪除不是凸殼頂點的點。該算法中首先判斷點位于有向線段的哪一側(cè)(即正負劃分),再使用歐氏距離找出離有向線段最遠的點,算法繁瑣,占用了大量的計算資源。

發(fā)明內(nèi)容
本發(fā)明針對上述現(xiàn)有凸殼算法存在的不足,在傳統(tǒng)的平面凸殼算法的基礎(chǔ)上,根據(jù)平面凸殼的實時性和海量數(shù)據(jù)的計算的實際應用要求,提出了一種在多核架構(gòu)下計算平面點集凸殼的并行算法,提供了一種基于多核架構(gòu)的計算凸殼的并行算法,摒棄了計算歐氏距離時的除法和開方運算,并將整個計算過程分解成若干相互獨立的子任務,盡可能充分利用多核處理器的并行計算資源,提高了算法的執(zhí)行效率。本發(fā)明在找到點集在X方向、y方向上的極值點之后,得到一個初始不完全凸殼。對點集中的所有的點按照其在這個初始不完全凸殼的各條有向邊的外側(cè)進行分類,使得每條有向邊都包含其所有外點的數(shù)據(jù),同時,刪除了在這個初始不完全凸殼內(nèi)部的所有點。并行地迭代生長所有有向邊,并在迭代過程中根據(jù)閾值條件繼續(xù)分解任務粒度較大的生長任務,進行串行和并行運算的智能選擇,不斷地向初始不完全凸殼中的指定位置插入新的凸殼點,生成新的有向邊,并根據(jù)新生成的有向邊對原有向邊外點集合中的點進行分類,如此迭代,直到所有有向邊的外點集合均為空。最后還要刪除所有凸殼多邊形中的非凸點,這些點在該多邊形的邊上,而不是其頂點。為了達到上述目的,本發(fā)明提供如下技術(shù)方案:
一種基于多核架構(gòu)的計算凸殼的并行算法,包括以下步驟:
(O找到初始點集合的初始不完全凸殼,其各邊用逆時針方向的有向邊表示;
(2)根據(jù)初始不完全凸殼對點集合進行分類,找出各條有向邊的所有外點;
(3)迭代地并行地生長初始不完全凸殼中的每一條有向邊;
(4)刪除最終所得凸殼上的非凸殼頂點。作為一種優(yōu)選方案,所述步驟(I)的實現(xiàn)方法是:找到沿X坐標、y坐標方向的四個極值點,刪除這四個點中相同的點,剩余的點按逆時針方向圍成的凸多邊形即為初始不完全凸殼,記為LPBCH(S)。作為一種優(yōu)選方案,所述步驟(2)的實現(xiàn)方法是:定義行列式
權(quán)利要求
1.一種基于多核架構(gòu)的計算凸殼的并行算法,其特征在于包括以下步驟: (1)找到初始點集合的初始不完全凸殼,其各邊用逆時針方向的有向邊表示; (2)根據(jù)初始不完全凸殼對點集合進行分類,找出各條有向邊的所有外點; (3)迭代地并行地生長初始不完全凸殼中的每一條有向邊; (4)刪除最終所得凸殼上的非凸殼頂點。
2.根據(jù)權(quán)利要求1所述的基于多核架構(gòu)的計算凸殼的并行算法,其特征在于,所述步驟(I)的實現(xiàn)方法是:找到沿X坐標、y坐標方向的四個極值點,刪除這四個點中相同的點,剩余的點按逆時針方向圍成的凸多邊形即為初始不完全凸殼,記為LPBCH(S)。
3.根據(jù)權(quán)利要求1所述的基于多核架構(gòu)的計算凸殼的并行算法,其特征在于,所述步驟(2)的實現(xiàn)方法是:定義行列式 K y ID= X1 yl I的值為點P U,y)到向量P1P2 (P1U1, Y1) >P2 (x2, y2))的顏氏距離,將與初 H Λ 1始不完全凸殼的各條有向邊的顏氏距離大于O的所有點加入到該有向邊的外點集合中,刪除點集合中那些不在任何一條有向邊右側(cè)的點。
4.根據(jù)權(quán)利要求1 3中任意一項所述的基于多核架構(gòu)的計算凸殼的并行算法,其特征在于,所述步驟(3)的實現(xiàn)方法是:對于不完全凸殼邊鏈中的每一條有向邊PiPw并行地進行迭代生長,所述迭代生長的過程為: (a)若有向邊PiPw的外點集合為空,則返回空點列; (b)從有向邊PiPw的外點集合中找出到該有向邊的顏氏距離最大的點P,該點P必為點集的凸殼點; (C)連接點Pi和點P,點P和點Pi+1,生成兩條新的有向邊PiP和PPi+1,對原有向邊PiPw的外點集合按有向邊PiP和ppi+1重新分類,分別得到有向邊PiP和有向邊PPi+1各自的外點集合; (d)若有向邊PiPw的外點集合中點的數(shù)量不大于MAXGROW的2倍,則轉(zhuǎn)步驟(f); Ce)并行地迭代生長有向邊PiP和PPi+1分別得到點列L1和L2,令點列L= {PJ U L1 U {P} U L2 U {Pi+1},轉(zhuǎn)步驟(j); (f)定義鏈表E來存儲若干有向邊,將PiP和PPi+1插入E; (g)對于E中的每條有向邊e,若其外點集合不為空,則按照(b)(c)兩步的方法得到兩條新的有向邊ei和e2,以及ei和e2的外點集合;從E中刪除e,并在原來e的位置插入θ!和e2,其中O1與e的起點相同; (h)若(g)中任意一條新生成的有向邊的外點集合不為空,則轉(zhuǎn)步驟(g); (i)刪除E中第一條有向邊,并令L為由E中各有向邊的起點排列而成的點列; (j)將點列L作為結(jié)果返回; 其中,(d )中的MAXGROW是進行并行、串行選擇的閾值。
5.根據(jù)權(quán)利要求1所述的基于多核架構(gòu)的計算凸殼的并行算法,其特征在于,所述步驟(4)的實現(xiàn)方法是:依次遍歷步驟(3)得到的凸多邊形點列中的每一點,設P為當前遍歷點,R為P的前驅(qū),Q為P的后繼,如果R、P、Q三點共線,就從凸多邊形點列中刪除點P ;經(jīng)過對凸多邊形點列的一次 遍歷,刪除所有非凸殼頂點的點。
全文摘要
本發(fā)明針對上述現(xiàn)有凸殼算法存在的不足,提供了一種基于多核架構(gòu)的計算凸殼的并行算法,包括以下步驟(1)找到初始點集合的初始不完全凸殼,其各邊用逆時針方向的有向邊表示;(2)根據(jù)初始不完全凸殼對點集合進行分類,找出各條有向邊的所有外點;(3)迭代地并行地生長初始不完全凸殼中的每一條有向邊;(4)刪除最終所得凸殼上的非凸殼頂點。本發(fā)明有效地對原算法進行了優(yōu)化從而充分節(jié)省了運算資源。并對原算法中點集分類過程和迭代過程進行了并行擴展,充分利用了多核處理器的并行計算資源;更進一步通過并行、串行的自適應選擇來控制并行任務粒度以控制并行加速比,并消除了可能產(chǎn)生的瓶頸。
文檔編號G06F17/30GK103116593SQ20121018688
公開日2013年5月22日 申請日期2012年6月8日 優(yōu)先權(quán)日2012年6月8日
發(fā)明者畢碩本, 顏堅, 畢勝杰, 汪大, 郭憶 申請人:南京信息工程大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1