欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于離散網(wǎng)格的并行空間拓撲分析方法

文檔序號:6481497閱讀:224來源:國知局

專利名稱::一種基于離散網(wǎng)格的并行空間拓撲分析方法
技術(shù)領(lǐng)域
:本發(fā)明涉及一種并行空間拓撲分析的方法,尤其涉及一種基于離散網(wǎng)格的并行空間拓撲分析方法。
背景技術(shù)
:空間數(shù)據(jù)的特點是不僅包括物體本身的空間位置及狀態(tài)信息,還包括表示物體的空間關(guān)系的信息??臻g關(guān)系主要包括度量關(guān)系、方向關(guān)系、拓撲關(guān)系等,其中拓撲關(guān)系是最為重要和復雜,也是蘊含信息最多的一種關(guān)系。拓撲性質(zhì)是空間對象在連續(xù)變形下保持不變的性質(zhì),如包含關(guān)系、鄰接關(guān)系等。在拓撲學里沒有不能彎曲的元素,每一個圖形的大小、形狀可以改變。對拓撲關(guān)系的研究最初起源于哥尼斯堡七橋問題,數(shù)學家歐拉將橋的空間關(guān)系抽象簡化為4個點及其連線,并給出了問題的解。通過簡化和抽象,所保留的就是空間對象的拓撲關(guān)系??梢?,研究拓撲關(guān)系可以發(fā)現(xiàn)空間信息中蘊藏的復雜邏輯關(guān)系,從而從信息中發(fā)現(xiàn)知識。拓撲關(guān)系貫穿于諸多空間數(shù)據(jù)分析過程中,但其復雜度高,處理海量的空間數(shù)據(jù)時,難以滿足用戶實時響應的需求。對空間拓撲關(guān)系分析的并行技術(shù)的研究夠充分利用目前計算機集群高性能的CPU、大容量內(nèi)存、高速磁盤陣列以及高帶寬通信網(wǎng)絡所構(gòu)成的高性能處理環(huán)境,來提高拓撲分析操作的性能。目前暫無此方面的相關(guān)專利。應用并行技術(shù)解決空間關(guān)系分析時間長的問題,具體原因可分為如下幾點(1)空間拓撲關(guān)系分析在空間査詢、更新等數(shù)據(jù)庫操作中使用頻率很高,且拓撲操作是CPU密集型操作,操作十分耗時,在擁有海量數(shù)據(jù)的空間數(shù)據(jù)庫中,涉及拓撲分析操作的響應時間并不能完全滿足用戶實時響應的要求。(2)目前的硬件發(fā)展趨勢是基于傳統(tǒng)的內(nèi)存、處理器和磁盤開發(fā)廉價的并行計算機系統(tǒng),以處理復雜的運算,比較明確的是,這樣的硬件需要空間數(shù)據(jù)庫操作也具備并行化才可能發(fā)揮效用。(3)隨著微處理機技術(shù)和磁盤陣列技術(shù)的進步,并行計算機的發(fā)展十分迅速,出現(xiàn)了像Sequent,Tandem,Teradata和曙光機這樣一些商品化的并行計算機系統(tǒng)。并行計算技術(shù)利用多處理機并行處理產(chǎn)生的規(guī)模效益來提高系統(tǒng)的整體性能,為GIS數(shù)據(jù)庫系統(tǒng)提供了一個良好的硬件平臺。目前,國內(nèi)外在并行空間數(shù)據(jù)操作方面也有相關(guān)研究,但他們的側(cè)重點與本專利有所差別,具體如下(1)由ThomasBrinkhoff,Hans-PeterKriegel和BernhardSeeger于1996年發(fā)表在Proceedingofthe12thInternationalConference上的ParallelProcessingofSpatialJoinsUsingR-trees以及由XZhou,DavidJAbel和DavidTruffet于1998年發(fā)表在Geolnformatica上的DataPartitioningforParallelSpatialJoinProcessing均未對空間對象進行劃分,而是將不同的空間對象劃分給不同的磁盤,對于單個空間對象未進行劃分,若對單個的大空間對象按照其中的方法進行劃分后會造成空間對象間的拓撲關(guān)系錯誤或者缺失;(2)現(xiàn)有的空間拓撲分析操作種類不全,例如WarnillChung,Soon-YoungPark和Hae-YoungBae于2005年在LNCS3605上發(fā)表的E伍cientParallelSpatialJoinProcessingMethodinaShared-NothingDatabaseClusterSystem沒有對空間數(shù)據(jù)劃分的結(jié)果進行保存,不能對劃分結(jié)果進行再次利用,而只在Join等操作過程中對空間對象進行劃分,進行并行處理。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題是針對現(xiàn)有技術(shù)存在的缺陷提出一種基于離散網(wǎng)格的并行空間拓撲分析方法。本發(fā)明一種基于離散網(wǎng)格的并行空間拓撲分析方法,其特征在于該方法包含如下步驟步驟l:用戶對空間對象發(fā)出拓撲査詢語句;步驟2:Root進程接收步驟1所述的拓撲查詢語句并選取空間對象的最小包含矩形MBR作為待劃分區(qū)域;步驟3:Root進程將步驟2中選取的空間對象的最小包含矩形MBR分割成均等的m個區(qū)域LPAj,KiSm,i和m都為自然數(shù),下同;步驟4:Root進程將步驟3所述的m個區(qū)域LPA分別劃分成m份空間數(shù)據(jù),對幾種不同類型的數(shù)據(jù)作不同處理當空間數(shù)據(jù)是點集數(shù)據(jù)Points中的點,則轉(zhuǎn)步驟5,當空間數(shù)據(jù)是線段集數(shù)據(jù)Lines中左半線段,則轉(zhuǎn)步驟6,當空間數(shù)據(jù)是線段集數(shù)據(jù)Lines中右半線段,則轉(zhuǎn)步驟7,當空間數(shù)據(jù)是區(qū)域集數(shù)據(jù)Regions中左半線段,則轉(zhuǎn)步驟8,當空間數(shù)據(jù)是區(qū)域集數(shù)據(jù)Regions中右半線段,則轉(zhuǎn)步驟9;步驟5:將步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subi;步驟6:線段集數(shù)據(jù)Lines對象L中的左半線段的左端點是pl、右端點是pr,且pleLPAj,preLPAj,1《i^j《m,j為自然數(shù),下同;當當前線段集數(shù)據(jù)Lines對象L是左算子,則將步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subi;當當前線段集數(shù)據(jù)Lines對象L是右算子,則將步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subj,其中,pl是線段集數(shù)據(jù)Lines對象L中的左半線段的主導點;步驟7:Lines對象L中的右半線段的主導點是pr,且preLPAj,將步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subj;步驟8:區(qū)域集數(shù)據(jù)Regions對象R中的左半線段的左端點是pl、右端點是pr,且pleLPAi,preLPAj,1《iSj《m;當當前區(qū)域集數(shù)據(jù)Regions對象R是左算子,則將步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subi;當當前區(qū)域集數(shù)據(jù)Regions對象R是右算子,則將步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subj,其中,pl是區(qū)域集數(shù)據(jù)Regions對象R中的左半線段的的主導點。步驟9:區(qū)域集數(shù)據(jù)Regions對象R中的右半線段的主導點是pr,且preLPAj,則步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subj;步驟10:Root進程將步驟4所述的m份空間數(shù)據(jù)按照輪轉(zhuǎn)法分配給p個不同的Sub進程,其中m》p,p為自然數(shù),下同;步驟ll:對步驟10所述的p個不同的Sub進程接收到的幾種不同類型的數(shù)據(jù)作不同處理當空間數(shù)據(jù)是點集數(shù)據(jù)Points中的點,則轉(zhuǎn)步驟12,當空間數(shù)據(jù)是線段集數(shù)據(jù)Lines中左半線段,則轉(zhuǎn)步驟13,當空間數(shù)據(jù)是線段集數(shù)據(jù)Lines中右半線段,則轉(zhuǎn)步驟14,當空間數(shù)據(jù)是區(qū)域集數(shù)據(jù)Regions屮左半線段,則轉(zhuǎn)步驟15,當空間數(shù)據(jù)是區(qū)域集數(shù)據(jù)Regions中右半線段,則轉(zhuǎn)步驟16;步驟12:當步驟11所述的空間數(shù)據(jù)是線段集數(shù)據(jù)Lines對象L或區(qū)域集數(shù)據(jù)Regions對象R中半線段hs的起始點,則將用戶對當前空間數(shù)據(jù)査詢的拓撲關(guān)系,保存在與之對應的Sub進程,轉(zhuǎn)至步驟ll,否則,在掃描線狀態(tài)中查找步驟ll所述的空間數(shù)據(jù)的前趨;當步驟11所述的空間數(shù)據(jù)的前趨不存在,則將用戶對將步驟11所述的空間數(shù)據(jù)查詢的拓撲關(guān)系保存在與之對應的Sub進程,轉(zhuǎn)至步驟ll;當步驟11所述的空間數(shù)據(jù)的前趨存在,則將步驟11所述的空間數(shù)據(jù)和其前趨之間的拓撲關(guān)系保存在與之對應的Sub進程,轉(zhuǎn)至步驟11;步驟13:當當前線段集數(shù)據(jù)Lines對象L是左算子,則取線段集數(shù)據(jù)Lines對象L左半線段的主導點,轉(zhuǎn)至步驟12;當當前線段集數(shù)據(jù)Lines對象L是右算子,則將線段集數(shù)據(jù)Lines對象L左半線段按照從小到大的順序插入掃描線狀態(tài),轉(zhuǎn)至步驟11;步驟14:當當前線段集數(shù)據(jù)Lines對象L是左算子,則取線段集數(shù)據(jù)Lines對象L右半線段的主導點,轉(zhuǎn)至步驟12;當當前線段集數(shù)據(jù)Lines對象L是右算子,則將掃描線狀態(tài)中與線段集數(shù)據(jù)Lines對象L右半線段對應的左半線段刪除,轉(zhuǎn)至步驟11;步驟15:當當前區(qū)域集數(shù)據(jù)Regions對象R是左算子,則取區(qū)域集數(shù)據(jù)Regions對象R中左半線段的主導點,轉(zhuǎn)至步驟12;當當前區(qū)域集數(shù)據(jù)Regions對象R是右算子,則將區(qū)域集數(shù)據(jù)Regions對象R中左半線段按照從小到大的順序插入掃描線狀態(tài),轉(zhuǎn)至步驟11;步驟16:當當前區(qū)域集數(shù)據(jù)Regions對象R是左算子,則取區(qū)域集數(shù)據(jù)Regions對象R中右半線段的主導點,轉(zhuǎn)至步驟12;當當前區(qū)域集數(shù)據(jù)Regions對象R是右算子,則將掃描線狀態(tài)中與區(qū)域集數(shù)據(jù)Regions對象R中右半線段對應的左半線段刪除,轉(zhuǎn)至步驟11;步驟17:Sub進程得到步驟12至步驟16拓撲分析結(jié)果,并將拓撲分析結(jié)果傳送回Root進程;步驟18:當Root進程有任務未分配完畢,則轉(zhuǎn)至步驟19;當Root進程沒有任務未分配完畢,轉(zhuǎn)至步驟20;步驟19:將未完成的任務分配給空閑Sub進程,轉(zhuǎn)歩驟10;步驟20:Root進程完成回收步驟10所述的p個部分拓撲分析結(jié)果;步驟21:Root進程將拓撲分析結(jié)果傳送給用戶,任務處理完畢。本發(fā)明提出了一種基于離散網(wǎng)格的并行空間拓撲分析方法,優(yōu)點如下(1)提出一種空間數(shù)據(jù)劃分方法使空間對象劃分后空間拓撲關(guān)系仍維持不變,具有良好的拓撲健壯性。(2)由于空間對象間拓撲關(guān)系復雜多變,本發(fā)明方法釆用"一次劃分,多次并行"的策略最大限度的減少數(shù)據(jù)通信。(3)并行空間拓撲分析方法的效率與串行方法相比有了類線性提高。圖1是并行空間拓撲分析的通信圖。由Root進程按照該數(shù)據(jù)劃分方法對空間對象進行劃分,再由多個Sub進程并行進行空間拓撲分析,最后返回拓撲分析結(jié)果。圖2是基于離散網(wǎng)格的并行空間拓撲分析方法的流程圖,它與
發(fā)明內(nèi)容中的詳細描述相對應,是用戶從提出拓撲請求到獲得分析結(jié)果的流程。圖3是拓撲分析中Points對象和Regions對象的劃分圖。圖中有一個帶孔的多邊形和一個點集。其中,R是一個帶孔的多邊形,由h至hsl8條線段組成,h至li4是多邊形的外邊界,115至118構(gòu)成多邊形的內(nèi)邊界;P是一個點集,由A至K共11個點組成。圖4是并行空間拓撲分析時間隨Sub迸程數(shù)目增加而遞減的實驗結(jié)果圖。圖中四條曲線是空間數(shù)據(jù)大小分別為7.5M、11.25M、15M、18.75M時并行空間拓撲分析的時間隨進程數(shù)增加而遞減的變化圖。具體實施例方式本發(fā)明的發(fā)法是提出一種空間數(shù)據(jù)劃分方法,通過將二維空間數(shù)據(jù)一維線性化,保證劃分后空間數(shù)據(jù)間仍維持原空間關(guān)系不變。由于空間對象間拓撲關(guān)系種類多達上百種,在同一個系統(tǒng)中,對同樣兩個對象可以進行多種拓撲査詢,因此本發(fā)明采用"一次劃分,多次并行"的策略,減小通信代價,應用平面掃描法,使得空間拓撲分析問題得到并行化解決。根據(jù)本技術(shù)方案進行并行空間拓撲分析的過程中用到的術(shù)語概念定義如下離散網(wǎng)格(Grid):NtN點陣,N={0,l,...,n-1}。NPoint:Grid上所有點的集合,其中的點記作np(x,y),(Hx《N,OSy《N。NSegment:Grid上所有線段的集合,其中的線段記作ns表示為ns(叩!,np2),其中np!,叩2eNP0int。半線段Halfsegment:帶有方向的線段,NSegment中的線段被分成兩個半線段ls-(p!,p2,left)和rs-(pbp2,right),其中Pi,p2eNPoint,left和right是該半線段的方向,左或者右。本文對左右半線段的記法如下設存在線段I,則與其對應的左半線段記作l1,與其對應的右半線段記作f。主導點帶有方向的半線段的起始點,l'的主導點是1的左端點,F(xiàn)的主導點是1的右端點。R-point:NPoint中點的集合。R-segment:NSegment中半線段的集合。R-b里ock:相連的R-segment集合S,Vr,teS:3s!,…Sn,sieS:r=Si,t=snVie{l,2,..,n-l}:Meet(Si,si+1),其中,Meet(Si,Sj)e線段Si與Sj恰有一個公共端點。R-cycle:R-segment的一個集合S。S={si,s2r",s},Vie{l,2,,n}:Meet(s;,s(i+1>modn);在S中再不存在其他線段對有Meet(Si,Sj)關(guān)系,j^i+l。R-cycle實際上就是平面圖上由多個線段拼接而成的一個圈,在該圈中不再嵌套其他的圈。R-facef可用(c,H)來表示,c是一個R-cycle,而H^lu,h2,…,hJ,它是一個R-cycle的一個集合,H可能為空,令S(f)表示f的所有線段集①ie{l,2,...,n}:h,edge-insidec(即hj在c內(nèi)部);②i,je{l,2,...,n},i*j:hiedge-disjointhj(即h,與hj相離);③S(f)中的每一個圈o,要么o等于c,要么等于H中的一個圈。R-face可以表示帶空洞的多邊形區(qū)域。Points:R-point的集合,是點集數(shù)據(jù)類型。Lines:—個不相鄰的R-block集合,是線段集數(shù)據(jù)類型。Regions:—個邊不相鄰的R-face集合(邊不相鄰是指兩個面可以由公共點但無公共邊),是區(qū)域集數(shù)據(jù)類型。InsideAbove屬性Regions對象的組成線段的一個屬性,它表示這條線段的上方或者左側(cè)是區(qū)域的內(nèi)部。MBR:MinimumBoundingRectangle,三種空間數(shù)據(jù)類型的最小外包矩形。LPA:logicalpartitionarea,—個空間區(qū)域被分成多個大小相同或不同的分區(qū)稱為邏輯分區(qū)。Root進程在空間數(shù)據(jù)通信過程中向其他所有的進程發(fā)送消息或接受消息的進程,Root進程一般只有一個。Sub進程在空間數(shù)據(jù)通信過程中負責接受Root進程發(fā)送的消息的進程或是向Root進程發(fā)送消息的多個進程,Sub進程一般有多個。左算子在對兩個空間對象進行拓撲分析的過程中的被判斷對象。例如,判斷一個漁船是否在一片海域范圍內(nèi),漁船是左算子。右算子在對兩個空間對象進行拓撲分析的過程中的參照對象。例如,判斷一個漁船是否在一片海域范圍內(nèi),海域范圍是左算子。另外,在平面掃描方法中運用到的幾個定義如下事件點列表依照系統(tǒng)確定的空間排序關(guān)系,事先確定的或在掃描過程中計算出的算法感興趣的空間元素的有序序列。在基于離散網(wǎng)格的并行空間拓撲分析過程中,有三種不同類型的事件點Points類型對象中的點;②Lines和Regions類型對象中的左半線段;③Lines和Regions類型對象中的右半線段。掃描線狀態(tài)依照確定的排序規(guī)則記錄當前與掃描線相交的空間元素的有序表。前趨存在于掃描線狀態(tài)中且按照掃描線的排序規(guī)則比當前元素小的元素的集合中最大元素的位置。時間點觸發(fā)的動作掃描到事件點時做出的分析或操作。Root進程和Sub進程的通信流程如圖1所示。在并行空間拓撲分析過程中,先加載數(shù)據(jù),再由Root進程對空間對象進行數(shù)據(jù)劃分,將劃分后的子數(shù)據(jù)傳送給多個Sub進程,各Sub進程并行地對其接受到的任務進行空間拓撲分析。其具體流程圖如圖2所示。為方便描述,記Points類型對象為P,Lines類型對象為L,Regions類型對象為R。一種基于離散網(wǎng)格的并行空間拓撲分析方法的主要工作流程為-步驟l:用戶向系統(tǒng)提交拓撲查詢語句。步驟2:Root進程選取空間對象的MBR作為待劃分區(qū)域,MBR為該空間對象的最小包含矩形。步驟3:Root進程將步驟2中選取的MBR分割成均等的幾個區(qū)域,分別記作LPAi(l化m)。步驟4:Root進程根據(jù)LPAi將空間對象劃分成m份空間數(shù)據(jù),直至空間對象處理完畢,轉(zhuǎn)步驟IO。對幾種不同類型的數(shù)據(jù)作不同處理如果是Points中的點轉(zhuǎn)步驟5;如果是Lines中左半線段轉(zhuǎn)步驟6;如果是Lines中右半線段轉(zhuǎn)歩驟7;如果是Regions中左半線段轉(zhuǎn)步驟8;如果是Regions中右半線段轉(zhuǎn)步驟9。步驟5:Points對象P中的點p:設peLPAi,貝USub進程i。步驟6:Lines對象L中的左半線段1、設卩的左端點是pl,右端點是pr,且pleLPAi,preLPAj,Bi^^m,若當前L是左算子,則l14Sub進程i;若當前L是右算子,貝ljl1—Sub進程i...Sub進程j。其中,pl是"的主導點。步驟7:Lines對象中的右半線段l、設l'的主導點是pr,且preLPAj,則Sub進程步驟8:Regions對象R中的左半線段1、設l'的左端點是pl,右端點是pr,且pleLPA,,preLPAj,^i^j《m,若當前R是左算子,貝Ul1—Sub進程i;若當前R是右算子,貝Ul14Sub進程i...Sub進程j。其中,pl是"的主導點。步驟9:Regions對象中的右半線段l、設lf的主導點是pr,若preLPAj,則Sub進程j。步驟10:Root進程將劃分好的m份空間數(shù)據(jù)按照輪轉(zhuǎn)法分配給p個空閑的Sub進程,其中m》p。步驟11:Sub進程接受Root進程傳送過來的空間數(shù)據(jù)。步驟12:每個Slib進程用改進的平面掃描方法并行地對空間數(shù)據(jù)進行空間拓撲分析,依次處理事件點列表中的數(shù)據(jù),直至數(shù)據(jù)處理完畢,轉(zhuǎn)步驟18。對幾種不同類型的空間數(shù)據(jù)作不同的處理P中點P轉(zhuǎn)歩驟13,Unes對象中左右半線段分別轉(zhuǎn)步驟14和步驟15,Regions對象中左右半線段分別轉(zhuǎn)步驟16和步驟17。步驟13:P中點p:如果p是L(R)中半線段hs的起始點,則p在L(R)中;否則,在掃描線狀態(tài)中査找p的前趨。p的前趨是指L(R)中位于點p下方且距離p最近的左半線段。若p的前趨不存在,則p與L(R)不存在用戶査找的拓撲關(guān)系,轉(zhuǎn)至步驟12;如果p的前趨存在,則判斷p和其前趨之間是否具有用戶需求的拓撲關(guān)系,取得結(jié)果后保存在本地,轉(zhuǎn)至步驟12。步驟14:L中左半線段l、若當前L是左算子,則取l'的主導點p,轉(zhuǎn)至步驟13;若當前L是右算子,則將"按照從小到大的順序插入掃描線狀態(tài),轉(zhuǎn)至步驟12。步驟15:L中右半線段r:若當前L是左算子,則取r的主導點p,轉(zhuǎn)至步驟13;若當前l(fā)是右算子,則將掃描線狀態(tài)中與r對應的左半線段刪除,轉(zhuǎn)至步驟i2。歩驟16:R中左半線段l、若當前R是左算子,則取^的主導點p,轉(zhuǎn)至步驟13;若當前R是右算子,則將l'按照從小到大的順序插入掃描線狀態(tài),并檢查它是否具備InsideAbove屬性,轉(zhuǎn)至步驟12。步驟17:R中右半線段l、若當前R是左算子,則取ir的主導點p,轉(zhuǎn)至步驟13;若當前R是右算子,則將掃描線狀態(tài)中與ir對應的左半線段刪除,轉(zhuǎn)至步驟12。步驟18:Sub進程得到拓撲分析結(jié)果,并將本地拓撲分析結(jié)果傳送回Root進程。步驟19:Root進程接受Sub進程傳送回來的部分拓撲分析結(jié)果。步驟20:Sub進程詢問Root進程是否有任務未分配完畢,有則轉(zhuǎn)至步驟21,無則Sub進程處理完畢,轉(zhuǎn)至步驟22。步驟21:將未完成的任務分配給空閑Sub進程,轉(zhuǎn)步驟n。步驟22:Root進程完成回收p個部分拓撲分析結(jié)果,對p個部分拓撲分析結(jié)果進行邏輯處理,得到拓撲分析結(jié)果。步驟23:Root進程將拓撲分析結(jié)果傳送給用戶,任務處理完畢。如圖3所示,為了方便具體實施的描述,我們假定有兩個對象和一個實例,其中包含一個點集合對象P和一個區(qū)域集合對象R,具體實例是判斷P是否在R中,即pr—inside(P,R)。另外,我們假定在用戶進行拓撲査詢之前,空間對象已經(jīng)加載到集群中的多個處理器內(nèi)存上,并且允許存在一定的數(shù)據(jù)冗余。其具體實施方式為-(1)用戶進行空間對象拓撲査詢prjnside(P,R)。(2)Root進程選取P和R的聯(lián)合MBR作為待劃分區(qū)域。(3)Root進程將(2沖選取的MBR分割成均等的四個區(qū)域,分別記作LPAi(1《iS4)。(4)Root進程根據(jù)LPA,將空間對象劃分成4份空間數(shù)據(jù),對幾種不同類型的數(shù)據(jù)作不同處理①P中的點p:設peLPAi,貝ljSub進程i。②R中的左半線段l、設li的左端點是pl,右端點是pr,且pleLPAi,preLPAj,l《i^j^m,則11—Sub進程i...Sub進程j。其中,pl是l'的主導點。③R中的右半線段1、設f的主導點是pr,若preLPAj,貝JSub進程j。(5)Root進程將(4)中劃分好的4份空間數(shù)據(jù)按照輪轉(zhuǎn)法分配給p個不同的Sub進程,其中(6)p個Sub進程接受Root進程傳送過來的不同的空間數(shù)據(jù)。(7)每個Sub進程用改進的平面掃描方法并行地對空間數(shù)據(jù)進行空間拓撲分析。對幾種不同類型的空間數(shù)據(jù)作不同的處理①P中點p:如果p是R中半線段hs的起始點,則p在R中;否則,在掃描線狀態(tài)中査找p的前趨。p的前趨是指R中位于點p下方且距離p最近的左半線段。如果p的前趨不存在,則p與R不在R內(nèi)部;如果p的前趨存在,則判斷p的前趨是否具有InsideAbove屬性,若有則P在R內(nèi)部,若無則P不在R內(nèi)部。②R中左半線段I1:則將1'按照從小到大的順序插入掃描線狀態(tài),并檢查它是否具備InsideAbove屬性。③R中右半線段r:將掃描線狀態(tài)中與r對應的左半線段刪除。(8)各Sub進程根據(jù)(7)的規(guī)則得到部分拓撲分析結(jié)果。(9)各Sub進程拓撲分析完畢后,將各個子拓撲分析結(jié)果傳送回Root進程。柳各空閑Sub進程詢問Root進程是否有下一步任務。(11)Root進程接受Sub進程傳送冋來的部分拓撲分析結(jié)果,并將未完成的任務分配給空閑Sub進程運行。似Root進程完成回收p個部分拓撲分析結(jié)果。(13)Root進程對p個部分拓撲分析結(jié)果進行邏輯處理。(14)Root進程得到拓撲分析結(jié)果。(15)Root進程將拓撲分析結(jié)果傳送給用戶,任務處理完畢。在本方案實施流程中Root進程數(shù)據(jù)劃分和Sub進程并行空間拓撲分析是關(guān)鍵,其中,數(shù)據(jù)劃分的好壞直接影響并行方法的效率。表1是Root進程數(shù)據(jù)劃分的結(jié)果。表1圖3中空間對象數(shù)據(jù)劃分結(jié)果<table>tableseeoriginaldocumentpage12</column></row><table>該數(shù)據(jù)劃分規(guī)則能夠使劃分后的空間對象保持空間拓撲關(guān)系不變。對于圖3中的對象P和R,要維持劃分后的P和R的空間拓撲關(guān)系不變,必須使得劃分后的P中的所有點仍能夠如期找到其前驅(qū),因此對Regions對象R包含的左右半線段采取了不同的劃分規(guī)則R中的每條左半線段被分配給它所經(jīng)過的一個或多個劃分區(qū)域LPAi,每條右半線段被分配給該線段的右端點所在的劃分區(qū)域。例如,點E和G的前驅(qū)都是116、但是E和G分別屬于不同的劃分區(qū)域LPA2和LPA3,所以W要同時被劃分給LPA2和LPA3,因此對于經(jīng)過多個劃分區(qū)域的左半線段,應將其劃分給它經(jīng)過的所有劃分區(qū)域,各劃分區(qū)域處理左半線段時,將其加入各自的掃描線狀態(tài)。當掃描線經(jīng)過R中右半線段時意味著當前線段已經(jīng)被掃描結(jié)束,應從掃描線狀態(tài)中刪除相應的左半線段,所以右半線段只需分配給它的主導點所在的劃分區(qū)域。從技術(shù)方案可以看出,這種數(shù)據(jù)劃分算法的特點是擅于迸行涉及線段和區(qū)域的空間拓撲分析。Root進程對空間對象進行數(shù)據(jù)劃分時,將點集中的點分配給它所在的LPA;將區(qū)域中的左半線段分配給它所經(jīng)過的全部LPA,將區(qū)域中的右半線段分配給它的主導點所在的LPA。劃分結(jié)束后Root進程將子數(shù)據(jù)集傳送給各Sub進程,待各Sub進程拓撲分析結(jié)束后,回收結(jié)果,并行拓撲分析執(zhí)行完畢。根據(jù)技術(shù)方案的流程在集群上對基于離散網(wǎng)格的并行空間拓撲分析方法進行了實驗,實驗結(jié)果如圖4所示,由此可以驗證本實驗方案的第二和三個效益并行空間拓撲分析方法在盡量減小通信代價的情況下其效率與串行方法相比有了類線性提高。權(quán)利要求1.一種基于離散網(wǎng)格的并行空間拓撲分析方法,其特征在于該方法包含如下步驟步驟1用戶對空間對象發(fā)出拓撲查詢語句;步驟2Root進程接收步驟1所述的拓撲查詢語句并選取空間對象的最小包含矩形MBR作為待劃分區(qū)域;步驟3Root進程將步驟2中選取的空間對象的最小包含矩形MBR分割成均等的m個區(qū)域LPAi,1≤i≤m,i和m都為自然數(shù),下同;步驟4Root進程將步驟3所述的m個區(qū)域LPAi分別劃分成m份空間數(shù)據(jù),對幾種不同類型的數(shù)據(jù)作不同處理當空間數(shù)據(jù)是點集數(shù)據(jù)Points中的點,則轉(zhuǎn)步驟5,當空間數(shù)據(jù)是線段集數(shù)據(jù)Lines中左半線段,則轉(zhuǎn)步驟6,當空間數(shù)據(jù)是線段集數(shù)據(jù)Lines中右半線段,則轉(zhuǎn)步驟7,當空間數(shù)據(jù)是區(qū)域集數(shù)據(jù)Regions中左半線段,則轉(zhuǎn)步驟8,當空間數(shù)據(jù)是區(qū)域集數(shù)據(jù)Regions中右半線段,則轉(zhuǎn)步驟9;步驟5將步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subi;步驟6線段集數(shù)據(jù)Lines對象L中的左半線段的左端點是pl、右端點是pr,且pl∈LPAi,pr∈LPAj,1≤i≤j≤m,j為自然數(shù),下同;當當前線段集數(shù)據(jù)Lines對象L是左算子,則將步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subi;當當前線段集數(shù)據(jù)Lines對象L是右算子,則將步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subj,其中,pl是線段集數(shù)據(jù)Lines對象L中的左半線段的主導點;步驟7Lines對象L中的右半線段的主導點是pr,且pr∈LPAj,將步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subj;步驟8區(qū)域集數(shù)據(jù)Regions對象R中的左半線段的左端點是pl、右端點是pr,且pl∈LPAi,pr∈LPAj,1≤i≤j≤m;當當前區(qū)域集數(shù)據(jù)Regions對象R是左算子,則將步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subi;當當前區(qū)域集數(shù)據(jù)Regions對象R是右算子,則將步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subj,其中,pl是區(qū)域集數(shù)據(jù)Regions對象R中的左半線段的的主導點。步驟9區(qū)域集數(shù)據(jù)Regions對象R中的右半線段的主導點是pr,且pr∈LPAj,則步驟4所述的空間數(shù)據(jù)發(fā)送至相對應的進程Subj;步驟10Root進程將步驟4所述的m份空間數(shù)據(jù)按照輪轉(zhuǎn)法分配給p個不同的Sub進程,其中m≥p,p為自然數(shù),下同;步驟11對步驟10所述的p個不同的Sub進程接收到的幾種不同類型的數(shù)據(jù)作不同處理當空間數(shù)據(jù)是點集數(shù)據(jù)Points中的點,則轉(zhuǎn)步驟12,當空間數(shù)據(jù)是線段集數(shù)據(jù)Lines中左半線段,則轉(zhuǎn)步驟13,當空間數(shù)據(jù)是線段集數(shù)據(jù)Lines中右半線段,則轉(zhuǎn)步驟14,當空間數(shù)據(jù)是區(qū)域集數(shù)據(jù)Regions中左半線段,則轉(zhuǎn)步驟15,當空間數(shù)據(jù)是區(qū)域集數(shù)據(jù)Regions中右半線段,則轉(zhuǎn)步驟16;步驟12當步驟11所述的空間數(shù)據(jù)是線段集數(shù)據(jù)Lines對象L或區(qū)域集數(shù)據(jù)Regions對象R中半線段hs的起始點,則將用戶對當前空間數(shù)據(jù)查詢的拓撲關(guān)系保存在與之對應的Sub進程,轉(zhuǎn)至步驟11,否則,在掃描線狀態(tài)中查找步驟11所述的空間數(shù)據(jù)的前趨;當步驟11所述的空間數(shù)據(jù)的前趨不存在,則將用戶對步驟11所述的空間數(shù)據(jù)查詢的拓撲關(guān)系保存在與之對應的Sub進程,轉(zhuǎn)至步驟11;當步驟11所述的空間數(shù)據(jù)的前趨存在,則將步驟11所述的空間數(shù)據(jù)和其前趨之間的拓撲關(guān)系保存在與之對應的Sub進程,轉(zhuǎn)至步驟11;步驟13當當前線段集數(shù)據(jù)Lines對象L是左算子,則取線段集數(shù)據(jù)Lines對象L左半線段的主導點,轉(zhuǎn)至步驟12;當當前線段集數(shù)據(jù)Lines對象L是右算子,則將線段集數(shù)據(jù)Lines對象L左半線段按照從小到大的順序插入掃描線狀態(tài),轉(zhuǎn)至步驟11;步驟14當當前線段集數(shù)據(jù)Lines對象L是左算子,則取線段集數(shù)據(jù)Lines對象L右半線段的主導點,轉(zhuǎn)至步驟12;當當前線段集數(shù)據(jù)Lines對象L是右算子,則將掃描線狀態(tài)中與線段集數(shù)據(jù)Lines對象L右半線段對應的左半線段刪除,轉(zhuǎn)至步驟11;步驟15當當前區(qū)域集數(shù)據(jù)Regions對象R是左算子,則取區(qū)域集數(shù)據(jù)Regions對象R中左半線段的主導點,轉(zhuǎn)至步驟12;當當前區(qū)域集數(shù)據(jù)Regions對象R是右算子,則將區(qū)域集數(shù)據(jù)Regions對象R中左半線段按照從小到大的順序插入掃描線狀態(tài),轉(zhuǎn)至步驟11;步驟16當當前區(qū)域集數(shù)據(jù)Regions對象R是左算子,則取區(qū)域集數(shù)據(jù)Regions對象R中右半線段的主導點,轉(zhuǎn)至步驟12;當當前區(qū)域集數(shù)據(jù)Regions對象R是右算子,則將掃描線狀態(tài)中與區(qū)域集數(shù)據(jù)Regions對象R中右半線段對應的左半線段刪除,轉(zhuǎn)至步驟11;步驟17Sub進程得到步驟12至步驟16拓撲分析結(jié)果,并將所述拓撲分析結(jié)果傳送回Root進程;步驟18當Root進程有任務未分配完畢,則轉(zhuǎn)至步驟19;當Root進程沒有任務未分配完畢,轉(zhuǎn)至步驟20;步驟19將未完成的任務分配給空閑Sub進程,轉(zhuǎn)步驟10;步驟20Root進程完成回收步驟10所述的p個部分拓撲分析結(jié)果;步驟21Root進程將拓撲分析結(jié)果傳送給用戶,任務處理完畢。全文摘要本發(fā)明公布了一種基于離散網(wǎng)格的并行空間拓撲分析方法,本發(fā)明所述方法在并行空間拓撲分析過程中,先加載數(shù)據(jù),再由Root進程對空間對象進行數(shù)據(jù)劃分,將劃分后的子數(shù)據(jù)傳送給多個Sub進程,各Sub進程并行地對其接受到的任務進行空間拓撲分析。本發(fā)明具有良好的拓撲健壯性,減少了數(shù)據(jù)通信,并行空間拓撲分析方法的效率與串行方法相比有了類線性提高。文檔編號G06F17/30GK101515284SQ20091002488公開日2009年8月26日申請日期2009年3月2日優(yōu)先權(quán)日2009年3月2日發(fā)明者段安利,秦小麟申請人:南京航空航天大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
仙游县| 邵阳市| 延吉市| 尤溪县| 宿松县| 兰州市| 信丰县| 南和县| 郓城县| 四平市| 申扎县| 博客| 工布江达县| 龙岩市| 嘉禾县| 宜春市| 寿宁县| 长子县| 栾川县| 桂平市| 古田县| 黎平县| 汾阳市| 临泉县| 张家界市| 商南县| 洛宁县| 福清市| 上虞市| 阿城市| 正宁县| 什邡市| 通州区| 汝城县| 西安市| 灵丘县| 平顺县| 咸阳市| 祁阳县| 盐山县| 称多县|