freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

dijkstra算法的matlab實現(xiàn)-資料下載頁

2025-06-25 06:30本頁面
  

【正文】 paths(i) = sta。 end endendindex = 1。for i = 1:1:m if i ~= sta min = inf。 for j = 1:1:m count = isIn(know,j)。 if count == 0 amp。amp。 lengs(j) = min k = j。 min = lengs(j)。 end end know(index) = k。 index = index+1。 for j = 1:1:m count = isIn(know,j)。 if count == 0 amp。amp。 (lengs(i) + adj_mat(i,j)) lengs(j) lengs(j) = lengs(i) + adj_mat(i,j)。 paths(j) = i。 end end endendleng = lengs(dst)。k = dst。j = 1。path = dst。while paths(k)~= sta k = paths(k)。 path = [k path]。endpath = [sta path]。代碼的算法過程如下:(1)首先獲取結(jié)點的數(shù)量m(即矩陣的長度),然后生成三個長度為m的數(shù)組,分別為從已知結(jié)點計算得到的最短路徑lengs,該結(jié)點的最短路徑途經(jīng)的上一節(jié)點paths,已知結(jié)點的集合know,并把初始節(jié)點加入know。paths數(shù)組為最短路徑途徑中的上一節(jié)點位置。例如假設(shè)最短路徑是從152,則paths(2) = 5 , paths(5) = 1。這樣在輸出從i到j(luò)的路徑時,可以由j開始逆向?qū)ふ遥敵霾榭?..paths(paths(j))..的值,直到值為i時停止查找,即為數(shù)據(jù)結(jié)構(gòu)中的“靜態(tài)鏈表”,這樣的好處是對應(yīng)每個結(jié)點只需要一個數(shù)就可以表示最短路徑的字符串,便于存儲,但是要注意解析時需要逆向解析。(2) 接下來查看鄰接矩陣,如果存在從起始結(jié)點到結(jié)點i的路徑,則將lengs(i)的值更改為矩陣中的值,并將paths(i)更改為目的地。(3) 尋找在lengs中且不在know中最小的值(即未知結(jié)點中路徑最短的值),將對應(yīng)的結(jié)點i加入know中,用i來判斷,對于每個不在know中的結(jié)點j,如果lengs(i) + adj_mat(i,j) lengs(j),則更新lengs(j)的值。(4) 重復(fù)(3)m1次(5) 經(jīng)過計算后,paths和lengs中存放的即為最短的路徑,剩下的工作為返回正確的值。leng的值即為lengs(dst),而path的值即為重復(fù)(1)中說明的訪問過程一直到paths(n) = sta,由于需要逆序輸出所以得到新的值時將它插入path的開頭而不是末尾,形式為path = [ k path],最后將起始地址的值放入path最開頭,函數(shù)結(jié)束。附:5 測試報告 啟動MATLAB(測試使用版本為MATLAB R2010b,操作系統(tǒng)為Windows 7 32位),輸入menu啟動程序,出現(xiàn)菜單如圖所示(為了區(qū)分圖片與文字,所有圖片均經(jīng)過反色處理,因此盡管MATLAB中背景為白色,在圖片中顯示為黑色):輸入1使用默認(rèn)數(shù)據(jù),程序提示成功并再次輸出菜單:輸入3查看數(shù)據(jù),可以看到默認(rèn)數(shù)據(jù)已經(jīng)被正確存儲:輸入4進(jìn)行最短路徑求取的測試,可以看到結(jié)果是正確的,接下來進(jìn)行更多的最短路徑求取測試:可以驗證結(jié)果都是正確的,而對于不正確的輸入程序可以簡單識別,如下圖所示:接下來對自由輸入的數(shù)據(jù)進(jìn)行測試。在主菜單中輸入2開始進(jìn)行數(shù)據(jù)輸入,首先輸入結(jié)點個數(shù):接下來輸入鄰接矩陣。由于程序使用的是無向圖,所以不需要輸入(i,j)(ij)時的數(shù)據(jù):輸入完成后查看數(shù)據(jù)是否被正確存儲,可以看到結(jié)果是正確的(inf是MATLAB中設(shè)定的無窮大常數(shù),在這里代表不存在路徑):進(jìn)行多次求最短路徑驗證,可以看到結(jié)果均正確:測試結(jié)束。多次測試結(jié)果均為正確,可以認(rèn)為程序的算法是正確的,程序的結(jié)構(gòu)是可靠的。6 心得體會 接觸MATLAB已經(jīng)有不短的時間了,以前就聽說它的功能十分強大,不過沒有做什么實驗,也沒有深刻體會到這一點,最多就只是有針對性地看一下書上的源程序,然后抄上去,看看運行結(jié)果,能出來跟書上一樣的結(jié)果就已經(jīng)很開心了,后來漸漸覺得MATLAB在工科上似乎是無所不能,功能十分強大,可是也沒有很正式學(xué)習(xí)。對MATLAB基本運算的學(xué)習(xí)讓我體會到了它在處理矩陣以及行列式這方面的獨到的優(yōu)點,基本運算看起來還是很簡單的,不過很多細(xì)節(jié)還是不容忽視,或許,越是簡單的東西越能檢測一個人的能力,因為它考驗了一個人的細(xì)心程度,并且,急功近利是不能夠做好的,從最初步的漸漸開始,一步一步的學(xué)習(xí),也使得我對MATLAB的基本運算有了初步的了解,并能夠編寫簡單的函數(shù)來加以運用。以前在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的時候,就了解了關(guān)于最短路徑算法的相關(guān)知識,所以,這次看到有這個題目,我就想試著做一做。查閱了以前的數(shù)據(jù)結(jié)構(gòu)書籍以及MATLAB相關(guān)的內(nèi)容之后,我就開始寫程序了,在網(wǎng)上可以找到很多這樣的程序,不過,都或多或少有些毛病,所以還不如自己把算法思想研究透了,自己來寫。我實現(xiàn)的時候,把它做成了簡單的菜單形式,通過輸入選擇來實現(xiàn),同時,還在內(nèi)部設(shè)置了一組默認(rèn)數(shù)據(jù),可以方便老師來進(jìn)行測試,結(jié)果在MATLAB主窗口輸出。在調(diào)試驗證過程中,也出現(xiàn)了很多問題,最開始的時候,發(fā)現(xiàn)有的輸出的結(jié)果并不是最短的,因而,我只好再對程序進(jìn)行認(rèn)真的檢查,修改。幾經(jīng)努力,最后終于得到了完善,看到了那些正確的輸出結(jié)果,很有成就感??傊?,這次課程設(shè)計讓我收獲了很多,不僅對MATLAB的基本運算有了初步的認(rèn)識,還對Dijkstra算法有了更深刻的認(rèn)識和理解,自己認(rèn)真獨立完成了一件事,讓我覺得有了很大的成就感,MATLAB強大的功能我只學(xué)習(xí)了冰山一角,但是,我相信,努力過了總會有收獲的。 7 參考文獻(xiàn)[1].《MATLAB從入門到精通》周建興編著,人民郵電出版社[2].《精通MATLAB 7》王正林, 劉明編著,北京電子工業(yè)出版社[3].《MATLAB語言及其在電子信息工程中的應(yīng)用》 王洪元編清華大學(xué)出版社[4].《數(shù)據(jù)結(jié)構(gòu)(C語言版)》 嚴(yán)蔚敏編 北京清華大學(xué)出版社[5].百度百科 Dijkst
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1