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

一種單機(jī)多核環(huán)境下約束地形并行構(gòu)建方法

文檔序號:8943781閱讀:714來源:國知局
一種單機(jī)多核環(huán)境下約束地形并行構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于測繪、地理信息技術(shù)領(lǐng)域,涉及一種單機(jī)多核環(huán)境下約束地形并行構(gòu) 建方法。
【背景技術(shù)】
[0002] 三角剖分可追溯到二十世紀(jì)三十年代,于1934年由俄國著名數(shù)學(xué)家Delaunay在 解決數(shù)值分析問題提出的,然而當(dāng)時的生成算法并不成熟,后經(jīng)過學(xué)者們的努力探索研究, 在七十年代后期得到了較大的發(fā)展和應(yīng)用,如今已有多種Delaunay三角剖分算法被人們 接受和采用。Tsai根據(jù)實現(xiàn)過程將剖分算法分成了三類,即分治算法、逐點插入法和三角網(wǎng) 生長法。除此之外,此后的研究大多是基于這三類算法在兩種方式上進(jìn)行改進(jìn),一是對算法 實現(xiàn)過程的某方面繼續(xù)改進(jìn)和完善,二是研究兩種算法同時參與D-TIN構(gòu)建的合成算法, 當(dāng)然還有學(xué)者提出了新的算法如:基于掃描線的剖分法、基于凸殼的剖分法、基于遺傳算法 的剖分法等。
[0003] Shamos和Hoey在1975首次提出了分治算法,算法設(shè)計的目的主要是為了生成 Voronoi圖,而Lewis和Robinson首次將分治思想應(yīng)用于D-TIN構(gòu)建中。Lawson在1977 年首次提出了逐點插入法及其改進(jìn)算法,Lee和schachter等人先后進(jìn)行了改進(jìn)和完善,這 些改進(jìn)的用于實現(xiàn)D-TIN構(gòu)建的逐點插入法中,主要差別在于設(shè)置初始多邊形和建立初始 三角網(wǎng)的方法不同。Green和Sibson在1978年首次提出了三角網(wǎng)生長算法,并實現(xiàn)了一個 生成Dirichlet多邊形圖的生長算法,McCullagh和Ross為了減少搜索第三點的時間,將 點集進(jìn)行了分塊和排序從而達(dá)到縮短時間目的。Brassel,Reif,Maus等人進(jìn)行了類似的改 進(jìn),主要在改進(jìn)搜尋"第三點"上入手。A. Mirante和N. Weingarten在1982年提出了輻射 掃描法,然而這種方法產(chǎn)生的三角網(wǎng)并不是真正的D-TIN,主要因其不一定能滿足外接圓性 質(zhì)。Steven Fortune于1987年在Algorithmica上提出了 V-圖生成的平面掃描算法思想。 J.R. Shewchuk 等人應(yīng)用掃描線算法實現(xiàn)了 D-TIN 構(gòu)建。Marcelo Kallmann 和 Hanspeter Bieri等提出了在約束Delaunay三角網(wǎng)中進(jìn)行約束點和線的插入和刪除算法,并解決了自 相交或重復(fù)的點自動檢測,得到一個完全動態(tài)的約束Delaunay三角剖分,同時,在可視化、 重構(gòu)、地理信息系統(tǒng)等應(yīng)用方面進(jìn)行了討論。
[0004] 針對D-TIN串行算法在國內(nèi)也有很多的研究成果,其中的研究涉及到無約束域和 約束域的剖分算法改進(jìn)、合并算法設(shè)計、在數(shù)據(jù)劃分上改進(jìn)、在數(shù)據(jù)結(jié)構(gòu)上改進(jìn)等。芮一康 等提出了一種新的基于掃描線算法和分治算法的合成算法。算法兼顧了空間與時間性能, 穩(wěn)定性較高,運行效率和魯棒性更優(yōu)。劉云等在分別對比分治算法和逐點插入法后,針對 兩種算法存在的缺點提出了一些改進(jìn)方案,主要是對逐點插入法中點的查詢和三角形定 位查詢方面進(jìn)行了改進(jìn),在點定位方面使用了網(wǎng)格存儲空間數(shù)據(jù),在三角形定位方面采用 ClockWise檢測的方向搜索技術(shù)。徐旭等在逐點插入算法的基礎(chǔ)上,采用格網(wǎng)的方式同三角 網(wǎng)結(jié)合建立"網(wǎng)格一點一三角形"之間的索引關(guān)系,從而大大提高了待插入點在三角形所在 位置的定位效率。袁正午等針對定位帶插點所在三角形效率不高的現(xiàn)狀,提出基于對待插 點集反復(fù)收集分配來來完成快速定位,并在數(shù)據(jù)結(jié)構(gòu)和實現(xiàn)方式上進(jìn)行了改進(jìn),使得總體 時間復(fù)雜度為O(NlogN)。李立新等通過對已有算法的分析和借鑒,提出了兩種多對角線交 換算法并證明了循環(huán)算法不會存在死循環(huán)現(xiàn)象,并認(rèn)為循環(huán)算法具有編程簡單和運算速度 快的特點。劉少華等提出了一種CD-TIN快速內(nèi)插多邊形算法,算法流程是先將多邊形的邊 作為約束數(shù)據(jù)入網(wǎng),然后將多邊形內(nèi)部多余邊進(jìn)行清空處理,且在影響區(qū)域及多邊形內(nèi)部 三角形確定上給出了解決辦法。賈曉林等針對約束線端點不在已有CD-TIN中、約束線通過 三角形頂點、約束線影響域內(nèi)有其他約束邊三種特殊情況下的處理方法,并且提出了邊的 四相關(guān)局部優(yōu)化算法。馬洪濱等對于約束多邊形的嵌入不在限定于規(guī)則化多邊形,研究并 給出了適用于任意多邊形(含島嶼)的三角剖分算法。宋曉眉等深入探索了 CD-TIN兩步 法,提出了采用遞歸割耳法解決影響區(qū)域包含懸掛點和影響區(qū)域為凹多邊形。顏林等針對 當(dāng)前構(gòu)建約束Delaunay三角網(wǎng)的算法在影響域為凹多邊形時進(jìn)行對角線交換可能失效的 情況下,提出若為凹多邊形則處理下一條相交邊,處理所有相交邊一遍后必會出現(xiàn)新的兩 個相鄰三角形形成凸多邊形,重新交換直到相交邊處理完為止。張詠等繼續(xù)拓展了當(dāng)前約 束多邊形嵌入問題,研究和改進(jìn)了線段相交判斷和首三角形確定問題的相關(guān)算法,并給出 了存在重復(fù)點情況下的解決方案。楊琦明等在D-TIN中嵌入約束邊時,引入了 Qi算法,減少 了算法的運算次數(shù),加快了嵌入的執(zhí)行速度。任振娜在基于一次性構(gòu)建CD-TIN算法上,從 點數(shù)據(jù)方面入手,實現(xiàn)了快速、高效地插入點達(dá)到局部動態(tài)修改的目的。曾閩山等基于格網(wǎng) 劃分的自適應(yīng)分割-合并算法,對已經(jīng)通過塊分割的格網(wǎng)數(shù)據(jù)重新排序再分割,然后以分 割的逆序方式合并各子網(wǎng)。李小麗等利用線性四叉樹方式將數(shù)據(jù)劃分為包含點數(shù)相當(dāng)?shù)母?網(wǎng)塊,接著按照自下而上的方式將各格網(wǎng)塊內(nèi)子網(wǎng)進(jìn)行無縫合并將,同時為了避免出現(xiàn)過 小銳角的情況,加入了約束角來進(jìn)行優(yōu)化。劉永和等提出了一種構(gòu)建三角形與邊之間關(guān)系 的數(shù)據(jù)結(jié)構(gòu),其中三角形包含了三邊的對象指針,而對于邊保存了左右鄰接三角形的指針。 李翔等提出了使用四方邊緣結(jié)構(gòu)來快速構(gòu)建D-TIN,并將此數(shù)據(jù)結(jié)構(gòu)應(yīng)用于具體工程實踐, 證明了該結(jié)構(gòu)的實用性和可靠性。謝增廣提出了利用雙鏈接邊表(DCEL)結(jié)構(gòu)結(jié)合分治算 法實現(xiàn)了平面點集的三角剖分,并對特殊情形也做了處理。
[0005] D-TIN并行算法的研究開始于20世紀(jì)80年代末,基于分治算法的二維點集并行算 法就是Davy首次提出的,D-TIN并行算法研究開始主要側(cè)重并行索引機(jī)制的研究,然而較 少涉及數(shù)據(jù)的并行劃分,數(shù)據(jù)劃分是并行算法中的一個不可缺少的步驟,每個核分配的數(shù) 據(jù)若有較大的差異,負(fù)載將達(dá)不到均衡,從而嚴(yán)重影響算法性能。國內(nèi)針對D-TIN并行算法 的研究起步較晚,且主要以集群的分布式并行環(huán)境為主,對于單機(jī)多核方面的研究并不多。
[0006] 在國外研究成果有:Kolingerovdi等介紹了一種基于Delaunay三角剖分的隨機(jī)增 量插入的并行算法,通過在多處理器工作站上測試證明算法可行、簡單、易修改,并且對于 約束三角剖分或者四面體都試用。Kohout等繼續(xù)研究了隨機(jī)增量插入法,由于它的簡單性 和穩(wěn)定性被應(yīng)用于E3展會,并基于這種方法研究了一種新的并行算法,在計算機(jī)體系結(jié)構(gòu) 的多核處理器和共享存儲器環(huán)境下進(jìn)行了測試。Kohout在共享內(nèi)存系統(tǒng)的環(huán)境下,又利用 逐點插入算法設(shè)計了基于外接圓準(zhǔn)則的D-TIN并行算法。Foteinos等提出了三維D-TIN構(gòu) 建的并行算法,支持全動態(tài)并行插入和刪除點,在共享內(nèi)存下充分利用自定義內(nèi)存管理和 輕度鎖機(jī)制減少了線程的通信和同步成本。
[0007] 在國內(nèi)研究成果有:張三元等人最初采用分治方法,即通過對散亂點集的分類,在 不同處理器上分別求取分凸包,最后構(gòu)造各分凸包的公共凸包。易法令等在分布式環(huán)境中 提出了一種基于網(wǎng)格的D-TIN生成算法,算法較好的保證了負(fù)載均衡,并解決了四點共圓 的不唯一性和邊界處理的任意性問題。張三元提出的凸包并行化構(gòu)造算法雖然使計算效率 有所提高,但在刪除內(nèi)點上需要消耗大量時間,郝小柱認(rèn)為通過采用并行的方法刪除內(nèi)點, 對保留點排序形成簡單有序多邊形,最后對該多邊形求取凸包,可以大大減小了時間復(fù)雜 度。范剛龍等在分布式多處理機(jī)環(huán)境下提出對數(shù)據(jù)點按X坐標(biāo)進(jìn)行排序,并將排序后的數(shù) 據(jù)按給定的閾值點數(shù)劃分,通過分配給各個線程生成子三角網(wǎng),相鄰三角網(wǎng)兩兩歸并;最后 獲得歸并結(jié)果。申永源等在無約束域情況下提出了用串行算法的分治特征應(yīng)用于并行生成 泰森多邊形,與串行算法相比提高了計算速度,并減少了執(zhí)行時間。馬勁松等針對線要素 簡化存在大量計算、難以做到實時的缺點,運用多核并行技術(shù)實現(xiàn)了 Douglas-Peucker算 法,并在多核處理器的計算機(jī)上進(jìn)行實驗,驗證了并行算法的效率與實時性。張曉蒙等在共 享內(nèi)存模型下通過OpenMP采用任務(wù)并行的策略研究了并行Delaunay網(wǎng)格生成算法,實驗 結(jié)果表明與串行算法生成的網(wǎng)格在質(zhì)量上區(qū)別較小,滿足了大規(guī)模網(wǎng)格生成的需求。齊琳 等針對傳統(tǒng)的D-TIN并行算法尚未給出劃分結(jié)果均衡、劃分效率高效的理想解決方案情形 下,在傳統(tǒng)D-TIN并行算法規(guī)則條帶劃分方法的基礎(chǔ)上,提出采用動態(tài)條帶實現(xiàn)針對集聚 分布點集數(shù)據(jù)的均衡、高效劃分方法。
[0008] (1)與本發(fā)明相關(guān)的現(xiàn)有技術(shù)一為:
[0009] 步驟1,將離散數(shù)據(jù)點在x、y投影平面上,沿先X方向排序,后y方向排序,將排序 結(jié)果存入數(shù)組V[0…n-1]中;
[0010] 步驟2,根據(jù)分布式環(huán)境中計算結(jié)點個數(shù)k及各計算結(jié)點的內(nèi)存和計算能力的大 小,將V[0…n-1]中的η個數(shù)據(jù)點分成m個對應(yīng)長度的段VtS l^S1,…,Snil];
[0011] 步驟3,開辟一數(shù)組T[0…m-l]用于記錄生成的初始子三角網(wǎng),然后以每次k個段 為單位,依次將S 1, S1+1,…,S1+k i分配給相應(yīng)的結(jié)點,由該結(jié)點調(diào)用Delaunay三角網(wǎng)構(gòu)建 過程進(jìn)行構(gòu)網(wǎng),并將構(gòu)建的子三角網(wǎng)依次存入T[i··· i+k-1],換出到外存;循環(huán)上述過程, 最終將在外存中形成m個初始?xì)w并段T[0…m-l];
[0012] 步驟4,用一鏈表Τ'記錄生成的下一輪子三角網(wǎng),根據(jù)內(nèi)存的大小,依次從外存 (Τ[0…m-l])給各結(jié)點調(diào)入相鄰的若干個子三角網(wǎng),并由該結(jié)點調(diào)用子網(wǎng)歸并算法將這些 子三角網(wǎng)歸并為一個三角網(wǎng),并按分配順序依次將各結(jié)點合并所得的三角網(wǎng)插入鏈表尾 部,換出到外存;然后再對后面的若干個相鄰子三角網(wǎng)進(jìn)行歸并,重復(fù)上述過程直至m個三 角網(wǎng)歸并完畢為止;
[0013] 步驟5,對鏈表Τ'重復(fù)步驟4中的過程,對相鄰的子三角網(wǎng)進(jìn)行下一輪歸并,如此 經(jīng)過多輪的歸并,最終將形成一個三角網(wǎng)。
[0014] ⑵與本發(fā)明相關(guān)的現(xiàn)有技術(shù)二為:
[0015] 步驟1,把離散點集V所在區(qū)域D劃分成一定大小的正方形網(wǎng)格,點集V以網(wǎng)格為 單元進(jìn)行存儲;
[0016] 步驟2,主控處理機(jī)求點集V的凸包;
[0017] 步驟3,按一定的間隔把凸包的邊傳給其它m-l個處理機(jī),并相應(yīng)建立邊表和總邊 表,把點集V傳送給其它m-l個處理機(jī);
[0018] 步驟4,建立總邊表Gross_EdgeTable、新邊表隊列New_EdgeQueue及每個處理機(jī) 邊表 Each_Table ;
[0019] 步驟5,每個處理機(jī)按規(guī)則從Each_Table中取出一條有向邊,尋找其右邊符合 Delaunay三角新規(guī)則的點P,如果該點存在,刪除Each_Table及Gross_EdgeTable中原來 的邊,連接點P構(gòu)成新的邊new_
當(dāng)前第1頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
紫云| 太湖县| 乌恰县| 东至县| 新和县| 胶南市| 合川市| 定西市| 霍城县| 宜昌市| 翼城县| 东辽县| 武安市| 霍城县| 偏关县| 武清区| 桓台县| 于都县| 镇康县| 新疆| 衢州市| 黔南| 彭阳县| 津南区| 麻栗坡县| 手机| 兴宁市| 阿荣旗| 宜州市| 齐齐哈尔市| 太仓市| 克什克腾旗| 家居| 丰原市| 敖汉旗| 黔西| 牡丹江市| 霍林郭勒市| 长武县| 孝昌县| 墨竹工卡县|