CN107276896B - 改进迪杰斯特拉算法的两点间最短路径搜索方法 - Google Patents
改进迪杰斯特拉算法的两点间最短路径搜索方法 Download PDFInfo
- Publication number
- CN107276896B CN107276896B CN201611051320.5A CN201611051320A CN107276896B CN 107276896 B CN107276896 B CN 107276896B CN 201611051320 A CN201611051320 A CN 201611051320A CN 107276896 B CN107276896 B CN 107276896B
- Authority
- CN
- China
- Prior art keywords
- vertex
- distance
- matrix
- vertexes
- shortest path
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
Abstract
本发明提供了一种改进迪杰斯特拉算法的两点间最短路径搜索方法,包括有以下步骤:1)引入了图论思想中的邻接矩阵,利用邻接矩阵对搜索过程进行辅助,即每次确定了某一顶点到起始顶点的最短距离后,都查找邻接矩阵中,该顶点所对应的行中元素为1的列;2)只对步骤1)元素为1的列所对应的顶点距离值进行计算分析,有效降低搜索过程的计算量。本发明基于邻接矩阵进行路径分析避免了不相连节点的无用计算过程,有效减小计算量,同时保证了搜索路径最短。
Description
技术领域
本发明涉及电力系统网络、道路交通、通信网络等领域,具体地说,涉及一种改进迪杰斯特拉算法的两点间最短路径搜索方法。
背景技术
求取任意两点间的最短路径,是所有求解路径问题的基础,问题的目标是找到图中任意两个顶点之间的最短路径。它在电力系统网络、道路交通、通信网络寻优等领域具有广泛的用途。
对于两点间的最短路径计算问题,国际上采用较多的方法主要是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的列,并只对这些列所对应的顶点距离值进行计算分析,有效降低计算量。
本发明依据图论中的邻接矩阵原理,依靠邻接矩阵得到不同顶点的相邻关系。本发明仅对已知距离顶点的相邻顶点进行分析,基于邻接矩阵进行路径分析避免了不相连节点的无用计算过程,有效减小计算量同时保证了搜索路径最短,既可以准确确定最短路径及距离,也能提高运算速度。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种改进迪杰斯特拉算法的两点间最短路径搜索方法,其特征在于:
包括有以下步骤:
1)引入了图论思想中的邻接矩阵,矩阵中第i行第j列元素表示顶点i和顶点j的连接关系,当顶点i可由拓扑结构图某一条边直接到达顶点j时,矩阵第i行第j列的元素为1;否则元素为0,
利用邻接矩阵对搜索过程进行辅助,即每次确定了某一顶点V到起始顶点的最短距离后,都查找邻接矩阵中,顶点V所对应的行中元素为1的列;
2)只对步骤1)元素为1的列所对应的且最短路径未知的顶点的距离值进行计算分析,有效降低计算量;
其中,确定某一顶点V到起始顶点的最短距离的过程包括:
选取某顶点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的距离数值即为两点间最短路径长度;所述距离数值产生过程历经的节点及线路,即为两点间最短路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611051320.5A CN107276896B (zh) | 2016-11-24 | 2016-11-24 | 改进迪杰斯特拉算法的两点间最短路径搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611051320.5A CN107276896B (zh) | 2016-11-24 | 2016-11-24 | 改进迪杰斯特拉算法的两点间最短路径搜索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107276896A CN107276896A (zh) | 2017-10-20 |
CN107276896B true CN107276896B (zh) | 2020-03-27 |
Family
ID=60052782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611051320.5A Active CN107276896B (zh) | 2016-11-24 | 2016-11-24 | 改进迪杰斯特拉算法的两点间最短路径搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107276896B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110319845B (zh) * | 2018-03-30 | 2024-01-09 | 日本电气株式会社 | 用于确定两点之间的可达路径的方法、装置和系统 |
CN109635037B (zh) * | 2018-11-19 | 2022-12-09 | 中山大学 | 一种关系型分布式数据库的分片存储方法及装置 |
CN110604616B (zh) * | 2019-09-10 | 2020-12-11 | 中国科学院深圳先进技术研究院 | 一种基于图搜索的介入手术路径规划方法、系统及电子设备 |
CN111968255A (zh) * | 2020-06-30 | 2020-11-20 | 北京小石科技有限公司 | 一种高速公路收费路径的拟合方法 |
CN114217615A (zh) * | 2021-12-13 | 2022-03-22 | 哈尔滨工业大学芜湖机器人产业技术研究院 | 基于邻接表的路径规划方法 |
CN116629470B (zh) * | 2023-05-04 | 2024-02-13 | 青岛蚂蚁机器人有限责任公司 | 基于迪杰斯特拉算法的时间窗防冲突多路径搜索方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7020394B2 (en) * | 2001-08-17 | 2006-03-28 | Quantum Bridge Communications, Inc. | Method and apparatus for path selection and wavelength assignment in an optical network |
CN102238687A (zh) * | 2011-08-05 | 2011-11-09 | 电子科技大学 | 基于地理位置的伪三维无线传感器网络路由方法 |
CN105354685A (zh) * | 2015-12-03 | 2016-02-24 | 南华大学 | 基于图的距离分类和主成分分析的评价指标体系构建方法 |
CN105590145A (zh) * | 2016-01-11 | 2016-05-18 | 北京交通大学 | 变电站内的一次设备之间的最短连通距离的识别方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100653036B1 (ko) * | 2000-12-11 | 2006-11-30 | 주식회사 케이티 | 회전 금지, 유-턴, 피-턴을 고려한 다익스트라 알고리즘또는 플로이드-워셜 알고리즘을 이용한 최단경로 산출방법 |
-
2016
- 2016-11-24 CN CN201611051320.5A patent/CN107276896B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7020394B2 (en) * | 2001-08-17 | 2006-03-28 | Quantum Bridge Communications, Inc. | Method and apparatus for path selection and wavelength assignment in an optical network |
CN102238687A (zh) * | 2011-08-05 | 2011-11-09 | 电子科技大学 | 基于地理位置的伪三维无线传感器网络路由方法 |
CN105354685A (zh) * | 2015-12-03 | 2016-02-24 | 南华大学 | 基于图的距离分类和主成分分析的评价指标体系构建方法 |
CN105590145A (zh) * | 2016-01-11 | 2016-05-18 | 北京交通大学 | 变电站内的一次设备之间的最短连通距离的识别方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107276896A (zh) | 2017-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107276896B (zh) | 改进迪杰斯特拉算法的两点间最短路径搜索方法 | |
US7072304B2 (en) | Network path selection based on bandwidth | |
JP7156385B2 (ja) | 2つのノード間の到達可能なパスを決定するための方法、装置及びシステム | |
JP5919950B2 (ja) | 経路探索方法、経路探索装置、及びプログラム | |
CN103837154A (zh) | 路径规划的方法及系统 | |
CN112683278B (zh) | 一种基于改进a*算法和贝塞尔曲线的全局路径规划方法 | |
CN110967028A (zh) | 导航地图构建方法、装置、机器人及存储介质 | |
RU2019140930A (ru) | Способ обработки данных для получения в реальном времени кастомизированной информации о движении транспорта | |
CN113721622B (zh) | 一种机器人路径规划方法 | |
CN112671631B (zh) | 一种分组传送网的优化方法和系统 | |
US11803529B2 (en) | Unbalanced binary tree construction method based on calculation of binary boundary value | |
KR101806628B1 (ko) | 통합 회귀 분석 네트워크 구축 방법 및 이에 의한 통합 분석 시스템 | |
CN112634622B (zh) | 一种路径流量计算方法、装置、设备及可读存储介质 | |
KR101771352B1 (ko) | 동적 환경에서의 그래프 요약 방법 및 장치 | |
Takahashi et al. | Fast approximate algorithm for the single source shortest path with Lazy update | |
Freitas et al. | Identifying influential patents in citation networks using enhanced VoteRank centrality | |
Khoshkhah et al. | A Random Walk Approach for Simulation-Based Continuous Dynamic Traffic Assignment | |
KR100920966B1 (ko) | 인접행렬을 이용하여 최소 길이의 폐구간을 이루는노드들을 검출하는 프로그램이 저장된 매체 | |
Zhao et al. | A network coordinate system constructing algorithm based on optimal neighbor nodes | |
KR101665342B1 (ko) | 지연 허용 네트워크에서의 노드 이동 경로 예측 방법 | |
CN109412947B (zh) | 一种基于聚合物相互作用的路由规划方法 | |
Abbas et al. | Models for quality analysis of computer structures | |
Wen et al. | Multilayer traffic network optimized by multiobjective genetic clustering algorithm | |
CN115086224B (zh) | 基于Farey模型的最短路由实现方法及系统 | |
RU2700547C1 (ru) | Способ нахождения надежных кратчайших путей в сети связи |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |