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

正文內容

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