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

        ?

        Maple實現(xiàn)基于Dijkstra算法的最短路徑

        2017-12-01 14:03:06夏磊
        課程教育研究 2017年45期

        夏磊

        【摘要】Dijkstra算法是從一個頂點到其余各頂點的最短路徑算法,用來解決有向圖中最短路徑問題,本人運用永久和臨時標(biāo)記的方式,結(jié)合數(shù)學(xué)軟件maple中圖論程序包networks,解決最短路徑問題。

        【關(guān)鍵詞】Dijkstra算法 最短路徑 maple

        【中圖分類號】G64 【文獻(xiàn)標(biāo)識碼】A 【文章編號】2095-3089(2017)45-0174-02

        一、引言

        隨之智能手機(jī)的高度發(fā)展,手機(jī)導(dǎo)航已成為有車一族出行必備的工具之一,如何在繁雜的城市道路中找到一條最短、行車最快的路徑能夠快速到達(dá)目的地,是人們非常關(guān)心的問題之一。

        實際上,很多問題都可以歸結(jié)為一個賦權(quán)圖的最短路徑問題。賦權(quán)圖的最短路徑問題可表述為:設(shè)賦權(quán)連通圖G=(V,E,W),其中V為頂點集,E為邊集,W為權(quán)(可以是道路長度,修路費用等),在所有頂點vi到頂點vj的路徑中,尋找一條長度最短的路徑,即一條路徑的長度等于路徑中所有邊的權(quán)值之和。

        二、Dijkstra算法

        1959年荷蘭計算科學(xué)家艾茲格·迪科斯徹(Edsger Wybe Dijkstra)給出了一個世界上公認(rèn)最好的計算最短路徑的方法,它是對每個頂點做標(biāo)記,令L(v)代表頂點v的標(biāo)記,在求解過程中,有些標(biāo)記被記為臨時標(biāo)記,其余的被記為永久標(biāo)記。令T表示當(dāng)前標(biāo)記為臨時標(biāo)記的頂點集合,算法開始時,所有標(biāo)記都被標(biāo)記為永久標(biāo)記,在每次的迭代過程中,算法將一個頂點的標(biāo)記從臨時標(biāo)記更改為永久標(biāo)記。舉例來說,假設(shè)有A,B,C,D,E,F(xiàn)六個地點,其拓?fù)浣Y(jié)構(gòu)如圖1所示,欲找出A到D的最短路徑。

        由于這個問題規(guī)模比較小,用窮舉法可以很容易知道最短路徑為A→E→C→D,長度為9。

        在Dijkstra算法中,如果L(v)是頂點v的永久標(biāo)記,那么L(v)就是從起點到v的最短路徑的長度。要在一個連通的賦權(quán)圖中尋找頂點A到D的最短路徑長度,邊(i, j)的權(quán)值w(i, j)>0,且頂點x的標(biāo)記為L(x),此時Dijkstra算法可詳細(xì)描述為:

        1.L(a)=0;for 所有頂點 x≠a do L(x)=∞

        2.令T為所有頂點組成的集合

        3.while z∈T do

        4.begin

        5.從T中找出最有最小L(v)的頂點v

        6.T: T- {v}

        7.for 所有與v相鄰的頂點 x∈T do L(x):min{L(x),L(v)+w(v, x)}

        8.end

        9.end.

        下面求圖1由頂點A到D(即D到A)的最短路徑及其長度:依次執(zhí)行到算法第五行(此時圖的狀態(tài)如圖2①),此時T為所有頂點,其中具有零時標(biāo)記的頂點為D(為了區(qū)分頂點是否已被考察過,考察過的頂點我們用方塊表示),修改T為{C,F(xiàn),B,E,A},更新與D相鄰的頂點C,F(xiàn)的標(biāo)記L(C)=min{∞,0+3}=3,L(F)=min{∞,0+7}=7,并標(biāo)注頂點C,F(xiàn),此時圖的狀態(tài)如圖2②,其中標(biāo)注“D,3”表明它的長度和它從D被標(biāo)注的事實。接下來,在T中找標(biāo)記L(x)的最小頂點C(把頂點C圖形改為方塊),并更新與C相鄰的頂點B,E的標(biāo)注,參見圖2③,重復(fù)上述步驟,找出L(x)的最小頂點E(改為方塊),并更新頂點E,B的標(biāo)注(參見圖2④)。接著該改頂點E為方塊,并更新頂點A的標(biāo)注(參見圖2⑤),這時,就要改A為方塊,因A已經(jīng)做了永久標(biāo)記,故算法結(jié)束,所有由D到A的最短路徑長度為9,從A開始順著標(biāo)注返回可以得到最短路徑為A→E→C→D。

        三、maple實現(xiàn)

        圖論是應(yīng)用數(shù)學(xué)和離散數(shù)學(xué)的重要組成部分之一,maple軟件作為一種計算機(jī)代數(shù)系統(tǒng),通過20多年的不斷發(fā)展,已經(jīng)成為當(dāng)今世界上最優(yōu)秀的數(shù)學(xué)軟件之一,其中包含的圖論程序包networks,對于研究圖論和圖論的教學(xué)提供了一個強(qiáng)有力的工具。Networks提供了非常豐富的函數(shù),在繪制簡單圖及進(jìn)行Dijkstra算法時,我們需要用到一下函數(shù):

        在使用networks中的命令之前,需裝載該程序包,即執(zhí)行with(networks),首先畫出圖1的簡單圖(圖3),命令如下:

        >with(networks):

        new(G):

        addvertex({A, B, C, D, E, F}, G):

        addedge([{A, B}, {A, E}, {B, C}, {B, F}, {E, F}, {E, C}, {C, D}, {F, D}], weight=[4, 5, 3, 6, 8, 1, 3, 7], G):

        >draw(G);

        然后找出圖中邊的長度:

        >eweight(G);

        table([e13=8,e2=5,e12=6,e1=4,e9=4,e14=1,e4=6,e7=3, e16=7, e8=7, e11=3, e15=3, e6=1, e5=8, e3=3, e10=5])

        使用maple提供的shortpathtree(G, v)命令(使用Dijkstra算法)求解最短路徑問題,并找出最短路徑(圖4):

        > T:=shortpathtree(G, A, W):

        >draw(T);

        最后利用vweight(v, G)命令得到A到D的最短路徑長度為9。

        >vweight(D, T);

        四、結(jié)論

        進(jìn)入二十一世紀(jì),隨著多媒體技術(shù)和數(shù)學(xué)軟件的迅速發(fā)展,計算機(jī)代數(shù)系統(tǒng)maple能夠處理圖論等數(shù)學(xué)分支,這是它優(yōu)于其他數(shù)學(xué)軟件的特點之一,利用maple軟件進(jìn)行圖的構(gòu)建,幫助人們解決最短路徑問題,進(jìn)行圖論計算,理解圖論的概念和方法,提供了有效的手段。這種利用CAS(Computer Algebra System,計算機(jī)代數(shù)系統(tǒng))進(jìn)行數(shù)學(xué)研究的方式,在當(dāng)前信息化快速發(fā)展的時代,值得提倡和推廣。

        參考文獻(xiàn):

        [1]部亞松.VC++實現(xiàn)基于Dijkstra算法的最短路徑[J].科技信息.2008(18).

        [2]張小紅,張建勛.《數(shù)學(xué)軟件與數(shù)學(xué)實驗》[M].北京:清華大學(xué)出版社.2004.endprint

        男女激情视频网站免费在线| 国产成人AV无码精品无毒| 久久se精品一区二区国产| 精品日韩在线观看视频| 国产国产精品人在线视| 草草久久久无码国产专区| 朝鲜女人大白屁股ass孕交| 国产免费无码一区二区三区| 亚洲色偷拍一区二区三区| 亚洲综合有码中文字幕| 免费av片在线观看网址| 国产精品igao视频网| 手机看片国产日韩| 自拍偷拍亚洲视频一区二区三区| 又黄又爽又色视频| 蜜臀久久99精品久久久久久小说 | 一区二区三区日本美女视频| 亚洲av福利院在线观看| 少妇高潮潮喷到猛进猛出小说| 婷婷激情六月| 中文字幕人妻av一区二区| 成视频年人黄网站免费视频| 日产精品久久久久久久蜜臀| 国产在线AⅤ精品性色| 国产黑丝美女办公室激情啪啪| 蜜桃日本免费看mv免费版| 激情婷婷六月| 午夜精品一区二区三区视频免费看| 精品国产精品久久一区免费式| 人人爽久久涩噜噜噜av| 亚洲高潮喷水中文字幕| 亚洲一区中文字幕视频| 日本一区二区三区免费播放| 亚洲男同志gay 片可播放| 日韩精品一区二区av在线| 中文字幕一区二区三区久久网 | av蜜桃视频在线观看| 国产精品久久久三级18| 国产成人无码一区二区三区在线| 探花国产精品三级在线播放| 顶级高清嫩模一区二区|