首页> 中国专利> 改进迪杰斯特拉算法的两点间最短路径搜索方法

改进迪杰斯特拉算法的两点间最短路径搜索方法

摘要

本发明提供了一种改进迪杰斯特拉算法的两点间最短路径搜索方法,包括有以下步骤:1)引入了图论思想中的邻接矩阵,利用邻接矩阵对搜索过程进行辅助,即每次确定了某一顶点到起始顶点的最短距离后,都查找邻接矩阵中,该顶点所对应的行中元素为1的列;2)只对步骤1)元素为1的列所对应的顶点距离值进行计算分析,有效降低搜索过程的计算量。本发明基于邻接矩阵进行路径分析避免了不相连节点的无用计算过程,有效减小计算量,同时保证了搜索路径最短。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-27

    授权

    授权

  • 2017-11-17

    实质审查的生效 IPC(主分类):H04L12/721 申请日:20161124

    实质审查的生效

  • 2017-10-20

    公开

    公开

说明书

技术领域

本发明涉及电力系统网络、道路交通、通信网络等领域,具体地说,涉及一种改进迪杰斯特拉算法的两点间最短路径搜索方法。

背景技术

求取任意两点间的最短路径,是所有求解路径问题的基础,问题的目标是找到图中任意两个顶点之间的最短路径。它在电力系统网络、道路交通、通信网络寻优等领域具有广泛的用途。

对于两点间的最短路径计算问题,国际上采用较多的方法主要是Dijkstra算法(迪杰斯特拉算法),此算法可以找出网络中从一点到其余各点间的最短路径。Dijkstra算法是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。

1、Dijkstra算法思想:

按路径长度递增次序产生算法:

把顶点集合V分成两组:

(1)S:已求出的顶点的集合(初始时只含有源点V0)

(2)V-S=T:尚未确定的顶点集合

将T中顶点按递增的次序加入到S中,保证:

(1)从源点V0到S中其他各顶点的长度都不大于从V0到T中任何顶点的最短路径长度

(2)每个顶点对应一个距离值

S中顶点:从V0到此顶点的长度

T中顶点:从V0到此顶点的只包括S中顶点作中间顶点的最短路径长度

依据:可以证明V0到T中顶点Vk的,或是从V0到Vk的直接路径的权值;或是从V0经S中顶点到Vk的路径权值之和

2、算法步骤如下(以搜索V0到V1最短路径为例):

建立拓扑结构图G={V,E}

(1)初始时令S={V0},T=V-S={其余顶点},T中顶点对应的距离值

若存在<V0,Vi>,d(V0,Vi)为<V0,Vi>弧上的权值

若不存在<V0,Vi>,d(V0,Vi)为∞

(2)从T中选取一个与S中顶点有关联边且权值最小的顶点W,加入到S中

(3)对其余T中顶点的距离值进行修改:若加进W作中间顶点,从V0到Vi的距离值缩短,则修改此距离值

重复上述步骤2、3,直到S中包含所有顶点,即W=Vi为止。此时V0到V1距离即两个节点间最短距离。搜索过程,距离值变化时历经的节点及路径,即为两点间最短路径。

现有Dijkstra算法每次将顶点放入S中时候,搜索都需要对T中剩余的全部节点进行分析处理,计算量大。

发明内容

本发明旨在克服现有迪杰斯特拉算法的不足,提供一种改进迪杰斯特拉算法的两点间最短路径搜索方法,基于邻接矩阵进行路径分析避免了不相连节点的无用计算过程,有效减小计算量同时保证了搜索路径最短,既可以准确确定最短路径及距离,也能提高运算速度。

本发明所述的一种改进迪杰斯特拉算法的两点间最短路径搜索方法,包括如下步骤:

1)引入了图论思想中的邻接矩阵,矩阵中第i行第j列元素表示顶点i和顶点j的连接关系,当顶点i可由拓扑结构图某一条边直接到达顶点j时,矩阵第i行第j列的元素为1;否则元素为0,

利用邻接矩阵对搜索过程进行辅助,即每次确定了某一顶点V到起始顶点的最短距离后,都查找邻接矩阵中,顶点V所对应的行中元素为1的列;

2)只对步骤1)元素为1的列所对应的且最短路径未知的顶点的距离值进行计算分析,有效降低计算量。

优选地,所述图论思想中的邻接矩阵,即利用图论知识构造顶点之间的连接关系,定义图中顶点集合为V,边集合为E,建立邻接矩阵A,A可表示不同顶点之间的相邻关系;

对于有n个顶点的拓扑结构图来说,邻接矩阵A为一个n×n的方阵,行列均为顶点的排列,对应的第i行第j列元素表示顶点i和顶点j的连接关系,当顶点i可由某条边直接到达顶点j时,邻接矩阵A中对应位置的元素为1;否则邻接矩阵对应位置元素为0;即A中元素可表示为:

优选地,选取某顶点V0作为起始顶点,V1作为终止顶点,以求取V0到V1之间的最短路径,

步骤1:取网络中所有节点形成顶点集V,连接这些顶点的线路构成集合E,由顶点集V和线路集E构成拓扑结构图,记为G(V,E),并建立邻接矩阵A;

步骤2:建立集合S和U,初始时,S只包含源点(起始顶点),即S={V0},V0的距离为0,U包含除V0外的其他顶点,即:U={其余顶点},查找矩阵A中V0所在行,若A中第V0行Vi列数值为1,则U中顶点Vi到V0距离值有权值,权值即为相连线路的长度;若A中第V0行Vi列数值为0,则Vi到V0距离值权值为∞;

步骤3:从U中选取一个距离权值最小的顶点Vk,把Vk加入S中,选定的距离Lk就是V0到Vk的最短路径长度;

步骤4:查找矩阵A中Vk所在行中元素为1的顶点,如果顶点Vm在集合U中,则以Vk为新考虑的中间点,修改Vm距离;设Vk与Vm连接线路的长度为Lkm,若从源点V0到Vm的距离Lm,经过顶点Vk,Lm=Lk+Lkm比原来距离短,则修改顶点Vm的距离值为较短的值;

步骤5:重复步骤3和4直到所有顶点都包含在S中,此时V0到V1的距离数值即为两点间最短路径长度;所述距离数值产生过程历经的节点及线路,即为两点间最短路径。

现有迪杰斯特拉算法在计算两点间最短距离时,每从剩余顶点集合中选取顶点,并放入已知距离的顶点集合中时,都需要对剩下所有顶点的距离权值进行计算分析。本发明引入了图论思想中的邻接矩阵,就两点间最短路径的搜索过程进行了改进,结合图论矩阵思想,每次查找已知距离顶点所对应的行中元素为1的列,并只对这些列所对应的顶点距离值进行计算分析,有效降低计算量。

附图说明

通过结合下面附图对其实施例进行描述,本发明的上述特征和技术优点将会变得更加清楚和容易理解。

图1是本发明实施例所示的5节点有向拓扑结构图。

具体实施方式

下面将参考附图来描述本发明所述的实施例。本领域的普通技术人员可以认识到,在不偏离本发明的精神和范围的情况下,可以用各种不同的方式或其组合对所描述的实施例进行修正。因此,附图和描述在本质上是说明性的,而不是用于限制权利要求的保护范围。此外,在本说明书中,附图未按比例画出,并且相同的附图标记表示相同的部分。

下面结合图1来详细说明本实施例。以下通过本发明所提方法应用到图中所示网络的拓扑结构图中,说明该方法的应用。

图论是数学的一个分支,它以图为研究对象,研究顶点和边组成的图形的数学理论和方法。邻接矩阵可以清楚表示顶点之间的连接关系,矩阵中第i行第j列元素表示顶点i和顶点j的连接关系,当顶点i可由图中某一条边直接到达顶点j时,矩阵第i行第j列的元素为1;否则元素为0。

选取顶点0作为起始顶点,1作为终止顶点,以求取0到1之间的最短路径为例。

步骤1:取网络中所有节点形成顶点集V。连接这些顶点的线路构成集合E。由顶点集V和线路集E构成拓扑结构图,记为G(V,E),并建立邻接矩阵A:

步骤2:建立集合S和U。初始时,S只包含源点,即S={0},距离为0。U包含除0外的其他顶点,即:U={1,2,3,4},查找矩阵A中0所在行,顶点1,2,4对应列数值为1,则顶点1,2,4距离值有权值,分别为100,30,10。其余顶点距离值权值为∞。

步骤3:从U中选取一个距离权值最小的顶点4,把4加入S中,4到0的最短路径长度为10。

步骤4:查找矩阵A中顶点4所在行中元素为1的顶点,为顶点3。以4为新考虑的中间点,修改3距离;4与3连接线路的长度为50,从源点0到3的距离50+10=60比原来距离∞短,修改顶点3的距离值为60。

步骤5:从U中选取一个距离权值最小的顶点2,把2加入S中,2到0的最短路径长度为30。

步骤6:查找矩阵A中顶点2所在行中元素为1的列,对应为顶点1,3。以2为新考虑的中间点,判断是否修改距离:2与1连接线路的长度为60,从源点0到1的距离30+60=90比原来距离100短,修改顶点1的距离值为90;2与3连接线路的长度为60,从源点0到3的距离30+60=90比原来距离60长,顶点3距离值不作修改。

步骤7:从U中选取一个距离权值最小的顶点3,把3加入S中,3到0的最短路径长度为60。

步骤8:查找矩阵A中顶点3所在行中元素为1的顶点,为顶点1。以3为新考虑的中间点,判断是否修改距离:3与1连接线路的长度为10,从源点0到1的距离60+10=70比原来距离90短,修改顶点1的距离值为70。

步骤9:从U中选取一个距离权值最小的顶点1,把1加入S中,1到0的最短路径长度为70。搜索过程,该距离值产生过程中历经的节点为0-4-3-1,即为该两点间最短路径。

本发明引入了图论思想中的邻接矩阵,每次从剩余顶点集合中选取顶点,并放入已知距离的顶点集合中时,都查找邻接矩阵中,该顶点所对应的行中元素为1的列,并只对这些列所对应的顶点距离值进行计算分析,有效降低计算量。

本发明依据图论中的邻接矩阵原理,依靠邻接矩阵得到不同顶点的相邻关系。本发明仅对已知距离顶点的相邻顶点进行分析,基于邻接矩阵进行路径分析避免了不相连节点的无用计算过程,有效减小计算量同时保证了搜索路径最短,既可以准确确定最短路径及距离,也能提高运算速度。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号