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

正文內(nèi)容

基于dijkstra的最短路徑搜索算法的優(yōu)化及應(yīng)用—畢業(yè)設(shè)計(jì)論文-文庫(kù)吧資料

2024-11-18 16:03本頁(yè)面
  

【正文】 B1 (v1,v2,v3,v5), NB4 – S = (v2,v3,v5), ∪ NB4S = (v2,v3,v5); 19 Step2: j∈ NB4 – S = (v2,v3,v5) w2 = min{w2, w4 + d42}= min{2, 4}= 2, w3 = min{w3, w4 + d43}= min{5,5} = 5 2 = w2, w5 = min{w5, w4 + d45} = {∞, 3} = 3 2 = w2 ∵ minwj =w2 = 2, ∴ S = (v1,v2,v4), NB2 = (v1,v3,v4), NB2S = (v3), ∪ NB2S = (v3,v5); Step3: j∈∪ NB2S = (v3,v5) w3 = min{w3, w2 + d23} = min{5,5} = 5, w5 = 3 5 = w3, ∵ minwj = w5 = 3, ∴ S = (v1,v2,v4,v5), NB5 = (v3,v4,v6,v7), NB5S = (v3,v6,v7), ∪ NB5S = (v3,v6,v7); Step4: j∈ NB4 – S = (v3,v6,v7) w3 = min{w3, w5 + d53} = min{5,4} = 4, w6 = min{w6, w5 + d56} = {∞, 4} = 4 = w3, w7 = min{w7, w5 + d57} = {∞, 5} = 5 4 = w3 = w6, ∵ minwj = w3 = w6 = 4,任選其一,若為 w3, ∴ S = (v1,v2,v3,v4,v5), NB3 = (v1,v2,v4,v5,v6), NB3S = (v6), ∪ NB3S = (v6,v7); Step5: j∈∪ NB3S = (v6,v7) w6 = 4 w7 = 5 4 = w6, ∵ minwj = w6 = 4, ∴ S = (v1,v2,v3,v4,v5,v6), NB6 = (v3,v5,v7), NB6S = (v7), ∪ NB6S = (v7); Step6: j∈ NB6 – S = (v7) w7 = min{w7, w6 + d67} = {5, 6} = 5。 至此,所有節(jié)點(diǎn)已標(biāo)識(shí),則算法終止。 j∈ NBs S Step3:選定 NBi S(i∈ S)中的 wj最小值,并將其劃歸到 s中: wk = min wj; S = S ∪ {k};若 │s│= n;所有節(jié)點(diǎn)已標(biāo)識(shí),則算法終止, j∈∪ NBs–S i∈ S 否則,轉(zhuǎn)到 Step2. 圖 G7,對(duì) G7分別用 Dijkstra算法和優(yōu)化了的 Dijkstra算法進(jìn)行求解,則可得從 v1到其余各節(jié)點(diǎn)的最短路徑。 Step1:若 dsk = min dsj ,則 S = S ∪ { k}。 設(shè) NBi為節(jié)點(diǎn) i的鄰居集合; S為標(biāo)識(shí)集合; wj是從源點(diǎn) s到節(jié)點(diǎn) j的最短路徑長(zhǎng)度; pj是從 s到 j的最短路徑中 j點(diǎn)的前一節(jié)點(diǎn); dij是節(jié)點(diǎn) i到節(jié)點(diǎn) j的距離。然后對(duì) k鄰居集合與標(biāo)識(shí)集合的差集 (NBk S)中節(jié)點(diǎn)的值進(jìn)行更新,從標(biāo)識(shí)集合 s中所有節(jié)點(diǎn)的鄰居集合 的并集與標(biāo)識(shí)集合的差集 (∪ NBs S, i∈ S)中選擇一個(gè) wk值最小的節(jié)點(diǎn)作為下一個(gè)轉(zhuǎn)接點(diǎn),并劃歸到標(biāo)識(shí)集合 S中。 通過分析傳統(tǒng) Dijkstra算法的基本思路,傳統(tǒng) Dijkstra算法存在如下兩點(diǎn)不足: 16 (1)當(dāng)從未標(biāo)記節(jié)點(diǎn)集合 T中選定一個(gè)節(jié)點(diǎn) k作為轉(zhuǎn)接點(diǎn)后時(shí),需掃描未標(biāo)記節(jié)點(diǎn)集合 T中的節(jié)點(diǎn) j并更新其 wj值,而未標(biāo)記節(jié)點(diǎn)集合 T中往往包含 大量與轉(zhuǎn)接節(jié)點(diǎn) k 不直接相連的節(jié)點(diǎn) i(即 dki = ∞); (2)在未標(biāo)記節(jié)點(diǎn)集合 T中選擇一個(gè) w值最小的節(jié)點(diǎn)作為下一個(gè)轉(zhuǎn)接節(jié)點(diǎn),然而下一個(gè)轉(zhuǎn)接節(jié)點(diǎn)往往是與標(biāo)記節(jié)點(diǎn)集合 S中的節(jié)點(diǎn)直接相連的。 (可從與 s直接相連的 j中考慮 ) 若 dsi = min dsj j與 s直接相連,則將 i劃歸到 S中,即 S ={s, i}, T = T{i}; j∈ T pi =s。 S是標(biāo)識(shí)集合; T是未標(biāo)識(shí)集合; M是節(jié)點(diǎn)集合. dij提節(jié)點(diǎn) i到節(jié)點(diǎn) j的距離 (i與 j直接相連,否則 dij = ∞).算法步驟如下: Step0: S = {s}; T = MS; wj = dij(j∈ T, s與 j直接相連 )或 wj = ∞(j ∈ T, s與 j不直接相連 )。針對(duì)此問題,提出了 Dijkstra算法的改進(jìn),本文在對(duì)傳統(tǒng) Dijkstra算法分析的基礎(chǔ)上,對(duì)其進(jìn)行了優(yōu)化,優(yōu)化算法只對(duì)最短路徑上節(jié)點(diǎn)的鄰居做處理,而不涉及到其他節(jié)點(diǎn)。 優(yōu)化算法的目標(biāo) Dijkstra算法用來求解圖上從任 一節(jié)點(diǎn) (源點(diǎn) )到其余各節(jié)點(diǎn)的最短路徑。使用 Hashtable最大的優(yōu)點(diǎn)就是大大降低數(shù)據(jù)存儲(chǔ)和查找的時(shí)間花費(fèi),幾乎可看成是常數(shù)時(shí)間。 .NET框架包含特殊類,比如通常所說的集合類用于存儲(chǔ)對(duì)象。但鄰接表卻難 以判斷兩節(jié)點(diǎn)之間的關(guān)系,因此本文提出利用。通常的地理網(wǎng)絡(luò),盡管節(jié)點(diǎn)很多,但與節(jié)點(diǎn)相關(guān)聯(lián)的節(jié)點(diǎn)數(shù)目并不多,一般都為稀疏圖,將會(huì)浪費(fèi)大量的空間。網(wǎng)絡(luò)數(shù)據(jù)結(jié)構(gòu)使用的是 ―邊和節(jié)點(diǎn) ‖的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)是建立在圖論的基礎(chǔ)上,節(jié)點(diǎn)可用來定義邊的連接關(guān)系。利用 MapObjects2組件提供 的 (expression)記錄集篩選方法,根據(jù)案發(fā)地段 (終點(diǎn) )的不同,動(dòng)態(tài)選取案發(fā)地段所在轄區(qū)及相鄰轄區(qū)的道路圖層及派出所圖層數(shù)據(jù)進(jìn)行最短路徑查詢,從而有效地減少了拓?fù)鋱D中節(jié)點(diǎn)總數(shù) n的值。 14 第 3章 Dijkstra優(yōu)化算法研究 多種 Dijkstra 優(yōu)化算法的研究 [6] 第一類優(yōu)化算法 ——減小算法中成功搜索的搜索范圍 減小算法中成功搜索的搜索范圍以盡 快到達(dá)目標(biāo)節(jié)點(diǎn)。表中括號(hào)外數(shù)據(jù)為各算法實(shí)際得到最短路徑數(shù),括號(hào)內(nèi)數(shù)據(jù)則為各算法實(shí)際得到路徑數(shù)和應(yīng)該規(guī)劃出的最短路徑數(shù) n1之比。 搜索成功率比較 對(duì)于具有 n個(gè)節(jié)點(diǎn)的地圖,其待規(guī)劃節(jié)點(diǎn)的個(gè)數(shù)為 n1(除起點(diǎn)節(jié)點(diǎn)外,其他均可作為待規(guī)劃節(jié)點(diǎn)),由于每個(gè)待規(guī)劃節(jié)點(diǎn)對(duì)應(yīng)于一條最短路徑,所以對(duì)每張具有n個(gè)節(jié)點(diǎn)的 地圖而言,應(yīng)該規(guī)劃出 n1條最短路徑。 表 三種算法在搜索速度上的對(duì)比 節(jié)點(diǎn)數(shù) 搜索速度 Dijkstra算法 A*算法 遺傳算法 16 1 1 2 32 4 2 4 43 7 3 6 62 15 5 9 78 25 7 12 由表 :當(dāng)?shù)貓D節(jié)點(diǎn)個(gè)數(shù)和弧的條數(shù)比較少時(shí),三種算法所花費(fèi)的時(shí)間差不多,當(dāng)節(jié)點(diǎn)個(gè)數(shù)和弧的條數(shù)比較多時(shí), A*算法最快,遺傳算法其次,Dijkstra算法最慢,而且這種差距將隨節(jié)點(diǎn)和弧數(shù)量的增加而變得更加明顯。后面的各步也都出現(xiàn)類似的情況 (后略 ),尤其是當(dāng)圖的邊數(shù)相對(duì)較少時(shí)更為明顯。 圖 權(quán)圖 G 解: wi表示由源 v1到點(diǎn) vi的最短距離; S表示已求出最短路徑的頂點(diǎn)集合,其初始值為 S{v1}; k表示剛選出的頂點(diǎn)的編號(hào);選出 vk后修改 U中各頂點(diǎn)的距離的方法為:wi=min{wi, dki}; 下表通過 Dijkstra算法來求解圖 : v1 初始 第一步 第二步 第三步 … v2 15 9 v3 ∞ ∞ v4 4 v5 ∞ ∞ v6 ∞ 10 v7 ∞ ∞ S={v1} v4 v2 k 12 w S v1,v4 v1,v2,v4 在上表中選出頂點(diǎn) v4加入到 S時(shí)一共進(jìn)行了 6次比較,其中四次是與 ∞作比較,也就是說這四次完全沒有必要進(jìn)行比較。在實(shí)際應(yīng)用當(dāng)中,使用 Dijkstra算法查找最短路徑時(shí)耗費(fèi)大量的時(shí)間進(jìn)行數(shù)據(jù)的比較,本文對(duì) Dijkstra算法進(jìn)行分析,通過改變算法實(shí)現(xiàn)減少不必要節(jié)點(diǎn)計(jì)算的時(shí)間,提高算法的效率達(dá)到對(duì)其進(jìn)行優(yōu)化。 例 : 找所有未標(biāo)號(hào)中距離最短的頂點(diǎn)為 醫(yī)院 1,將 1做標(biāo)號(hào) ,更新與 1相鄰的 2和 3的距離 醫(yī)院 1 未標(biāo)號(hào) 距離 0 醫(yī)院 2 未標(biāo)號(hào) 距離 ∞ 醫(yī)院 3 未標(biāo)號(hào) 距離 ∞ 醫(yī)院 4 未標(biāo)號(hào) 距離 ∞ 12 4 5 6 9 找所有未標(biāo)號(hào)中距離最短的頂點(diǎn)為 醫(yī)院 3,將 3做標(biāo)號(hào) ,更新與 1相鄰的 4的距離 找所有未標(biāo)號(hào)中距離最短的頂點(diǎn)為 醫(yī)院 4,將 4做標(biāo)號(hào) ,更新與 1相鄰的 2的距離 (因?yàn)榫嚯x 4+邊 2,4 的長(zhǎng)度 距離 2,所以不更新 ) 醫(yī)院 1 已 標(biāo)號(hào) 距離 0 醫(yī)院 2 未標(biāo)號(hào) 距離 ∞ 醫(yī)院 3 已 標(biāo)號(hào) 距離 4 醫(yī)院 4 未標(biāo)號(hào) 距離 9 12 4 5 6 醫(yī)院 1 已 標(biāo)號(hào) 距離 0 醫(yī)院 2 未標(biāo)號(hào) 距離 ∞ 醫(yī)院 3 未標(biāo)號(hào) 距離 4 醫(yī)院 4 未標(biāo)號(hào) 距離 ∞ 12 4 5 6 10 找所 有未標(biāo)號(hào)中距離最短的頂點(diǎn)為 醫(yī)院 2,將 2做標(biāo)號(hào) ,已沒有與 2相鄰的未標(biāo)號(hào)頂點(diǎn)需要更新了 再次找所有未標(biāo)號(hào)中距離最短的頂點(diǎn)已找不到 ,得結(jié)果 d(2)=12,d(3)=4,d(4)=9. Dijkstra算法的優(yōu)缺點(diǎn) Dijkstra 算法能夠保證 100%找到最優(yōu)解,但其搜索速度較慢,搜索效率非常低,時(shí)間花費(fèi)較多,一般只能用于離線的路徑規(guī)劃問題。 4)轉(zhuǎn) 2。 3)更改所有與 i直接相鄰的未標(biāo)號(hào)頂點(diǎn)的最短路徑。 2)在所有未標(biāo)號(hào)的頂點(diǎn)中找出最短路徑最短的頂點(diǎn) i?,F(xiàn)在 ,黨和政府交給了你一個(gè)光榮而艱巨的任務(wù) ,計(jì)算出小湯山到市內(nèi)各收治醫(yī)院的最短路徑 ,為抗非事業(yè)做出你應(yīng)有的 貢獻(xiàn)。現(xiàn)在 ,在北京市內(nèi)有若干家收治非典病人的醫(yī)院。 7 Dijkstra算法最短路徑應(yīng)用演示 圖 Dijkstra算法最短路徑應(yīng)用 演示圖 表 從 0節(jié)點(diǎn)到 4節(jié)點(diǎn)的最短路徑 循環(huán) 紅點(diǎn)集 S K D{0} D{1} D{2} D{3} D{4} P{0} P{1} P{2} P{3} P{4} 初始化 {0} 0 10 ∞ 30 100 1 0 1 0 0 1 {0,1} 1 0 10 60 30 100 1 0 1 0 0 2 {0,1,3} 3 0 10 50 30 90 1 0 3 0 3 3 {0,1,3,2} 2 0 10 50 30 60 1 0 3 0 2 4 {0,1,3,2,4} 4 0 10 50 30 60 1 0 3 0 2 Dijkstra算法應(yīng)用 給定簡(jiǎn)單無向圖 G,指定一頂點(diǎn) Vi為起點(diǎn) ,對(duì)于任意 Vj∈ G 且 i≠j,求 Vi到 Vj 的最短路徑的長(zhǎng)度。 5)標(biāo)記點(diǎn) i。 4)找到點(diǎn) i的前一點(diǎn)。 3)選取下一個(gè)點(diǎn)。起源點(diǎn)設(shè)置為: ① ws=0, ps為空; ② 所有其他點(diǎn) : wi=∞, pi=?; ③ 標(biāo)記起源點(diǎn) s,記 k=s,其他所有點(diǎn)設(shè)為未標(biāo)記的。 假設(shè)每個(gè)點(diǎn)都有一對(duì)標(biāo)號(hào) (wj, pj),其中 wj 是從起源點(diǎn) s到點(diǎn) j的最短路徑的長(zhǎng)度 (從頂點(diǎn)到其本身的最短路徑是零路 (沒有弧的路 ),其長(zhǎng)度等于零 ); pj 則是從 s到 j的最短路徑中 j點(diǎn)的前一點(diǎn)。原始的 Dijkstra算法將網(wǎng)絡(luò)結(jié)點(diǎn)分成 3部分:未標(biāo)記結(jié)點(diǎn)、臨時(shí)標(biāo)記結(jié)點(diǎn)和永久標(biāo)記結(jié)點(diǎn)。 ④ 改進(jìn)數(shù)據(jù)的組織結(jié)構(gòu),用類或結(jié)構(gòu)體來組織節(jié)點(diǎn)、線路并建立拓?fù)潢P(guān)系可以提高數(shù)據(jù)搜索效率。 ② 由于現(xiàn)實(shí)中只需要查詢起點(diǎn)和終點(diǎn)間的最短路徑,而不需要求出起點(diǎn)到多有節(jié)點(diǎn)的最短路徑,所以根據(jù)需要只要找到起 點(diǎn)到終點(diǎn)的最短距離即可退出循環(huán)處理過程,縮短查詢時(shí)間。然后對(duì) k 另?yè)?jù)集合與表示集合的差集,( NBk S)中節(jié)點(diǎn) j 的 wj值進(jìn)行更新,從標(biāo)識(shí)集合 S 中所有節(jié)點(diǎn)的鄰居集合的并集與標(biāo)識(shí)集合 S 的差集( ∪ NBi S,i∈ S)中選擇一個(gè) wk值最小的節(jié)點(diǎn)作為下一個(gè)轉(zhuǎn)接點(diǎn),并劃歸為到標(biāo)識(shí)集合 S 中。所以針對(duì)地理信息中的海量信息需要尋求算法優(yōu)化,對(duì) Dijkstra 算法優(yōu)化的思 5 路主要有: ① 縮小節(jié)點(diǎn)的搜索范圍,只對(duì)最短路徑上節(jié)點(diǎn)的鄰居作處理,而不涉及相離節(jié)點(diǎn)的其他節(jié)點(diǎn)。 本文研究目標(biāo)和內(nèi)容 Dijkstra 算法的空間復(fù)雜度 O(N2),采用鄰接矩陣存儲(chǔ)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),需要( NN)的存儲(chǔ)空間,查詢速率較快,在數(shù)秒內(nèi)即可完成查詢,所用時(shí)間在用戶的容忍范圍內(nèi)。由此可見對(duì)最短路徑問題的研究是非常有意義的。 研究的意義 隨著社會(huì)的不斷進(jìn)步,最短路徑算法在人們的日常生活顯得越來越重要。網(wǎng)絡(luò)中所有節(jié)點(diǎn)首先初始化為未標(biāo)記節(jié)點(diǎn),在搜索過程中和最短路徑節(jié)點(diǎn)相連通的節(jié)點(diǎn)為臨時(shí)標(biāo)記節(jié)點(diǎn),每一次循環(huán)都是從臨時(shí)標(biāo)記節(jié)點(diǎn)中搜索距離原點(diǎn)路徑長(zhǎng)度最短的節(jié)點(diǎn)作為永久標(biāo)記節(jié)點(diǎn),直至找到目標(biāo)節(jié)點(diǎn)或者所有節(jié)點(diǎn)都成為永久標(biāo)記節(jié)點(diǎn)才結(jié)束算法。 Y 問題的初始(侯選)解
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1