双向迪杰斯特拉

news/2024/9/22 8:50:09/

1. 问题定义

已知:图G=(V, E),其中V表示顶点集,E表示边集。st为图G中任意的两个顶点。

求:顶点st之间的最短路径。最短路径是指从st的所有路径中长度最小的那条路径。

2. 问题求解

2.1迪杰斯特拉

迪杰斯特拉按照离原点s的距离从近到远以此扩展的方式寻找最短路径。

2.2双向迪杰斯特拉

显然若st之间的最短路径长度为d,则迪杰斯特拉方法需要搜索一个半径为d的球。而双向迪杰斯特拉搜索以st为圆心的两个半径为d/2的球,当然d/2是理想状态,一般情况半径都会大于d/2

下面以图2-1(论文1)为例说明双向迪杰斯特拉的过程。注意图中结点12与结点3构成的“三角形”并不满足三角不等式,原因是他们只是表示一种关系,比如说亲密程度;当然即使是路网也是可能的,因为现实生活中两点之间的道路不一定是直线,即图中结点1到结点3之间边的权重6不是两点之间的欧拉距离(直线距离)。

2-1 查询图G=(V, E),查询结点1与结点9之间的最短路径

第一步:因为到结点1与结点9已知的均为0(相等),因此我们扩展两个分别以结点1和结点9为半径的圆,如图2-2所示。其中左边的(1, 0)表示从节点1(源点s)出发到结点1的距离为0,同理(3, 6)表示结点1出发到结点3之间的距离为6。显然有结点1与结点3之间的最短距离不是6,而是4。相似有(8, 2)表示结点8到结点9的距离为2

2-2

第二步:第一步求出的路条路径中结点8到结点9和结点6到结点9有最小距离2。因此,我们扩展这两个顶点,扩展结果如图2-3所示。

2-3

这时我们找到了路径两条路径,即1-3-6-91-4-6-9,且这两条路径的距离分别为1012。但我们注意到从结点1出发最小值为3,从结点9出发最小值也为3,无法判断是否存在一条长度为6的最短路径,因此需要继续扩展。

第三步:现有路径中距离最小的为1-29-5,我们首先扩展1-2这条路径。扩展结果如图2-4所示。图中共有三条路径,分别为:1-2-5-8-91-2-3-6-91-4-6-9,且他们的长度分别为:10812。此时求出的路径中最短距离为8,但距离结点1与结点9的最小距离分别为43。他们之和7仍小于8,因此需要继续扩展。

2-4

第四步:现有路径中距离最小的为3,因此选择5号结点进行扩展。扩展结果如图2-5所示。图2-5中共有三条路径,分别为:1-2-5-8-91-2-3-6-91-4-6-9,且他们的长度分别为:10812。所有路径中最小距离8。距离结点1与结点9的最小距离均为4,且之和等于8,因此最短路径求出。最短路径为1-2-3-6-9,距离为8

2-5

3.总结

双向迪杰斯特拉最求单源点最短路径,即求一点顶点到多个顶点之间的最短距离时不如利用动态规划求解。

 

 

参考:

1 T.A.j.Nicholson. Finding the shortest route between two points in a network. The Computer Journal,9:275-280

2 Yufei Tao, Cheng Sheng and Jian Pei. On k-skip Shortest Paths. Sigmod’11, June 12-16, 2011


http://www.ppmy.cn/news/735284.html

相关文章

卡特加特智能家居怎么样?国内5大品牌经销商横向对比2023最新版

如果你问现在的年轻人,“什么样的家最有格调?”“智能化、数字化”绝对榜上有名。 2022年末尾,智能家居市场似乎在酝酿新一轮的市场浪潮。 市场规模方面。据IDC公布的数据,2016-2021年我国智能家居市场规模由2608.5亿增至5800.5…

戴比尔斯(De Beers)创立于1888年,是一家专注于钻石珠宝经营的公司。“钻石恒久远,一颗永流传”(A Diamond is Forever)是戴比尔斯最经典的广告语。在戴比尔斯家族的炒作下,钻

(15分)戴比尔斯(De Beers)创立于1888年,是一家专注于钻石珠宝经营的公司。“钻石恒久远,一颗永流传”(A Diamond is Forever)是戴比尔斯最经典的广告语。在戴比尔斯家族的炒作下,钻石被定义为爱情的见证,价格一路蹿升、堪比黄金等“稀有金属”。diamonds.csv数据集包…

首家!阿里云完成数据可视化服务能力评估

2023 年 5 月 22 日,在中国信通院组织的首批数据可视化服务能力成熟度评估中,阿里云计算有限公司(以下简称“阿里云”)顺利完成了数据可视化服务能力成熟度评估的全部内容,成为首家完成此评估的企业。 标准介绍 中国…

对于float或者double的集合求解交集

对于一般的集合求解交集,我们直接使用std::set_intersection即可,但是float和double都有精度问题,如果直接求交集,会认为比如0.9999和1.0001是两个数,造成并没有真正取得交集,其实这个函数实现也很容易&…

如何部署LVS负载均衡集群(NAT模式)

目录 一、集群 负载均衡集群(Load Balance Cluster) 高可用集群(High Availability Cluster) 高性能运算集群(High Performance Computer Cluster) 二、负载均衡工作模式 VIP地址特性(虚拟…

Qemu退出快捷键和原理解析

1、退出快捷键 大家在用Qemu时经常会遇到要退出的情况。一般做法是使用ps或者lsof等命令找出qemu的进程ID,使用KILL命令杀死,该做法相当繁琐。实质上,Qemu已经设计了退出的快捷键:按下ctrla,之后按大写X。 2、代码分…

用科技智造新未来!在线开发平台强力助推数字化发展

在科技智造新时代,科技的力量是无处不见的。运用科技可以创造美好的生活,可以实现数字化发展,帮助企业实现流程化管理。在线开发平台将科技元素注入到平台中,将科技与办公需求相连接,创造高效率办公及流程化发展。 1…

最新支付牌照续展结果公布,本元支付等3家中止机构续展成功

中国人民银行于2023年7月5日公布了最新一批支付牌照续展情况,分为续展成功,续展中止,注销、中止机构恢复审查、续展成功等,具体如下: 续展结果 成功续展机构(9家) 北京度小满支付科技有限公司…