最短路径路由算法
发布时间:2008/12/3 0:00:00 访问次数:692
给定带杈有向图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)
给定带杈有向图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)