- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Johnsonsalgorithm.ppt
Johnson’s algorithm Johnson’s演算法可用於計算All pairs shortest path問題。 在邊的數量不多的時候,如|E|=O(|V|log|V|)時,能有比Warshall-Floyd演算法較佳的效能。 其輸入需求是利用Adjacency list表示的圖。 Graph reweighting Producing Nonnegative Weights Johnson’s algorithm Johnson’s algorithm Johnson’s 演算法利用reweighing來除去負邊,使得該圖可以套用Dijkstra演算法,來達到較高的效能。 Reweighing是將每個點v設定一個高度h(v),並且調整邊的weight function w(u,v)成為w’(u,v)=w(u,v)+h(u)-h(v)。 令δ‘(u,v)如此調整之後的最短距離,則原先的最短距離δ(u,v)=δ‘(u,v)-h(u)+h(v)。 Johnson’s algorithm Johnson(G) { compute G’, where V[G’]=V[G]?{s} and E[G’]=E[G]?{(s,v):v?V[G] if Bellman-Ford(G’,w,s)=False then print “? a neg-weight cycle” else for each vertex v ?V[G’] set h(v)=?(s,v) computed by Bellman-Ford algo. for each edge (u,v)?E[G’] w’(u,v)=w(u,v)+h(u)-h(v) for each vertex u ?V[G] run Dijkstra(G,w’,u) to compute ?’(u,v) for each v ?V[G] duv=?’(u,v)-h(u)+h(v) return D } Johnson’s algorithm範例 Johnson’s algorithm範例 Johnson’s algorithm範例 Johnson’s algorithm範例 Johnson’s algorithm範例 Johnson’s algorithm範例 Johnson’s algorithm範例 Johnson’s algorithm範例 Johnson’s algorithm範例 Johnson’s algorithm複雜度分析 執行一次Bellman-Ford。O(|V||E|)。 執行|V|次Dijkstra。 使用Fibonacci heap,總計O(|V|2log|V|+|V||E|) 。 使用Binary heap,總計O(|V||E|log|V|)。 當|E|足夠小,比Warshall-Floyd快。 * Theorem. Given a label h(v) for each v ? V, reweight each edge (u, v) ? E by ?(u, v) = w(u, v) + h(u) – h(v). Then, all paths between the same two vertices are reweighted by the same amount. Proof. Let p = v1 → v2 → ? → vk be a path in the grah Then, we have Find a vertex labeling h such that ?(u, v) ≥ 0 for all (u, v) ? E by using Bellman-Ford to solve the difference constraints h(v) – h(u) ≤ w(u, v), or determine that a negative-weight cycle exists. Time = O(VE). Run Dijkstra’s algorithm from each vertex using ?. Time = O(VE + V2 lg V). Reweight each shortest-path length ?(p) to produce the shortest-path lengths w(p) of the original graph. Time = O(V2). To
您可能关注的文档
- --幸福人寿银保专题.ppt
- 2007年四川都江堰市第四中学.doc
- 2009年三亚市实验中学初三第一学期中段考试卷.doc
- 2009年河南中考最新模拟试卷(4月)物理(二).doc
- 3706820102116.doc
- 4.3.2《空间两点间的距离公式》.ppt
- A.公正公平的科举制度B.家族宗法观念的维系.doc
- AirportExpress性能评测.ppt
- CGC-QP-V06-2016自愿性产品认证批准、保持、延长、暂停.doc
- Lesson42Notverymusical.doc
- 国开景区管理作业2试题及答案.pdf
- 国开景区管理作业1-4试题及答案.pdf
- 河南开放大学本科《地域文化(本)》作业练习1-3试题及答案.pdf
- 2024年大型游乐设施操作证考试题库及答案很全.pdf
- 2024年门座式起重机司机考试题库及答案.pdf
- 2022-2023学年河北省衡水市武强中学高二(下)期末数学试卷【答案版】.docx
- 2022-2023学年河北省保定市崇德实验中学高二(下)期末数学试卷【答案版】.docx
- 江西省2017年中小学教师招聘考试高中化学试卷及答案.docx
- 2024年河北省八年级中考生物真题(解析版).docx
- 2024年南阳市社会保险中心(唐河县企业养老保险分中心)(参公)一级科员招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
文档评论(0)