单源最短路径SSSP之松弛操作
单源最短路径SSSP算法中使用了 松弛(relaxation)操作,即更新两点的最短路径
形象的理解:
原来用一根橡皮筋连接a、b两点,现在有一点v到b的距离更短,则用v点替换橡皮筋的a点,使得v、b连接在一起。这样缓解橡皮筋紧绷的压力,使其变得松弛,即松弛操作。
我们规定每个节点都有一个 dist 值,dist[v] 值记录的是从源点可达的顶点v的最短距离,每个节点也都有一个p指针指向他的前驱节点。松弛操作就是去更新 dist 的值。
源点是节点S,以S点为起点计算到A、B点的最短路径。
节点B的 dist 值为8,表示从源点 S 到 B之前的最短距离是8,而节点A的 dist 值为3,表示从源点 S 到 A 之前的最短距离是3。而当我们发现AB这个边时,以A为父节点,从 A 到 B 的距离比较近 3+2=5,比8要小,所以我们去更新 B 的 dist 值,同时把 B 的前驱节点设置成 A。这个过程就是松弛操作。
松弛操作 伪代码:对边(u,v)进行的松弛操作
每个单源最短路径算法中都会调用INITIALIZE-SINGLE-SOURCE,然后重复对边进行松弛的过程。另外,松弛是改变最短路径和前趋的唯一方式。各个单源最短路径算法间区别在于对每条边进行松弛操作的次数,以及对边执行松弛操作的次序有所不同。在Dijkstra算法以及关于有向无回路图的最短路径算法中,对每条边执行一次松弛操作。在Bellman-Ford算法中,每条边要执行多次松弛操作。
单源最短路径SSSP之松弛操作相关推荐
- 你必须会的--Dijkstra算法--单源最短路径问题
文章目录 一.算法原理 1.基本原理 2.如何保存最短路径? 二.算法实战一 1.测试 2.结果 二.算法实战2 Input Output Sample Input Sample Output 一.算 ...
- 算法导论之单源最短路径
单源最短路径,在现实中是很多应用的,是图的经典应用,比如在地图中找出两个点之间的最短距离.最小运费等.单源最短路径的问题:已知图G=(V,E),找出给定源顶点s∈V到每个顶点v∈V的最短路径.单源最短 ...
- 单源最短路径bellman算法
介绍 在一个权重,有向图G=(V,E)中,连接所有顶点且拥有最小权重值的路径是此图的单源最短路径.单源最短路径可以解决许多最短路径问题的变种:如一个顶点到其它所有顶点最短距离,2个顶点对之间的最短距离 ...
- Dijkstra算法求解单源最短路径问题
文章目录 一 前言 二 Dijkstra 算法讲解 1. 贪心算法的证明 2. 算法实现说明 3. 初版Dijkstra算法代码 三 时间复杂度优化 1. 优化策略 2. 优化后的代码 四 结语 一 ...
- 算法设计与分析课程复习笔记11——单源最短路径
算法设计与分析课程复习笔记11--单源最短路径 单源最短路径 最短路径问题 输入:有权有向图G=(V,E) 路径p={ v 0 , v 1 , . . . , v k v_0, v_1, . . . ...
- 四种不同单源最短路径算法性能比较
四种不同单源最短路径算法性能比较 一.最短路径问题描述 单源最短路径描述:给定带权有向图G=(V,E),其中每条边的权是非负实数.另外,还给定V中的一个顶点,称之为源.现在要计算从源到其他各顶点的 ...
- 图算法:2、计算带有负权值的单源最短路径:Bellman-Ford算法
原文地址:http://www.wutianqi.com/?p=1912 相关文章: 1.Dijkstra算法: http://www.wutianqi.com/?p=1890 2.Floyd算法: ...
- 图论(单源最短路径)
一.基础 1.最短路径问题的形式: 单源最短路径:希望找到从源节点s到每个结点的最短路径: 单目的地最短路径:希望找到从每个结点到给定目的地的最短路径,只需将图的每条边方向翻转过来,就可以转化成单源最 ...
- 四种单源最短路径算法
一.最短路径问题描述 单源最短路径描述:给定带权有向图G=(V,E),其中每条边的权是非负实数.另外,还给定V中的一个顶点,称之为源.现在要计算从源到其他各顶点的最短路径的长度.这里的路径长度指的 ...
最新文章
- java jsp中控件绑定_jsp页面常用控件
- 美国将对所有墨西哥输美商品加征关税,为何日本股市反而大跌?
- $(document).ready(function(){});不执行
- GANs(生成对抗网络)初步
- 1月17日云栖精选夜读:阿里云云数据库开了一个未来大会,谈了谈2038年的数据库趋势...
- linux centos 安装mysql,linux/centos安装mysql
- 复旦大学入学计算机考试大纲,《计算机办公自动化》课程入学考试考核大纲和样题-复旦大学外国留学生...
- altium summer 9导入orcad dsn文件的方法
- 大学的第一堂必修课:军训
- SurfacePro6解决亮度自动调节问题
- 中国十大最具影响力黑客
- MATLAB算法实战应用案例精讲-【数模应用】小批量梯度下降(MBGD)(附Python和MATLAB代码)
- windows打开虚拟键盘命令
- 笔记-中项/高项学习期间的错题笔记1
- 浅谈综述论文:文献综述
- 系统跟服务器的区别,域名服务器与根服务器区别
- 对折纸张(蓝桥杯真题)
- 使用numpy实现李代数se(3)和SE(3)之间的指对数映射
- WebStorm license server
- 解读LM79测试项目及LM80的区别