第7章(更新2012.01.11).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章(更新2012.01.11)

Chapter 7 加權圖 Chang Chi-Chung 2011.12.08 加權圖 (weighted graph) 若一個圖形,每個邊都有一個相關連的數值標籤 w(e) ,此數值標籤又稱為邊 e 的權重,則此圖形即為加權圖。 A D B C A D B C 5 12 7 4 6 8 7 最短路徑 假設 G 為一個加權圖。路徑 P 的長度(length) 或權重 (weight) 等於 P 中各邊權重的總和。 若 P 由邊 e0, e1, e2, … , ek-1 組成,則 P 的長度記為 w(P),定義為 在G 中,從頂點 v 到頂點 u 的距離,記為 d(v, u) ,是指 v 到 u 的最小長度路徑,稱為最短路徑 (shortest path)。 單一源點的最短路徑 單一源點的最短路徑 (single-source shortest path) 給定一個加權圖 G ,找出 某頂點 v 到其他頂點的最短路徑,稱為單一源點最短路徑問題。 解決此問題的演算法 dijkstra’s algorithm,主要採用 Greedy Method。 dijkstra’s algorithm(1) 給定一個加權圖 G 及源點為 v,求 頂點 v 到其他頂點的最短路徑。 令 D[u] 表示 v 到 u 的最短路徑,則 初始狀態 D[v] = 0 對每一個 u ≠ v,D[u] = +∞ 令集合 C = {} dijkstra’s algorithm(2) 當 C ≠ V(G) 時 找出一個 頂點 u ? C ,且使得 D[u] 為最小。 將 u 加入 C 中,並將所有與 u 相連且不在C中的頂點 z,計算其 D[z] if D[u] + w((u, z)) D[z] then D[z] ? D[u] + w((u, z)) s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6 Examples Examples: Dijkstra Algorthm 1 2 3 4 5 6 7 8 集合 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ C={} 0 9 ∞ ∞ ∞ 14 15 ∞ C={1} 0 9 33 ∞ ∞ 14 15 ∞ C={1, 2} 0 9 32 ∞ 44 14 15 ∞ C={1, 2, 6} 0 9 32 ∞ 35 14 15 59 C={1, 2, 4,7} 0 9 32 ∞ 34 14 15 51 C={1, 2, 3, 6, 7} 0 9 32 45 34 14 15 50 C={1, 2, 3, 5, 6, 7} 0 9 32 45 34 14 15 50 C={1, 2, 3, 4, 5, 6, 7} 1 2 3 4 5 6 7 8 ∞ 1 6 5 3 1 1 5 到點8的最短路徑: 由陣列找尋順序為 8?5?3?6?1,所以最短路徑為 1?6?3?5?8 時間複雜度分析(1) 用優先權佇列維護目前源點到頂點u 的距離,其中頂點u 不屬於集合 C。則 每次選取目前最小路徑點,須 O(log n) 每選取目前最小路徑頂點u 後,計算所有與 u 相連且不在C中的頂點 z 之 D[z],須 O(deg(u)log n) (因為須更新佇列中 D[z]值) 每個頂點都必須被考慮到,因此總執行時間為 Σ (1+deg(u)) log n) for v ∈ G,即O((n+m) log n) ? O(m log n) ? O( n2logn) 時間複雜度分析(2) 若採取未排序的序列來實作優先權佇列,則 每次選取目前最小路徑點,須 Ω (n) 每選取目前最小路徑頂點u 後,計算所有與 u 相連且不在C中的頂點 z 之 D[z],須 O(1) 每個頂點都必須被考慮到,因此總執行時間為 Σ (n +deg(u)) for v ∈ G,即 O( n2+m) 完全配對最短路徑 完全配對最短路徑 (all-pairs shortest paths) 給定一個加權圖 G中,求任兩點的最短距離。 最著名的解法是 Floyd-Warshell algorithm,使用動態規劃法求解。 Floyd-Warshell algorithm (1) 將加權圖G 以鄰接矩陣表示,則 若 (vi, … ,vk, … ,vj) 為 vi 到 vj 的最短路徑,則(vi,…,vk) 必為 vi 到 vk的最短路徑。換言之,所有最短路徑的子路徑均為最短路徑。 Floyd-Warshell algorithm (2) 定義矩陣 d(m)(i, j)為自 i?j 的最短路徑長度,其中路徑僅使用頂點集合 (v1, v2,

文档评论(0)

2105194781 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档