




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七部分 最短路径(Shortest-paths)71 问题描述在一个带权的无向或者有向图中,如果从图中某顶点(称源点)到达另顶点(称为终点)的路径可能不止一条,如何找到一条路径使得沿此路径上各边上的权值总和达到最小。实际应用中,有把交通运输网络作为一个图,图中顶点表示城市,图中各边表示城市之间的交通运输线。边上的权值就根据具体需要,可以用各种代价表示,比如路程,运费,时间。同时,可以用有向图表示往返代价的不一致。计算机网络中,把网络结构看成带权图,路由选择的时候采用的固定路由算法其中有使用最短路径算法。此外,最短路径算法还应用于电子导航中,根据已知地理网络,得出合适的航线;应用于电力、通讯等各种管网、管线的布局设计,城市规划等等。由于应用的需要,最短路径算法问题成为计算机科学、运筹学、地理信息系统和交通诱导、导航系统等领域研究的一个热点。在最短路径问题中,给出的是一个带权有向图G(V, E),加权函数w:ER为从边到实型权值的映射。路径p=(v0,v1,v2,vk)的权是指组成边的所有权值之和:w(p)=w(vi-1,vi) i=1k;定义从u到v间的最短路径的权为:从顶点u到v的最短路径定义为权w(p)=&(u,v)的任何路径.不带权图的最短路径问题是一个特例,可将图视为没条边的权值均为1的带权图。两种最常见的最短路径问题:l 从某个源点到其余各顶点的最短路径l 每对顶点间的最短路径72 松弛技术Relaxation在后面介绍的几个算法中都用到了松弛技术,现在就来看看松弛技术。对于每个顶点vV,都设置一个属性dv,用来描述从源点s到v的最短路径上权值的上界,称为最短路径估计(shortest-path estimate)。我们用下面的(V)时间的过程来对最短路径估计和前趋进行初始化。INITIALIZE-SINGLE-SOURCE(G,s)1 for each vertex vVG2 do dv3 vNIL4 ds0经过初始化以后,对所有vV,v=NIL,对vV-s,有ds=0以及dv=。在松弛一条边(u,v)的过程中,要测试是否可以通过u,对迄今找到的v的最短路径进行改进;如果可以改进的话,则更新dv和v。一次松弛操作可以减小最短路径估计的值dv,并更新v的前趋域v。下面的伪代码对边(u,v)进行了一步松弛操作。RELAX(u, v, w)1 if(dvdu+w(u,v)2 then dvdu+w(u,v)3 vu在Bellman-Ford algorithm和Dijkstras algorithm都会调用到INITIALIZE-SINGLE-SOURCE(G,s),然后重复对边进行松弛的过程。另外松弛是改变最短路径和前趋的唯一方式,在两个算法之间的区别在于对每条边进行的松弛操作的次数,以及对边执行松弛操作的次序不同。在Dijkstras algorithm以及关于有向无回路图的最短路径算法中,对每条边执行情况一次松弛操作。而在Bellman-Ford算法中,对每条边要执行多次松弛操作。73 Bellman-Ford algorithm思想:运用松弛技术,对每一个结点vV,逐步减少从源s到v的最短路径的权的估计值dv,直至其达到实际最短路径的权(s,v)。算法返回布尔值TURE当且仅当图中没有源结点可达的负权回路。优点:解决更一般情况的单源最短路径问题。且边的权值可以为负,可检测出图中是否存在一个从源结点可达的负权回路,如果存在负权回路则无解;否则将产生最短路径及其权。BELLMAN-FORD(G,w,s)1 INITIALIZE-SINGLE-SOURCE(G,s)2 for i1 to |VG|-13 do for each edge(u,v)EG4 do RELAX(u,v,w)5 for each edge(u,v) EG6 do if dvdu+w(u,v)7 then return false;8 return true引理 7.3.1 设为带权有向图,其源点为s,权函数为w:ER,并且假定G中不包含从s点可达的负权回路。那么BELLMAN-FORD第24行循环的|V|-1次迭代后,对任何s可达的顶点v,有dv=(s,v)。推论:设G=(V,E)为带权有向图,源顶点为s,加权函数为w:ER,对每个顶点v(vV),从s到v存在一条通路,当且仅当对G运行BELLMAN-FORD(G,w,s)算法,算法终止时,有dvx和yp2-u。(若第一个点为u,则du=Q(s,u),已得证) 因为s到u的最短路径上y出现在y之前且所有边的权均为非负,我们有Q(s,y)=Q(s,u),因而dy = Q(s,y) = Q(s,u) =du,但因为在第5行选择u时结点u和y都属于V-S,所以有du=dy。因此du=dy。 最后得出结论du=Q(s,u),这与我们对u的假设矛盾。Dijkstra算法效率:若用线性数组实现优先队列:每次Extract_Min为O(v),存在V次,则为O(v2)。 for中有E次迭代。所以整个算法运行时间O(V2)。稀疏图用二叉堆比较合适。Extract_Min需要O(lgv),建立需要O(V)。更改权值用Decrease_key。总时间为O(V+E)lgV)。如果用斐波那契堆可以进一步提高效率至O(VlgV+E)。75 总结 根据各种教材介绍,还有几种经典的算法,所有顶点之间的最短路径(Floyed算法)、特定两个顶点之间的最短路径(A*算法)等。在上述介绍的算法,当减低问题规模时,为了降低算法的时间复杂度,应该想办法缩小搜索范围。而缩小搜索范围,都用到了一个思想尽可能的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《小学教师招聘》考前冲刺试卷(原创题)附答案详解
- 教师招聘之《小学教师招聘》题型+答案(考点题)带答案详解(轻巧夺冠)
- 2025内蒙古呼伦贝尔农垦集团有限公司校园招聘50人笔试备考附答案详解
- 金融电商平台服务创新创业项目商业计划书
- 教师招聘之《幼儿教师招聘》题库(得分题)打印及参考答案详解【满分必刷】
- 编程可穿戴设备编程创新创业项目商业计划书
- 教师招聘之《幼儿教师招聘》模拟题库讲解带答案详解(典型题)
- 教师招聘之《小学教师招聘》考试押题卷附答案详解(巩固)
- 教师招聘之《小学教师招聘》通关测试卷【能力提升】附答案详解
- 教师招聘之《小学教师招聘》模拟题库讲解附完整答案详解(历年真题)
- 简易呼吸器使用的评分标准
- 医务人员培训手卫生规范课件爱国卫生月
- 电脑耗材实施方案、供货方案、售后服务方案
- 水利工程专家协议书
- 肝硬化伴胃底静脉曲张的护理查房
- 2024年低压电工考试题库低压电工证考试内容
- 5 国行公祭为佑世界和平
- 食堂员工防鼠知识培训
- 工程伦理 课件全套 李正风 第1-9章 工程与伦理、如何理解伦理- 全球化视野下的工程伦理
- 和大人一起读
- 2023届高考统编版历史三轮冲刺复习:中国赋税制度的演变-选择题刷题练习题(含答案解析)
评论
0/150
提交评论