999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Dijkstra算法在GIS車輛誘導系統(tǒng)的優(yōu)化實現(xiàn)

2015-11-23 03:12:28殷招偉戴文博錢俊彥
大眾科技 2015年2期
關鍵詞:優(yōu)化

殷招偉 戴文博 錢俊彥

(桂林電子科技大學計算機科學與工程學院,廣西 桂林 541004)

Dijkstra算法在GIS車輛誘導系統(tǒng)的優(yōu)化實現(xiàn)

殷招偉 戴文博 錢俊彥

(桂林電子科技大學計算機科學與工程學院,廣西 桂林 541004)

為了滿足人們日益增長的出行需求,跨學科的智能交通系統(tǒng)應運而生。最短路徑分析是GIS車輛誘導系統(tǒng)應用的關鍵問題,Dijkstra算法是解決該問題的常用算法。文章結合二樹Dijkstra算法的思想和現(xiàn)代多核多線程的技術,對Dijkstra算法進行了優(yōu)化與改進,并對該算法在車輛誘導系統(tǒng)中的應用進行了探討。該系統(tǒng)以桂林市為例模擬了最短路徑搜過程,證明該算法的高效性和實用性。

最短路徑;Dijkstra算法;車輛誘導系統(tǒng)

車輛誘導系統(tǒng)作為智能交通系統(tǒng)的子系統(tǒng),在交通管理上發(fā)揮著重要作用。地理信息系統(tǒng) GIS(Geographical Information System)以其強大功能應用在電子地圖應用在車輛誘導系統(tǒng)中[1],其核心問題是求解最短路徑問題。最短路徑問題是指在一定的評判準則下,尋找源點到目標節(jié)點之間的最優(yōu)路徑[1]。

用于解決最短路徑問題的算法被稱作“最短路徑算法”[2],包括傳統(tǒng)Dijkstra算法、A*算法和各種限制搜索區(qū)域算法。最常用且最典型的為Dijkstra算法,由于該算法是一種窮盡遍歷算法,必定會找到最短路徑,但對于節(jié)點數(shù)目巨大的交通網(wǎng)絡,其搜索效率很低。本文對該算法進行優(yōu)化和改進,利用該優(yōu)化算法可以快速找到最優(yōu)路徑。最終將其應用于車輛誘導系統(tǒng)中,為人們出行提供便利,并證明該算法的實用性。

1 Dijkstra算法

荷蘭計算機學科教授迪杰斯特(E.W.Dijkstra)于1959年提出了Dijkstra算法。該算法被公認為是最經(jīng)典的算法之一,也是解決最短路徑問題的基礎算法。它可以描述為從某點到網(wǎng)絡中其余定點的路徑長度依次遞增的最短路經(jīng)樹,換言之Dijkstra算法是用于計算網(wǎng)絡中起始節(jié)點s到其他所有可達節(jié)點的最短路徑樹。在實際求解最短路徑過程中,一旦發(fā)現(xiàn)路徑樹中已經(jīng)存在目標節(jié)點t,則終止算法。其中,最短路徑起始節(jié)點s到目標節(jié)點t的路徑就是最短路徑。Dijkstra算法將網(wǎng)絡中節(jié)點分為三類:未標記節(jié)點、候選節(jié)點和永久節(jié)點。算法初始化時把所有節(jié)點初始化為未標記節(jié)點,找到與起始節(jié)點有最短路徑的節(jié)點稱作是永久節(jié)點,在路搜索過程中與永久節(jié)點相連的節(jié)點標記為候選節(jié)點。算法可以描述為在循環(huán)搜索,在候選節(jié)點集合中查找出距離源節(jié)點 s最近的節(jié)點,同時將該節(jié)點標記為永久節(jié)點,直至把目標節(jié)點或者所有節(jié)點標成永久節(jié)點為止。其算法描述如下:

上述算法過程描述中,有向圖G可以用[N,A]來表示,其中N為所有節(jié)點集合,A表示所有邊的集合。邊(i,j)∈A的權值用lij表示。假設存在最短路徑節(jié)點s到節(jié)點t,并且所有邊(i,j)滿足 lij≥0。FS(u)表示節(jié)點 u所有后繼節(jié)點(u,j)∈A的集合,u∈N;BS(v)表示節(jié)點v所有前驅節(jié)點的集合,(i,v)∈A,v∈N。標簽集合du用來表示路徑樹T中根節(jié)點到各個節(jié)點路徑長度;pu表示路徑樹 T中的上級節(jié)點;Q表示候選節(jié)點集合。

2 Dijkstra算法優(yōu)化與改進

Dijkstra算法是一種窮盡遍歷算法,其核心思想是遍歷完所有的節(jié)點,找到根節(jié)點到目標節(jié)點之間所有的可達路徑并從中選出最短路徑。因此,在搜索過程中即使一開始找到最短路徑也要繼續(xù)遍歷完其他所有節(jié)點,結果會消耗不必要的內存資源,降低搜索效率。因此在實際當中,需要優(yōu)化搜索方方式,其主要分為兩種:一是加快搜索速度;另外就是減少搜索節(jié)點數(shù)目。本文從減少搜索節(jié)點數(shù)目這個方面優(yōu)化Dijkstra算法。

2.1 二樹Dijkstra算法

二樹Dijkstra算法最早由Dantzig在文獻[3]中提出,但是他并未給出算法結束的條件。Pohl在文獻[4]補充該算法為雙向搜索算法,形成了較為完善的二樹Dijkstra算法。

二樹Dijkstra算法基本思想就是構造兩棵分別以起點為根和以終點為根最短路徑搜索樹,它們擁有相同的節(jié)點。然后分別以這兩棵路徑搜索樹沿著相反的方向開始搜索,同時在當前的上級節(jié)點中保存的是前驅節(jié)點而不是后繼節(jié)點。其中,兩棵樹是以交替的形式增長,故該算法又稱串行二樹Dijkstra算法,當兩棵樹中出現(xiàn)相同節(jié)點時結束算法。這個相同節(jié)點稱作公共節(jié)點。但需要注意的是,兩棵樹中出現(xiàn)公共節(jié)點并不是得到最短路徑的必要條件,即找到的公共節(jié)點不一定在最短路徑上。該算法所需的存儲空間是Dijkstra算法的兩倍,算法流程如下:

2.2 二樹Dijkstra算法的改進

二樹Dijkstra算法中,我們可以看到兩棵路徑搜索樹是相互獨立的,唯一關聯(lián)的是需要檢測兩棵樹中是否存在公共節(jié)點。在多核多線程技術中,關聯(lián)并不會造成任何的干擾[5]。因此,通過為兩棵路徑樹創(chuàng)建兩個線程來擴張節(jié)點,就實現(xiàn)了并行的二樹Dijkstra算法。當其中一個線程檢測到公共節(jié)點時,則通知另一個線程同時結束算法,算法流程如下圖所示。

相比串行二樹Dijkstra算法,并行二樹Dijkstra算法在搜索過程中是從兩個方向同時進行搜索,因此其搜索效率是串行二樹Dijkstra算法的兩倍。但在實際編碼實現(xiàn)過程要考慮到線程之間的同步與互斥,即對臨界資源的加鎖與解鎖。因此實際的并行二樹 Dijkstra算法的效率達不到串行二樹Dijkstra算法的兩倍,但其實際搜索效率仍然高于串行二樹Dijkstra算法。其搜索范示意圖如圖1所示。

圖1 算法搜索范圍示意圖

2.3 測試結果與分析

將本文中提出的上述三種算法應用到路網(wǎng)分析中,因為路網(wǎng)中節(jié)點數(shù)目較多,故其數(shù)據(jù)結構采用鄰接表存儲。測試數(shù)據(jù)來源DIMACS網(wǎng)站提供的美國道路網(wǎng)信息,測試結果如表2所示,其中的T表示消耗時間,單位為妙,W表示搜索路徑的權值。

表2 算法結果統(tǒng)計表

從表中可以得到,在搜索過程中消耗的時間關系是:Dijkstra算法>二樹Dijkstra算法>并行二樹Dijkstra算法。在準確性方面,Dijkstra算法求解出來的一定是最短路徑,盡管二樹Dijkstra算法和并行二樹Dijkstra算法的不能保證其結果一定是最短路徑,但是非常接近Dijkstra算法的結果。在大量實驗的基礎上,并行二樹Dijkstra算法的算法結果準確率在90%以上,基本滿足人們的出行要求。

3 并行二樹 Dijkstra算法在 VRGS中的應用

因為城市路網(wǎng)中節(jié)點數(shù)目巨大,故在改進算法中采用鄰接表作為存儲結構,在保證道路完整性的前提下大幅減低了空間復雜度[6]。最終將本文提出的改進算法—二樹 Dijkstra算法應用到車輛誘導系統(tǒng)中。

3.1 算法設計實現(xiàn)

建立道路網(wǎng)絡拓撲結構。定義一個Node類,用來表示點要素,由唯一編號(ID)、前驅弧段(PreEdges)和后繼弧段(AdjEdges)三個屬性組成。PreEdges和AdjEdges都是集合,分別記錄了該節(jié)點的所有前驅弧段和后繼弧段。弧段用Edge類來表示,記錄了弧段連接的節(jié)點和弧段的一些基本屬性信息。整個網(wǎng)絡拓撲圖用 Graph類表示,一個關鍵的屬性是節(jié)點集合屬性,記錄所有的節(jié)點,并以哈希的方式存儲。然后創(chuàng)建兩個工作線程分別從起點和終點開始搜索。定義一個永久標簽集合作為兩個線程的公共變量,當其中一個線程向其添加永久節(jié)點時檢測該集合中是否存在該節(jié)點,如存在即為公共節(jié)點,結束算法;反之添加。

3.2 算法運行結果分析

傳統(tǒng)Dijkstra算法和并行二樹Dijkstra算法的執(zhí)行結果如圖3和圖4所示所示。六合路口和象山公園兩個位置的ID分別為1116和382。圖中紅色路線為六合路口到象山公園的最短路徑,藍色的點表示算法執(zhí)行過程中搜索過的結點,其節(jié)點數(shù)量反應鄰接節(jié)點的搜索規(guī)模。

圖3 傳統(tǒng)Dijkstra求解最短路徑結果圖

圖4 并行二樹Dijkstra求解最短路徑結果圖

實驗中統(tǒng)計的結果表明,并行二樹Dijkstra算法搜索的結點數(shù)為498,相比傳統(tǒng)Dijkstra算法搜索的735結點,減少將近32%。由于并行的不可預測性,其執(zhí)行結果不是確定的,所以實驗過程中搜索的節(jié)點數(shù)也在變化,但大部分情況下其搜索的節(jié)點總數(shù)相對要少很多。

4 結束語

本文提出并行二樹Dijkstra算法可以有效的解決最短路徑問題,在車輛誘導系統(tǒng)中的應用證明了該算法的實用性。但是這種優(yōu)化算法是一種以空間換取時間的算法,因為構造了兩棵路徑搜索樹,所以會產(chǎn)生一定的附加數(shù)據(jù),因此下一步的工作應當考慮如何進一步優(yōu)化數(shù)據(jù)結構,減少冗余數(shù)據(jù)。

[1] 姜鳳輝,李樹軍,姜鳳嬌,等.基于GIS的Dijkstra改進算法及其在交通導航系統(tǒng)中的應用[J].測繪與空間地理信息,2011,(4):129-131.

[2] 王樹西,吳政學.改進的Dijkstra最短路徑算法及其應用研究[J].計算機科學,2012,(5):223-228.

[3] Dantzig G B. On the shortest route through a network[J]. Management Science,1960,6(2): 187-190.

[4] Nicholson T. Finding the Shortest Route Between Two Points in a Network[J].The Computer Journal,1966, 9(3):275-280.

[5] 黃國睿,張平,魏廣博.多核處理器的關鍵技術及其發(fā)展趨勢[J].計算機工程與設計,2009,30(10):2414-2418.

[6] 王海梅.基于GIS的最優(yōu)路徑算法研究與實現(xiàn)[D].南京理工大學博士學位論文,2008:7.

Efficient implementation of Dijkstra algorithm in vehicle route guidance system based on GIS

The interdisciplinary application of intelligent transportation system comes into being just to meet people’s growing demand.The analysis of shortest path is the key problem in the application of VRGS (Vehicle Route Guidance System), the Dijkstra algorithm is the common algorithm to solve this problem effectively. Combined two-tree Dijkstra algorithm and multi-core and multi-threading technology, this paper optimizes and improves the traditional Dijkstra algorithm. And it discusses the application of the algorithm in VRGS.At last, this paper poves its practicality and efficiency by simulating the shortest path search process of Guilin.

shortest path ;Dijkstra shortest path algorithm; vehicle route guidance system

U49

A

1008-1151(2015)02-0025-04

2015-01-12

殷招偉,桂林電子科技大學計算機科學與工程學院碩士,研究方向為 GIS-T應用;戴文博,桂林電子科技大學計算機科學與工程學院碩士;錢俊彥,桂林電子科技大學計算機科學與工程學院博士。

猜你喜歡
優(yōu)化
超限高層建筑結構設計與優(yōu)化思考
PEMFC流道的多目標優(yōu)化
能源工程(2022年1期)2022-03-29 01:06:28
民用建筑防煙排煙設計優(yōu)化探討
關于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
由“形”啟“數(shù)”優(yōu)化運算——以2021年解析幾何高考題為例
圍繞“地、業(yè)、人”優(yōu)化產(chǎn)業(yè)扶貧
事業(yè)單位中固定資產(chǎn)會計處理的優(yōu)化
消費導刊(2018年8期)2018-05-25 13:20:08
4K HDR性能大幅度優(yōu)化 JVC DLA-X8 18 BC
幾種常見的負載均衡算法的優(yōu)化
電子制作(2017年20期)2017-04-26 06:57:45
主站蜘蛛池模板: 免费日韩在线视频| 毛片一区二区在线看| 免费啪啪网址| 亚洲综合网在线观看| 人妻丝袜无码视频| 精品视频在线观看你懂的一区| 亚洲精品国产精品乱码不卞| 亚洲日韩精品欧美中文字幕| 欧美成人国产| 白丝美女办公室高潮喷水视频| 成年人免费国产视频| 国产黄色片在线看| 亚洲三级网站| 久久这里只精品国产99热8| 中文字幕亚洲综久久2021| 九九线精品视频在线观看| 国产极品美女在线播放| 亚洲无码高清一区| 丁香亚洲综合五月天婷婷| 成人亚洲天堂| a国产精品| 亚洲91在线精品| 日韩毛片在线视频| 亚洲精品国产综合99| 欧美午夜在线视频| 久草视频福利在线观看| 浮力影院国产第一页| 亚洲高清在线播放| 国产成人无码久久久久毛片| 美女国内精品自产拍在线播放| 国产乱子精品一区二区在线观看| 伊人久久大香线蕉aⅴ色| 国产福利免费视频| 午夜精品久久久久久久2023| 国产男女免费完整版视频| 丝袜国产一区| 婷婷亚洲视频| 国产精品一区不卡| 天天做天天爱天天爽综合区| 粗大猛烈进出高潮视频无码| 精品一区二区三区视频免费观看| 亚洲国产成人自拍| 久久天天躁狠狠躁夜夜2020一| 依依成人精品无v国产| 婷婷六月激情综合一区| 亚洲福利视频网址| 91欧美亚洲国产五月天| 亚洲无码37.| 久久国产精品波多野结衣| 国产三级精品三级在线观看| 亚洲国产日韩一区| 久久婷婷六月| 五月婷婷伊人网| 另类综合视频| 美女视频黄又黄又免费高清| 国产欧美专区在线观看| 九色视频线上播放| 久久99精品久久久久纯品| 国产成人精品一区二区免费看京| 精品福利网| 激情综合网激情综合| 国产九九精品视频| 91蜜芽尤物福利在线观看| 在线无码私拍| 久久精品亚洲专区| 欧美性爱精品一区二区三区 | 97免费在线观看视频| 国产色图在线观看| 欧美日韩亚洲综合在线观看| 99视频精品全国免费品| 日韩人妻无码制服丝袜视频| 久热中文字幕在线观看| 91精品国产91久无码网站| 国产流白浆视频| 亚洲国产综合精品中文第一| 中文字幕亚洲专区第19页| 天堂成人在线| 国产精品黄色片| 四虎AV麻豆| 国产精品视频久| 高清视频一区| 在线观看亚洲精品福利片|