《算法导论》第24章 单源最短路径
来源:互联网 发布:美术网络培训有用吗 编辑:程序博客网 时间:2024/05/23 05:07
单元最短路径问题
单源最短路径问题,试图解决从一个原点到图中其他所有点的最短路径问题。此问题的变体有单终点最短路径问题,单终点最短路径问题和每对顶点间最短路径问题。可以相应理解为一对多、多对一、一对一和多对多的映射关系。
负权值边和负权回路
某些权值可以是负的,这些边称为是负权值边。负权回路指的是构成整个回路各边的权值和为负。
若不存在负权回路,只有负权值边,那么最短路径的定义依然正确;若存在负权回路,那么源点到回路上的任意一点都不存在最短路径,即此时最短路径无定义。
对于Dijkstra算法,要求所有的边都是正值。对于Bellman-Ford算法,则允许存在负权值边,但是不能够有负权回路。不过,就算存在,B-F算法也可以检测出来。
最短路径的表示
最短路径可以用最短路径树来表示,它类似于广度优先树。对每个点都会设置一个前驱(predecessor)。最短路径树并不是唯一的,对于一个顶点,存在两条权值相同的路径时,会相应产生不同的最短路径树。
松弛技术
这个专业名词乍看起来很难理解,其实很简单。就是从源点到任意一个顶点v的最短距离,即最短路径的权值,初始化为正无穷大,然后通过一次次的迭代,慢慢逼近。Bellman-Ford算法中,要对每条边执行多次松弛操作。Dijkstra算法中,要对每条边执行一次松弛操作。
伪代码如下:
RELAX(u, v, w) if d[v] > d[u] + w(u, v) then d[u] = d[u] + w(u, v) previous[v] = u
0 0
- 算法导论 - 第24章 单源最短路径
- 算法导论第24章 单源最短路径
- 《算法导论》第24章 单源最短路径
- 算法导论 | 第24章 单源最短路径
- 算法导论 第24章 单源最短路径
- 算法导论-第24章- 单源最短路径 - 24.3 Dijkstra 算法
- 《算法导论》笔记 第24章 24.1 单源最短路径
- 算法导论代码 第24章 单源最源路径
- 算法导论-第24章- 单源最短路径 - 24.1 Bellman-Ford 算法
- 单源最短路径(算法导论24章)
- 《算法导论》笔记 第24章 24.2 有向无回图中的单源最短路径
- 算法导论 单源最短路径
- 算法导论习题解-第24章单源最短路径
- 算法导论-第24章 Dijkstra算法
- 算法导论24(单源最短路径)
- 算法导论笔记:24单源最短路径
- 算法导论 第二十四章:单源最短路径
- 算法导论 第二十四章 单源最短路径
- SSH精彩文档链接
- android开发学习-3
- linux用date命令获取昨天,明天或多天前后的日期
- RISC和CISC比较
- LR 杂记--LoadRunner工作原理
- 《算法导论》第24章 单源最短路径
- 创建兼容android activity的OSGI bundle
- LR 杂记--LoadRunner关联的例子
- LR 杂记--Loadrunner日志设置与查看
- JSP基础知识JSP中插入JAVA代码
- 【不明觉厉,厚积薄发】ARM_linux(五)
- Nginx 日志文件切割
- vmware虚拟机上ubuntu 10.04不能连上外网解决办法
- java生产者和消费者问题