資源描述:
《地圖中最短路徑的搜索算法研究綜述》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、地圖中最短路徑的搜索算法研究學(xué)生:李小坤導(dǎo)師:董巒摘要:目前為止,國內(nèi)外大量專家學(xué)者對“最短路徑問題”進行了深入的研究。本文通過理論分析,結(jié)合實際應(yīng)用,從各個方面較系統(tǒng)的比較廣度優(yōu)先搜索算法(BFS)、深度優(yōu)先搜索算法(DFS)、A*算法的優(yōu)缺點。關(guān)鍵詞:最短路徑算法;廣度優(yōu)先算法;深度優(yōu)先算法;A*算法;Theshortestpathofmap'ssearchalgorithmAbstract:Sofar,alargenumberofdomesticandforeignexpertsandscholarsonthe"shortestpathproblem"in-depths
2、tudy.Inthispaper,throughtheoreticalanalysisandpracticalapplication,comprisewiththebreadth-firstsearchalgorithm(BFS),depth-firstsearchalgorithm(DFS)andtheA*algorithmsfromanyaspectsofsystematic.Keywords:shortestpathalgorithm;breadth-firstalgorithm;algorithm;A*algorithm;前言:最短路徑問題是地理信息系統(tǒng)(GIS)網(wǎng)絡(luò)
3、分析的重要內(nèi)容之一,而且在圖論中也有著重要的意義。實際生活中許多問題都與“最短路徑問題”有關(guān),比如:網(wǎng)絡(luò)路由選擇,集成電路設(shè)計、布線問題、電子導(dǎo)航、交通旅游等。本文應(yīng)用深度優(yōu)先算法,廣度優(yōu)先算法和A*算法,對一具體問題進行討論和分析,比較三種算的的優(yōu)缺點。在地圖中最短路徑的搜索算法研究中,每種算法的優(yōu)劣的比較原則主要遵循以下三點:[1](1)算法的完全性:提出一個問題,該問題存在答案,該算法能夠保證找到相應(yīng)的答案。算法的完全性強是算法性能優(yōu)秀的指標之一。(2)算法的時間復(fù)雜性:提出一個問題,該算法需要多長時間可以找到相應(yīng)的答案。算法速度的快慢是算法優(yōu)劣的重要體現(xiàn)。(3)算法的
4、空間復(fù)雜性:算法在執(zhí)行搜索問題答案的同時,需要多少存儲空間。算法占用資源越少,算法的性能越好。地圖中最短路徑的搜索算法:1、廣度優(yōu)先算法廣度優(yōu)先算法(Breadth-First-Search),又稱作寬度優(yōu)先搜索,或橫向優(yōu)先搜索,是最簡便的圖的搜索算法之一,這一算法也是很多重要的圖的算法的原型,Dijkstra單源最短路徑算法和Prim最小生成樹算法都采用了和寬度優(yōu)先搜索類似的思想。廣度優(yōu)先算法其別名又叫BFS,屬于一種盲目搜尋法,目的是系統(tǒng)地展開并檢查圖中的所有節(jié)點,以找尋結(jié)果。換句話說,它并不考慮結(jié)果的可能位址,徹底地搜索整張圖,直到找到結(jié)果為止。BFS并不使用經(jīng)驗法則算
5、法。廣度優(yōu)先搜索算法偽代碼如下:[2-3]BFS(v)//廣度優(yōu)先搜索G,從頂點v開始執(zhí)行//所有已搜索的頂點i都標記為Visited(i)=1.//Visited的初始分量值全為0Visited(v)=1;Q=[];//將Q初始化為只含有一個元素v的隊列whileQnotnulldou=DelHead(Q);for鄰接于u的所有頂點wdoifVisited(w)=0thenAddQ(w,Q);//將w放于隊列Q之尾Visited(w)=1;endifendforendwhileendBFS這里調(diào)用了兩個函數(shù):AddQ(w,Q)是將w放于隊列Q之尾;DelHead(Q)是從隊
6、列Q取第一個頂點,并將其從Q中刪除。重復(fù)DelHead(Q)過程,直到隊列Q空為止。完全性:廣度優(yōu)先搜索算法具有完全性。這意指無論圖形的種類如何,只要目標存在,則BFS一定會找到。然而,若目標不存在,且圖為無限大,則BFS將不收斂(不會結(jié)束)。時間復(fù)雜度:最差情形下,BFS必須尋找所有到可能節(jié)點的所有路徑,因此其時間復(fù)雜度為,其中
7、V
8、是節(jié)點的數(shù)目,而
9、E
10、是圖中邊的數(shù)目??臻g復(fù)雜度:因為所有節(jié)點都必須被儲存,因此BFS的空間復(fù)雜度為,其中
11、V
12、是節(jié)點的數(shù)目,而
13、E
14、是圖中邊的數(shù)目。另一種說法稱BFS的空間復(fù)雜度為O(B),其中B是最大分支系數(shù),而M是樹的最長路徑長度。由于對
15、空間的大量需求,因此BFS并不適合解非常大的問題。[4-5]2、深度優(yōu)先算法深度優(yōu)先搜索算法(DepthFirstSearch)英文縮寫為DFS,屬于一種回溯算法,正如算法名稱那樣,深度優(yōu)先搜索所遵循的搜索策略是盡可能“深”地搜索圖。[6]其過程簡要來說是沿著頂點的鄰點一直搜索下去,直到當(dāng)前被搜索的頂點不再有未被訪問的鄰點為止,此時,從當(dāng)前輩搜索的頂點原路返回到在它之前被搜索的訪問的頂點,并以此頂點作為當(dāng)前被搜索頂點。繼續(xù)這樣的過程,直至不能執(zhí)行為止。深度優(yōu)先搜索算法的偽代碼如下:[7]DFS(v)//