最短路径算法Dijkstra算法.docVIP

  • 87
  • 0
  • 约2.13千字
  • 约 3页
  • 2017-08-15 发布于重庆
  • 举报
最短路径算法Dijkstra算法.doc

3.6 附录E 最短路径算法——Dijkstra算法 在路由选择算法中都要用到求最短路径算法。最出名的求最短路径算法有两个,即Bellman-Ford算法和Dijkstra算法。这两种算法的思路不同,但得出的结果是相同的。我们在下面只介绍Dijkstra算法,它的已知条件是整个网络拓扑和各链路的长度。 应注意到,若将已知的各链路长度改为链路时延或费用,这就相当于求任意两结点之间具有最小时延或最小费用的路径。因此,求最短路径的算法具有普遍的应用价值。 下面以图E-1的网络为例来讨论这种算法,即寻找从源结点到网络中其他各结点的最短路径。为方便起见,设源结点为结点1。然后一步一步地寻找,每次找一个结点到源结点的最短路径,直到把所有的点都找到为止。 图E-1 求最短路径算法的网络举例 令D(v)为源结点(记为结点1)到某个结点v的距离,它就是从结点1沿某一路径到结点v的所有链路的长度之和。再令l(i, j)为结点i至结点j之间的距离。整个算法只有以下两个部分: (1) 初始化 令N表示网络结点的集合。先令N = {1}。对所有不在N中的结点v,写出 在用计算机进行求解时,可以用一个比任何路径长度大得多的数值代替∞。对于上述例子,可以使D(v) = 99。 (2) 寻找一个不在N中的结点w,其D(w)值为最小。把w加入到N中。然后对所

文档评论(0)

1亿VIP精品文档

相关文档