算法合集之最短路算法及其应用.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文档。上传文档
查看更多

第1页,共30页,星期日,2025年,2月5日最短路问题是图论中的核心问题之一,它是许多更深层算法的基础。同时,该问题有着大量的生产实际的背景。不少问题从表面上看与最短路问题没有什么关系,却也可以归结为最短路问题。乘汽车旅行的人总希望找出到目的地尽可能短的行程。如果有一张地图并在地图上标出了每对十字路口之间的距离,如何找出这一最短行程?一个在生活中常见的例子是:第2页,共30页,星期日,2025年,2月5日一种可能的方法是枚举出所有路径,并计算出每条路径的长度,然后选择最短的一条。然而我们很容易看到,即使不考虑含回路的路径,依然存在数以百万计的行车路线!实际上,其中绝大多数路线我们是没必要考虑的。这时候,我们应该用一种系统的方法来解决问题,而不是通常人们所用的凑的方法和凭经验的方法。第3页,共30页,星期日,2025年,2月5日定义在最短路问题中,给出的是一有向加权图G=(V,E),在其上定义的加权函数W:E→R为从边到实型权值的映射。路径P=(v0,v1,……,vk)的权是指其组成边的所有权值之和:定义u到v间最短路径的权为:从结点u到结点v的最短路径定义为权的任何路径。第4页,共30页,星期日,2025年,2月5日在乘车旅行的例子中,我们可以把公路地图模型化为一个图:结点表示路口,边表示连接两个路口的公路,边权表示公路的长度。我们的目标是从起点出发找一条到达目的地的最短路径。边的权常被解释为一种度量方法,而不仅仅是距离。它们常常被用来表示时间、金钱、罚款、损失或任何其他沿路径线性积累的数量形式。第5页,共30页,星期日,2025年,2月5日重要性质定理1(最优子结构)给定有向加权图G=(V,E),设P=v1,v2,…,vk为从结点v1到结点vk的一条最短路径,对任意i,j有i=j=k,设Pij=vi,vi+1,…,vj为从vi到vj的P的子路径,则Pij是从vi到vj的一条最短路径。证明:我们把路径P分解为v1,v2,…,vi,vi+1,…vj,…vk。则w(P)=w(P1i)+w(Pij)+w(Pjk)。现在假设从vi到vj存在一路径P’ij,且w(P’ij)w(Pij),则将P中的路径Pij=(vi,vi+1,…vj)替换成P’ij,依然是从v1到vk的一条路径,且其权值w(P1i)+w(P’ij)+w(Pjk)小于w(P),这与前提P是从v1到vk的最短路径矛盾。(证毕)第6页,共30页,星期日,2025年,2月5日推论推论1.1给定有向加权图G=(V,E),源点为s,则对于所有边(u,v)E,有:证明:从源点s到结点v的最短路径P的权不大于从s到v的其它路径的权。特别地,路径P的权也不大于某特定路径的权,该特定路径为从s到u的最短路径加上边(u,v)。(证毕)第7页,共30页,星期日,2025年,2月5日松弛技术INITIALIZE-SINGLE-SOURCE(G,s)1.For每个结点vV[G]2.Dod[v]←3.[v]←NIL4.d[s]0对每个结点vV,我们设置一属性d[v]来描述从源s到v的最短路径的权的上界,称之为最短路径估计。我们通过下面的过程对最短路径估计和先辈初始化。RELAX(u,v,w)1.Ifd[v]d[u]+w(u,v)2.Thend[v]←d[u]+w(u,v)3.[v]←u一次松弛操作可以减小最短路径的估计值d[v]并更新v的先辈域[v]第8页,共30页,星期日,2025年,2月5日常用算法一、Dijkstra算法二、Bellman-Ford算法三、SPFA算法第9页,共30页,星期日,2025年,2月5日Dijkstra算法Dijkstra算法中设置了一结点集合S,从源结点s到集合S中结点的最终最短路径的权均已确定,即对所有结点vS,有d[v]=(s,v)。算法反复挑选出其最短路径估计为最小的结点uV-S,把u插入集合S中,并对离开u的所有边进行松弛。Dijkstra(G,w,s)1.INITIALIZE-SINGLE-SOURCE(G,S)2.S3.Q←V[G

文档评论(0)

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

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

1亿VIP精品文档

相关文档