给定带杈有向图G和源点v,求从v到G中其余各顶点的短路径。如何求得这些路径。解决短路问题存在几个 不同的算法,这里主要介绍迪杰斯特拉算法。迪杰斯特拉(Dijkstra)提出了一个按路径长度递增的次序产生 短路径的算法。
经典Dijkstra算法的主要思想:
Dijkstra算法是求出一个连通加杈简单图中从结点a到结点z的短路。边{i,j}的权ω(i,j)>0,且结点x的 标号为L(x),结束时,L(z)是从a到z的短路的长度。
Dijkstra算法流程(G:所有权为正的加权连通简单图):
For所有不属于S的顶点v
这样就给S中添加带标记的顶点并且更新不在S中的顶点的标记
End L(z)=从曰到z的短路的长度。
每次一个顶点为源点,重复执行Dijkstra算法ヵ次。这样,便可以求得每一对顶点之间的短距离。
在网络中,建立一个子网图,图中的每个节点代表一台路由器,每条弧代表一条通信线路。为了在一对给定的路由器之间选择一条路由路径,路由算法只需在图中找到这对节点之间的短路径即可。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。