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

數據結構最短路徑算法及其應用

2015-09-10 11:37:30韓加軍
考試周刊 2015年90期

韓加軍

摘 要: 最短路徑算法研究是計算機科學研究的熱門話題,不僅具有重要的理論意義,而且具有重要的實用價值。最短路徑問題可以引申為最快路徑問題、最低費用問題等,但它們的核心算法都是最短路徑算法。經典的最短路徑算法——Dijkstra和Floyd算法是目前最短路徑問題采用的理論基礎。本文主要對Dijkstra和Floyd算法進行闡述和分析,然后運用這兩個算法解決兩個簡單的實際問題。

關鍵詞: 最短路徑 Dijkstra算法 Floyd算法 圖論

最短路徑,就是在所有路徑中找到一條距離最短的路徑,而我們所說的最短路徑不僅指地理意義的距離最短,而且可以引申到其他度量,如時間、費用、路線容量。相應地,最短路徑問題就成為最快路徑問題,最低費用問題等,所以我們所說的最短路徑也可以看做最優路徑問題。最短路徑問題在交通網絡結構的分析,交通運輸路線的選擇,通訊線路的建造與維護,運輸貨流的最小成本分析,城市公共交通網絡的規劃等方面,都有直接應用的價值。最短路徑問題在實際中常用于汽車導航系統及各種應急系統等這些系統,一般要求計算出到出事地點的最佳路線的時間應該在1s到3s內,在行車過程中還需要實時計算出車輛前方的行駛路線,這就決定了最短路徑問題的實現應該是高效的。經典圖論與不斷發展完善的計算機數據結構及算法的有效結合使新的最短路徑算法不斷涌現。

一、圖論基本概念

1.圖的定義。圖(graph)是一種較線性表和樹更為復雜的數據結構,圖與線性表和樹的結構區別表現在結點之間的關系上,線性表中的每個結點(除首尾結點外)都有一個前驅結點和一個后繼結點,結點與結點之間的關系是一對一的關系;樹上的每個結點都有一個父結點(根結點除外)和一個或多個孩子結點(葉子結點除外),結點與結點的關系是一對多的關系;而圖中結點之間的關系是多對多的關系,結點與結點之間的連接是任意的,每對結點間可以有連接也可以沒有連接。

2.圖的存儲結構。除了存儲圖中各個頂點本身的信息外,還要存儲頂點與頂點之間的所有關系。常用的圖的存儲結構有鄰接矩陣、鄰接表、十字鄰接表和鄰接多重表。

二、最短路徑問題

所謂最短路徑即從圖G中某對頂點Vi和Vj(i≠j)之間的所有路徑中選出權值之和最短的一條路徑作為頂點Vi到頂點Vj的最短路徑。其中邊的權值可多種,如路途、費用、耗時等,也可以同時存在多種權值,根據給定的比例,算出邊的綜合權值。

1.最短路徑。在一個無權的圖中,若從一個頂點到另一個頂點存在一條路徑,則稱該路徑長度為該路徑上經過的邊的數目,等于該路徑上的頂點數減1。由于從一個頂點到另一個頂點可能存在多條路徑,每條路徑上經過的邊數不同,即長度不同,把長度最短的那條叫做最短路徑。

2.最短路徑算法。求圖中最短路徑有兩方面問題:求圖中某一頂點到其余各頂點的最短路徑與求圖中每一對頂點之間的最短路徑。它們分別有Dijkstra算法和Floyd算法。

2.1Dijkstra算法。Dijkstra算法又稱為標號法,是用于求解單源點最短路徑的實用算法,至今仍然被公認為是解決從固定點出發到網絡中的任意頂點的最短路徑問題的較好方法之一。基本思想如下:設置并逐步擴充一個集合S,存放已求出其最短路徑的頂點,則尚未確定最短路徑的頂點集合是V-S,其中,V為網中所有頂點集合。按最短路徑長度遞增的順序逐個用V-S中的頂點加到S中,直到S中包含全部頂點,而V-S為空。

2.2Floyd算法。Floyd算法能夠求得任意頂點之間的最短路徑。基本思想是任意2個頂點vi到vj的距離的帶權鄰接矩陣開始,每次插入一個頂點vk,然后將vi到vj間的已知最短路徑與插入頂點vk作為中間頂點時可能產生的vi到vj路徑距離比較,取較小值以得到新的距離矩陣。如此循環迭代下去,依次構造出N個矩陣D(1),D(2)…D(n),當所有頂點均作為任意 2個頂點vi到vj中間頂點時得到的最后的帶權鄰接矩陣D(n)就反映了所有頂點對之間的最短距離信息,成為圖G的距離矩陣。

三、 應用舉例

1.Dijkstra算法在公交網絡中的應用。在紛繁復雜的城市公交網中,如果想尋找到一條從當前某個站點到達另一個目的站點的最短路徑應該怎樣實現呢?針對這個問題采用圖論中最短路徑思想進行了思考和研究,并采用Dijkstra算法實現搜尋計算操作和過程。

(1)實際問題描述。公交網絡中最短路徑問題可以描述為從某起始站點S出發到達目的站點E,其中S和E之間可行的線路往往不只一條,而是有很多條,那么這么多可行線路中哪一條是最短的呢?這里“最短”指實際走過的路程最短,或指在不計算公交換乘花費時間和公車保持勻速行駛的前提下,能夠以最短時間到達目的地中的“最短”。要求解這個問題如果不考慮其他各方面的復雜因素,就可以看成一個簡單的最短路徑問題。

(2)數學模型建立。起始站點、目的站點及所有可行路徑和中間站點構成的交通網絡,可以抽象為一個圖狀的數據模型——有向帶權圖記為G=(V,E,L),其中V表示所有站點的集合,假設共有N個站點;E表示所有直接通路或直通邊的集合,假設共有M條直通邊,注意,在實際應用中,這里的邊是有方向性的,邊的方向表示該直接通路的可行方向;L表示每條直接通路對應的邊權集合,即每條直通邊對應的距離值或時間開銷等。

(3) 實際問題抽象化。經過上述分析和建模,實際最短路徑問題可抽象為有向帶權圖中兩頂點之間的最短路徑問題。

四、結語

若尋找從起始點到其他所有頂點的最短路徑,按照Dijkstra算法則最多需要經過N-1步的搜尋計算操作(N表示G中的頂點個數)。在實際應用中,Dijkstra算法稱為單源點最短路徑算法。事實上,Dijkstra最短路徑算法除了可以用在公交網絡上之外,還可以用在現實生活的很多方面,如郵政線路、物流線路、管道布線等,我們還可以不斷將其推廣應用于更多方面,從而使數學與計算機科學能夠更充分地為人類服務。

參考文獻:

[1]嚴蔚敏,吳偉民.數據結構[M].北京:清華大學出版社,2002.

[2]李春葆,曾慧,張植民.數據結構程序設計題典[M].北京:清華大學出版社,2002.

[3]張永,李睿,年福忠.算法與數據結構[M].北京:國防工業出版社,2008.

[4]劉玉龍.數據結構與算法實用教程[M].北京:電子工業出版社,2007.

[5]徐俊明.圖論及其應用[M].合肥:中國科學技術大學出版社,2004.

[6]曹曉東,原旭.離散數學及算法[M].北京:機械工業出版社,2007.

主站蜘蛛池模板: 亚洲一区色| 波多野结衣第一页| 久久国产拍爱| 久久婷婷人人澡人人爱91| 午夜视频www| 精品一區二區久久久久久久網站| 国产成人1024精品下载| 91美女视频在线观看| 久久精品无码一区二区国产区| 巨熟乳波霸若妻中文观看免费 | 国产精品lululu在线观看| 91视频日本| 国产日韩丝袜一二三区| 欧美日韩高清| 蜜臀AV在线播放| 欧美一区福利| 日韩在线成年视频人网站观看| 福利国产微拍广场一区视频在线| 国产午夜福利在线小视频| 欧美翘臀一区二区三区| 久久6免费视频| a在线亚洲男人的天堂试看| 久久99精品久久久大学生| 亚洲性视频网站| 国产亚洲欧美日本一二三本道| 人妻精品全国免费视频| 日本人妻一区二区三区不卡影院 | 成人va亚洲va欧美天堂| 婷婷色一二三区波多野衣| 国产亚洲高清视频| 婷婷六月在线| 美女高潮全身流白浆福利区| 免费无码AV片在线观看国产| 精品少妇人妻无码久久| yjizz视频最新网站在线| 在线观看国产一区二区三区99| 亚洲日韩欧美在线观看| 成人午夜网址| 一级爆乳无码av| 毛片手机在线看| 亚洲有无码中文网| 91探花在线观看国产最新| 欧洲欧美人成免费全部视频| 2021国产精品自产拍在线| 亚洲日韩精品伊甸| 亚洲综合专区| 欧美福利在线播放| 日韩精品久久久久久久电影蜜臀| 亚洲精品爱草草视频在线| 日韩一区二区在线电影| 呦系列视频一区二区三区| 欧美综合中文字幕久久| 欧美在线一二区| 成人在线第一页| 97精品久久久大香线焦| 国产一区二区网站| 美女被操黄色视频网站| 日本黄色不卡视频| 欧美高清日韩| 秋霞午夜国产精品成人片| 国产三级精品三级在线观看| 欧洲亚洲欧美国产日本高清| 中文字幕人妻无码系列第三区| 色欲色欲久久综合网| 免费看一级毛片波多结衣| 欧美日韩另类国产| 日韩欧美中文字幕一本| 国产情侣一区二区三区| 欧美精品xx| 亚洲国产成人超福利久久精品| 毛片最新网址| 鲁鲁鲁爽爽爽在线视频观看| 久久91精品牛牛| 国产亚洲精品91| 亚洲综合网在线观看| 高清欧美性猛交XXXX黑人猛交 | 日韩无码黄色网站| 狠狠色香婷婷久久亚洲精品| 亚洲午夜国产精品无卡| 一本久道久久综合多人| 中文字幕 91| 2021国产精品自产拍在线|