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

正文內(nèi)容

基于dijkstra的最短路徑搜索算法的優(yōu)化及應用—畢業(yè)設計論文-在線瀏覽

2025-01-13 16:03本頁面
  

【正文】 ................................................................... 23 算法優(yōu)化前后對比 ............................................................................. 25 第 5 章 總結與展望 ................................................................................................ 26 全文總結 .................................................................................................... 26 展望 ............................................................................................................ 26 參考文獻 ..................................................................................................................... 27 附 錄 ....................................................................................................................... 29 致 謝 ....................................................................................................................... 35 1 第 1章 概述 國內(nèi)外最短路徑算法概況 國內(nèi)外最短路徑研究的主流與方向 最短路徑這一重要問 題早在 20世紀初就已經(jīng)得到人們的高度重視,當時也有許多科學家研究這一重要問題的求解方法。因此,在優(yōu)化算法中計算的節(jié)點數(shù)大幅減少,提高了算法的速度。傳統(tǒng) Dijkstra算法在求解節(jié)點間最短路徑時,對已標識節(jié)點以外的大量節(jié)點進行了計算,從而影響了算法的速度。 畢業(yè)設計(論文) 題 目 基于 Dijkstra 的最短路徑搜索算法的優(yōu)化及應用 姓 名 學 號 專業(yè)班級 指導教師 分 院 完成日期 I 摘 要 最短路徑分析是 GIS地理網(wǎng)絡分析功能中的一個關鍵問題。 Dijkstra算法是計算最短路徑的經(jīng)典算法, 是許多工程解決最短路徑問題的理論基礎 。 本文 在對傳統(tǒng) Dijkstra算法分析的基礎上,對其進行了優(yōu)化,優(yōu)化算法只對最短路徑上節(jié)點的鄰居做了處理 , 而不涉及到其他節(jié)點。本文通過實驗和實際應用對改進后的算法進行了驗證。但直到 1959年荷蘭計算機科學家 Edsger Wybe Dijkstra (迪杰斯特拉 )才給出這一問題求解的基本思想,并給出了算法。后來這個算法就成了眾所周知的 Dijkstra算法,也成為了一代經(jīng)典。特別是近 10年來,智能控制技術在路徑規(guī)劃問題中得到廣泛的應用,人們的研究興趣也逐漸從對前兩類算法的改進轉到了對第三類算法的進一步研究中。第一方面為最短路徑問題(完全信息情況下)。這些算法已成為確定情況下的經(jīng)典算法。 [2] 2 國內(nèi)外主流算法及其簡要展開 A*算法 [3] A*( AStar)算法是一種靜態(tài)路網(wǎng)中求解最短路最有效的方法。保證找到最短路徑(最優(yōu)解的)條件,關鍵在于估價函數(shù) h(n)的選?。汗纼r值 h(n)= n 到目標節(jié)點的 距離實際值,這種情況下,搜索的點數(shù)多,搜索范圍大,效率低。如果 估價值 實際值 , 搜索的點數(shù)少,搜索范圍小,效率高,但不能保證得到最優(yōu)解。 A*算法是人工智能中一種典型的啟發(fā)式搜索算法, 算法的創(chuàng)新之處在于選擇了下一個被探索的結點時引入了已知的路網(wǎng)信息和目標點信息,對當前點與終點的距離進行評估,作為選擇下一路徑結點的依據(jù)。在城鎮(zhèn)地價定級估價中,不考慮路網(wǎng),可采用柵格八方 向法。 它不用遍歷整個搜索空間,而是根據(jù)所選擇的啟發(fā)式函數(shù)朝著最有希望的方向前進。 遺傳算法 [4] 遺傳算法 ( Geic Algorithms,簡稱 GA) 是模擬達爾文的遺傳選擇和自然淘汰的生物進化過程的計算模型。 GA 把每一個可 能的解編碼為一個向量,稱為一個染色體,向量的每一個元素稱為基因。并按預定的目標函數(shù)對每個染色體進行評價,根據(jù)其結果給出一個適應度的值。由于新群體的成員是上一代群體的優(yōu)秀者,因而在總體上優(yōu)于上一代。上述 GA 的工作過程可用圖 簡要描述。算法反復選擇具有最短路徑估計的頂點 i∈ V—S,并將 i加入 S中,對 i的所有出邊進行松弛(本文第 2章節(jié)將對經(jīng)典 Dijkstra算法做詳細研究)。 ( 2)原始 Dijkstra 算法在運行時一般將網(wǎng)絡節(jié)點分為未標記節(jié)點、臨時標記節(jié)點和永久標記節(jié)點 3 種類型。根據(jù)算法的描述可知對臨時標記節(jié)點的遍歷成為 Dijkstra 算法的瓶頸,影響了算法的執(zhí)行效率。每天開車去上班,應該選擇哪條公路才能使自己到公司的費用最低、時間最少,這是最短路徑的問題;在網(wǎng)絡路由中,怎樣選擇最優(yōu)的路由路徑,這也是最短路徑問題;在交通旅游、城市規(guī)劃以及電網(wǎng)架設中怎樣使其耗費的資金最少,這還是最短路徑問題。 最短路徑算法是計算機科學與地理信息科學等領域研究的熱點,其算法有很多種,其中傳統(tǒng)的 Dijkstra 算法一般用于計算一個源節(jié)點到所有其他節(jié)點的最小代價路徑,并且能夠適應網(wǎng)絡拓 撲的變化,性能穩(wěn)定,因而可以在運輸路線規(guī)劃等領域都應用廣泛。但 Dijkstra 算法隨著節(jié)點數(shù) N 的增大,其計算效率和存儲效率越低。算法優(yōu)化思想:首先從與起點 s 直接相連的相鄰節(jié)點幾個 NBk 中選擇距離最小的節(jié)點 k 作為轉接點,同時將 k 劃歸為表示集合 S(初始時, S 為 {s})。重復上述過程,直到所有的節(jié)點都被標識過,即 │S│=N,算法結束。 ③ Dijkstra 算法的核心步驟,即從具有臨時標號的節(jié)點中搜索與起點距離最小的節(jié)點,如果具有臨時標號的節(jié)點無序地存放在數(shù)組中,則每次迭代都要把所有未獲得永久標號的都掃描一遍,所以將具有臨時標號的節(jié)點按與起點距離大小進行排序則可以節(jié)省每次掃描的時間,提高查詢速率。 6 第 2章 Dijkstra經(jīng)典算法研究 Dijkstra 算法的原理及應用 Dijkstra算法原理 Dijkstra算法是 1959年由 E. W. Dijkstra提出的圖論中求最短路徑的一個著名的算法,使用其可以求得圖中一點到其他各頂點的最短路徑。網(wǎng)絡中所有結點首先初始化為未標記結點,在搜索過程中和最短路徑中的結點相連通的結點為臨時標記結點,每次循環(huán)都是從臨時標記結點中搜索距源點路徑長度最短的結點作為永久標記結點,直至找到目標結點或者所有的結點都成為永久標記結點來結束算法。求解從起源點 s到點 j的最短路徑算法的基本過程如下: 1)初始化。 2)檢驗從所有已標記的點 k 到其直接連接的未標記的點 j的距離,并設置:wj=min{ wj, wk+dkj }式中, dkj 是從點 k到 j的直接連接距離。從所有未標記的結點中,選取 wj中最小的一個 i: wi=min wj,(所有未標記的點 j),點 i就被選為最短路徑中的一點,并設為已標記的。從已標記的點中找到直接連接到點 i的點 j*,作為前一點 , 設置: i=j*。如果所有點已標記,則算法完全推出,否則,記 k=i,轉到 2)再繼續(xù)。 例 :北京的小湯山醫(yī)院已經(jīng)投入使用了 ,在抗擊非典的戰(zhàn)役中發(fā)揮了重要的作用。各個醫(yī)院之間的路程和各醫(yī)院到小湯山之間的路程已知 (有可能沒有直通道路 ),由于非典病人的特殊性 ,在往小湯山轉運的過程中只能在收治病人的醫(yī)院中轉。 8 給定問題的算法分析 : 1)初始化:起點的最短路徑為 0,其他頂點的最短路徑為 ∞,所有頂點未標號。若無法找到,則說明所有頂點已標號,或者所有的未標號頂點都是無法到達的,轉 5)。更新方法如下: 如果 i的最短路徑邊 ij 的長度 j目前的最短路徑,則 j的最短路徑更新為 i的最短路徑邊 ij的長度,否則不變(也就是意味著通過 i走向 j比原來的方向走向 j能獲得更短的路徑)。 5)輸出結果。 如節(jié)點數(shù)為 n的圖,用 Dijkstra算法計算最短路徑總共需要迭代 n一 1次,每次迭代都新加一個節(jié)點到臨時節(jié)點集合中 ,由于第 i次迭代時不在臨時節(jié)點集合中的節(jié)醫(yī)院 1 已 標號 距離 0 醫(yī)院 2 已 標號 距離 ∞ 醫(yī)院 3 已 標號 距離 4 醫(yī)院 4 已 標號 距離 9 12 4 5 6 醫(yī)院 1 已 標號 距離 0 醫(yī)院 2 未標號 距離 12 醫(yī)院 3 已 標號 距離 4 醫(yī)院 4 以 標號 距離 9 12 4 5 6 11 點 數(shù)為 ni.即第 i次迭代需對 ni個節(jié)點進行處理,因此其所需的處理數(shù)為11( 1)() 2ninnni?????? ,對 n個節(jié)點網(wǎng)絡的時間復雜度是 O(n2)。 下一個例子說明 Dijkstra算法存在的缺陷: 例:圖 G(V, E, W),求從 v1出發(fā)到其 它各個頂點的最短路徑長度。當選出 v4后,需要對 U中的各個頂點的距離進行調(diào)整,在調(diào)整過程中利用到 wi =min{wi, w4+d4i}其中 i≠1, 4(1, 4已經(jīng)在 S中 )即需要對 wi和 w4+d4i進行比較,但我們在對 w3,w5,w7進行調(diào)整時可以發(fā)現(xiàn)由于 d43,d45, d47 ? E(G)即它們的權值為 ∞,所以調(diào)整時是沒有必要進行 比較的,在這里多進行了 3次比較。 以 Dijkstra 算法為基礎算法進行優(yōu)化的原因 Dijkstra算法與其他主流算法的比較 [5] 搜索速度比較 對 5張圖分別采用 Dijkstra算法、 A*算法、遺傳算法進行路徑規(guī)劃,他們各自花費的時間如表 。對于實際地圖而言,由于節(jié)點與道路的數(shù)量一般都很的大, Dijkstra算法在搜索速度方 13 面弱勢明顯。 對 5張地圖分別采用三種算法進行路徑規(guī)劃,三者各自搜索到最短路徑的情況如表 。 表 三種算法在搜索質(zhì)量方面的對比 節(jié)點數(shù) Dijkstra算法 A*算法 遺傳算法 16 15(100%) 12(80%) 15(100%) 32 31(100%) 25(81%) 29(94%) 43 42(100%) 32(76%) 38(90%) 62 61(100%) 40(66%) 56(92%) 78 77(100%) 45(58%) 71(92%) 由表 :當?shù)貓D節(jié)點個數(shù)和弧數(shù)量比較多時, Dijkstra算法是一種遍歷算法,每次能保證 100%搜索到最短路徑,遺傳算法搜索到最短路徑的成功率比Dijkstra算法低一些, A*算法最低,且這種差距在節(jié)點數(shù)和弧數(shù)量越大時更加明顯。在對現(xiàn)實問題中的交通圖初始化為網(wǎng)絡拓撲圖時,雖然終點已知,而源點 尚未確定,但依據(jù)常識離案發(fā)地段最近的派出所應為案發(fā)地段所在轄區(qū) 派出所,或其周邊派出所,也就是源點的選取范圍可以確定。 第二類優(yōu)化算法 ——改進算法的存儲結構 在實際工作中,還要建立起空間數(shù)據(jù)結構。對于網(wǎng)絡數(shù)據(jù)的存儲,傳統(tǒng)的是采用圖論中的鄰接矩陣方法,其存儲量為 N N(N為網(wǎng)絡中節(jié)點數(shù) )。若采用鄰接表的鏈式存儲結構,其存儲量為 E(E為節(jié)點列表中,同節(jié)點關聯(lián)的所有邊的數(shù)目 ),可節(jié)省大量的存儲空間,尤其是在表示與節(jié)點和邊相關信息較多的地理網(wǎng)絡時,更為有效。 NET框架提供的特殊類Hashtable。與數(shù)組類似,集合類可以把對象放入容器中,然后再取出.但集合的使用方法與數(shù)組不同,擁有用于插入和刪除項的專用方法。 15 本文對 Dijkstra 優(yōu)化算法的研究 本文采用第一類優(yōu)化算法減小搜索范圍的思路對 Dijkstra算法進行優(yōu)化。其時間復雜度為 O(N2);采用鄰接矩陣存儲網(wǎng)絡拓撲結構,需要 (NN)的存儲空間,隨著節(jié)點數(shù) N的增大,其計算效率和存儲效率越低。 優(yōu)化算法思路 Dijkstra算法基本方法:設 wj是從源點 s到節(jié)點 j的最短路徑長度; pj是從 s到 j的最短路徑中 j點的前一節(jié)點。 Step1:在 T中找到節(jié)點 i
點擊復制文檔內(nèi)容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1