龙源期刊?/p>
http://www.qikan.com.cn
改进?/p>
Dijkstra
算法的最短路径求?/p>
作者:金婷
方欢
方贤?/p>
来源:《软件导刊?/p>
2016
年第
02
?/p>
摘要摘要:最短路径问题一直是图论中的研究热点。为寻找有向图中任意两点之间存在?/p>
所有最短路径,?/p>
Dijkstra
算法入手,分析其最短路径实现原理,发现其局限性,即多条路?/p>
求解是唯一的;对算法作出改进,?/p>
Dijkstra
算法基础上引入前置邻结点,对每个顶点增加?/p>
置邻结点属性,并进行实时记录和更新,使改进后的算法能够求解多条路径问题。利?/p>
Java
语言编程实现算法思想,通过简单的界面显示验证了算法的正确性?/p>
关键词关键词?/p>
Dijkstra
算法;前置邻结点;多条最短路?/p>
DOIDOI
?/p>
10.11907/rjdk.1511199
中图分类号:
TP319
文献标识码:
A
文章编号文章编号
?/p>
16727800
?/p>
2016
?/p>
002012903
0
引言
现实生活中的很多问题都可以归结为最短路径问题,最短路径不仅是局限于空间位置上的
距离最短,也可能是指最少交通费用,或者是最短运输时间等?/p>
Dijkstra
算法是公认的求解最
短路径的较好算法,旨在计算一个节点到其它所有节点的最短路径。在
Dijkstra
算法优化?/p>
面,国内外学者提出了多种方法,包?/p>
DKB
?/p>
DKD
、二叉堆法等
[12]
?/p>
Dijkstra
算法的具体应
用研究也涉及到生活的方方面面,比如,农产品配送、城市交通系统等。对于给定有向图,确
定起点终点的最短路径问题,需要对经典?/p>
Dijkstra
算法作出适当改进,使其终点一经标号即
结束循环,输出最短距离和存在的多条最短路径?/p>
1
基于
Dijkstra
算法的最短路径求?/p>
Dijkstra
算法按路径长度的非降次序生成有向图中某个指定结点(源点)到其它各结点?/p>
最短路径。例:有向图如图
1
所示,求图
1
中源点到其它各顶点的最短路径?/p>
该图的成本邻接矩阵为?/p>
0205030∞∞?25∞∞70∞∞0402550∞∞∞∞55∞∞∞∞?10∞∞∞∞?
S
集合存放已经生成最短路径的顶点?/p>
COST
?/p>
i
?/p>
j
)是?/p>
[i
?/p>
j]
的权
DIST
?/p>
j
)被置以源点
到结?/p>
j
的最短路径长度?/p>
V0
是源点,首先将结?/p>
V0
放入
S
中。此?/p>
DIST
?/p>
1
)最小为
20
?