算法导论中文课件讲-短路径.pptx

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

算法分析与设计

最短路径I(Ch24)

2算法分析与设计单源点最短路径(非负权值图)内容:最短路径Dijkstra算法(非负权值的有向图/无向图)权值为1的有向无环图单源点最短路径有向无环图DAG单源点最短路径

3图中的路径考虑有向图G=(V,E),其边-权值映射函数为w:E?R。路径p=v1?v2--…?vk的长度定义为:w(p)=∑i=1..k-1w(vi,vi+1)例如:

4最短路径u到v的最短路径为u到v的路径中权值最小者。其最短路径长度定义为:

5最优子结构定理.一条最短路径的子路径仍为最短路径。证明.剪切-粘贴:

6三角不等式定理.对于所有的u,v,x∈V,以下不等式成立δ(u,v)≤δ(u,x)+δ(x,v)证明.

7最短路径问题的良定义特性如果一个图G中包含权为负的回路,则该图中的某些最短路径可能不存在。

8单源点最短路径问题.给定某源结点s∈V,确定该源点到所有结点v∈V的最短路径δ(s,v)。如果图中所有边w(u,v)均是非负的,则所有最短路径长度一定存在。思路:贪心1.维护一个结点集合S,源点s到集合中的结点的最短路径长度已经确定2.不断将集合V-S中当前距离源点s最近的结点v添加到集合S中。3.更新源点到与结点v相邻的那些结点的路径估计。

9Dijkstra算法松弛过程Q为存储集合V-S的优先级队列隐含调用DECREASE-KEY

10Dijkstra算法示例一个不含负边的图:

11Dijkstra算法示例初始:

12Dijkstra算法示例

13考查所有从A出发的边:Dijkstra算法示例

14Dijkstra算法示例

15考查所有从C出发的边:Dijkstra算法示例

16Dijkstra算法示例

17考查所有从E出发的边:Dijkstra算法示例

18Dijkstra算法示例

19考查所有从B出发的边:Dijkstra算法示例

20Dijkstra算法示例

21SimpleReview贪心策略的要素背包问题0/1分数霍夫曼编码最短路径Dijkstra算法

22Dijkstra算法分析握手定理?Θ(|E|)次DECREASE-KEY调用计算时间=Θ(V.TEXTRACT-MIN+E.TDECREASE-KEY)注意:分析结果与Prim最小生成树算法相同。U的度数次|V|次

23Dijkstra算法分析计算时间=Θ(V.TEXTRACT-MIN+E.TDECREASE-KEY)就最坏情况来看,当图中的边数较少时(EV2/logV),首选堆实现。反之用数组实现。

24无权图如果所有边的权值均为1,即对于所有(u,v)∈E,均有w(u,v)=1。能否进一步改进Dijkstra算法?--将优先级队列替换为一个简单的FIFO队列。广度优先搜索分析:计算时间=O(V+E)

25广度优先搜索——示例Q:

260Q:a广度优先搜索——示例

2711Q:abd广度优先搜索——示例

28122Q:abdce广度优先搜索——示例

2922Q:abdce广度优先搜索——示例

302Q:abdce广度优先搜索——示例

3133Q:abdcegi广度优先搜索——示例

3234Q:abdcegif广度优先搜索——示例

3344Q:abdcegifh广度优先搜索——示例

344Q:abdcegifh广度优先搜索——示例

35Q:abdcegifh广

文档评论(0)

183****7931 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档