亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        兩類經(jīng)典算法求最短路問題剖析

        2015-07-05 09:21:30韋艷肖
        2015年35期

        韋艷肖

        摘 要:舉例說明Dijkstra算法和Floyd算法求最短路問題,通過規(guī)定起點(diǎn)、終點(diǎn)、各點(diǎn)之間權(quán)值的大小,找出了最短路徑,求出最短路長,并增加負(fù)權(quán)值、方向和閉合回路來分別研究兩種算法在運(yùn)算中的利弊以及適用性。

        關(guān)鍵詞:Dijkstra算法;Floyd算法;最短路

        1.引言

        眾所周知,最短路算法有兩種基本算法,一是指定的頂點(diǎn)之間的最短路徑算法,二是所有頂點(diǎn)之間的最短路算法,其中所有頂點(diǎn)間最短路算法更具有代表性。目前,求最短路問題的方法很多,各有優(yōu)劣性,而實(shí)際應(yīng)用中以兩類經(jīng)典算法居多,分別是1959年E.W.Dijkstra提出的Dijkstra算法和1962年Floyd提出的Floyd算法。

        1.1 Dijkstra算法

        Dijkstra算法的基本思想是:若起點(diǎn)vs到終點(diǎn)vt的最短路經(jīng)過點(diǎn)v1,v2,v3,則v1到vt的最短路是p1t={v1,v2,v3,vt},v2到vt的最短路是p2t={v2,v3,vt},v3到vt的最短路是p3t={v3,vt},Dijkstra算法是在圖上進(jìn)行一種標(biāo)號(hào)迭代的過程。不妨設(shè)?。╥,j)的長度為cij≥0,vi到vj的最短路記為pij,最短路長記為Lij。Dijkstra算法的基本步驟如下[1-2]:

        (1)找出所有起點(diǎn)vi已標(biāo)號(hào),終點(diǎn)vj未標(biāo)號(hào)的弧,集合為B={(i,j)︱vi已標(biāo)號(hào);vj未標(biāo)號(hào)},如果這樣的弧不存在或已標(biāo)號(hào)則計(jì)算結(jié)束。

        (2)計(jì)算集合B中弧的標(biāo)號(hào):k(i,j)=b(i)+cij。

        (3)b(l)=minj{k(i,j)|(i,j)∈B},在弧的終點(diǎn)vl標(biāo)號(hào)b(l),返回步驟(1)。

        完成步驟(1)~(3)為一輪計(jì)算,每一輪計(jì)算至少得到一個(gè)點(diǎn)的標(biāo)號(hào),最多通過n輪計(jì)算得到最短路。

        1.2 Floyd算法

        Floyd算法是一種矩陣迭代方法,也是一種表格迭代方法,對(duì)于求任意點(diǎn)間最短路、混合圖的最短路、有負(fù)權(quán)圖的最短路等一般網(wǎng)絡(luò)問題來說是比較有效的,F(xiàn)loyd算法的基本步驟如下[1-2]:

        (1)寫出vi一步到達(dá)vj的距離矩陣L1=(L(1)ij),L1也是一步到達(dá)的最短距離矩陣。如果vi 與vj之間沒有關(guān)聯(lián),則令cij=+∞。

        (2)計(jì)算兩步最短矩陣。設(shè)vi到vj經(jīng)過一個(gè)中心點(diǎn)vr,要兩步到達(dá)vj,則vi到vj的最短距離為L(2)ij=minr{cir+crj},最短距離矩陣為L2=(L(2)ij)。

        (3)計(jì)算k步最短距離矩陣。設(shè)vi經(jīng)過中間點(diǎn)vr到達(dá)vj,vi經(jīng)過k-1步到達(dá)點(diǎn)vr的最短距離為L(k-1)ir,vr經(jīng)過k-1步到達(dá)點(diǎn)vj的最短距離為L(k-1)rj,則vi經(jīng)k步到達(dá)vj的最短距離為L(k)ij=minr{L(k-1)ir+L(k-1)rj},最短距離矩陣為Lk=(L(k)ij)。

        (4)比較矩陣Lk與Lk-1,當(dāng)LK=Lk-1時(shí)得到任意兩點(diǎn)間的最短距離矩陣Lk。

        2.具體應(yīng)用

        本節(jié)中通過具體例子,如圖1,圖2所示,利用Dijkstra算法和Floyd算法分別求出頂點(diǎn)v1到頂點(diǎn)v8的最短路以及最短路長。

        即得出v1到v8的最短距離為18,其所對(duì)應(yīng)的最小生成樹和最短路線圖分別如圖2-8和2-9所示:

        3.算法分析

        綜上,通過具體例子介紹和分析了Dijkstra算法和Floyd算法這兩種非常經(jīng)典的最短路算法。可得Dijkstra算法是主要用于解決無負(fù)權(quán)值的有向圖和無向圖的最短路算法,F(xiàn)loyd算法是通過矩陣運(yùn)算來求解網(wǎng)絡(luò)中的最短路問題的方法。這兩種算法都可計(jì)算一個(gè)結(jié)點(diǎn)到其它結(jié)點(diǎn)的最短路徑。Dijkstra算法是運(yùn)用表上做圖的方式一個(gè)一個(gè)點(diǎn)的添加,根據(jù)最小的權(quán)值的選擇依次對(duì)各點(diǎn)進(jìn)行標(biāo)號(hào),直到將所有的點(diǎn)都標(biāo)上號(hào),從而找出最短路徑。而Floyd算法是首先將所有的點(diǎn)都標(biāo)出,將各點(diǎn)間的權(quán)值反應(yīng)在矩陣上,再用矩陣計(jì)算出最優(yōu)矩陣。Dijkstra算法的優(yōu)點(diǎn)是算法比較簡單明了,不易出錯(cuò),但是也有缺點(diǎn),主要是步驟卻非常繁瑣。Floyd算法的算法雖然說有點(diǎn)復(fù)雜,但是效率比較高,在計(jì)算時(shí)能夠節(jié)約時(shí)間。綜上所述,兩種算法的差別很大,但是效果卻是相同的。我們在實(shí)際的運(yùn)用中可以按各自的需求選擇合適的方法。(作者單位:河池學(xué)院數(shù)學(xué)與統(tǒng)計(jì)學(xué)院)

        基金項(xiàng)目:廣西高??茖W(xué)研究項(xiàng)目(201010LX481),廣西高等教育教學(xué)改革工程項(xiàng)目(2015JGA552)

        參考文獻(xiàn):

        [1] 嚴(yán)蔚敏.吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言)[M].北京:清華大學(xué)大學(xué)出版社,2007.

        [2] 王桂平.王衍.任嘉辰.圖論算法理論、實(shí)現(xiàn)及應(yīng)用[M].北京:北京大學(xué)出版,2011.

        [3] 王朝瑞.圖論[M].北京:北京理工大學(xué)出版社,2002.

        [4] 嚴(yán)寒冰等.基于GIS的城市道路網(wǎng)最短路徑算法探討.計(jì)算機(jī)學(xué)報(bào),2000,23(2):210-215.

        [5] 徐鳳生.最短路徑的求解算法[J].計(jì)算機(jī)應(yīng)用,2004,24(5):88- 89.

        [6] 張新元.最短路問題的Seidel迭代[J].數(shù)學(xué)的實(shí)踐與認(rèn)識(shí),1993,7(2):18-21.

        [7] 林華珍,周根貴.求解最短路問題的一種優(yōu)化矩陣算法[J].長江大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,4(4):14-16.

        亚洲无码在线播放| 永久免费在线观看蜜桃视频| 国产洗浴会所三级av| 伊人中文字幕亚洲精品乱码| 亚洲老妈激情一区二区三区| 国产在线91观看免费观看| 日本一区二区三区在线观看免费 | 亚洲精品国产精品乱码视色| 国产aⅴ无码专区亚洲av麻豆| 免费一区二区三区久久| 国产免费一级在线观看| 一本色道久久88综合亚洲精品| 精品国产日韩亚洲一区在线| 亚洲 日韩 激情 无码 中出| 精品人妻人人做人人爽| 狠狠色狠狠色综合久久第一次| 国产精品亚洲综合色区丝瓜| av在线高清观看亚洲| 久久精品国产精品青草| 国内精品一区二区三区| 色老汉亚洲av影院天天精品| 24小时在线免费av| 免费毛片a线观看| 国产精品天天狠天天看| 欧美一级视频在线| 青青草视频在线观看入口| 亚洲婷婷五月综合狠狠爱| 欧美日本日韩aⅴ在线视频 | 国产精品美女一区二区av| 亚洲综合第一页中文字幕| 伊人大杳焦在线| 欧美丰满大乳高跟鞋| 国产 在线播放无码不卡| 国产成人大片在线播放| 日韩欧美人妻一区二区三区| 亚洲欧洲精品成人久久曰影片| 最全精品自拍视频在线| 亚洲成a人v欧美综合天堂| 内射后入在线观看一区| 久久免费网站91色网站| 公厕偷拍一区二区三区四区五区 |