数学建模中的最短路算法.pptVIP

  • 37
  • 0
  • 约1.79千字
  • 约 6页
  • 2020-07-21 发布于湖北
  • 举报
最短路问题 一 、狄克斯特拉算法 (Dijkstra algorithm, 1959) 计算两节点之间或一个节点到所有节点之间的最短路 令 dij 表示 vi 到 vj 的直接距离(两点之间有边),若两点之间没有边,则令 dij = ?,若两点之间是有向边,则 dji = ?;令 dii = 0,s 表示始点,t 表示终点 0、令始点Ts=0,并用框住,所有其它节点临时标记 Tj=? ; 1、从 vs 出发,对其相邻节点 vj1 进行临时标记,有 Tj1=ds,j1 ; 2、在所有临时标记中找出最小者,并用框住,设其为 vr 。若此时全部节点都永久标记,算法结束;否则到下一步; 3、从新的永久标记节点 vr 出发,对其相邻的临时标记节点进行再标记,设 vj2 为其相邻节点,则 Tj2=min{Tj2, Tr+dr,j2 },返回第2步。 例1 狄克斯特拉算法 Dijkstra最短路算法的特点和适应范围 一种隐阶段的动态规划方法 每次迭代只有一个节点获得永久标记,若有两个或两个以上节点的临时标记同时最小,可任选一个永久标记;总是从一个新的永久标记开始新一轮的临时标记,是一种深探法 被框住的永久标记 Tj 表示 vs 到 vj 的最短路,因此 要求 dij?0,第 k 次迭代得到的永久标记,其最短路中最多有 k 条边,因此最多有n?1 次迭代 可以应用于简单有向图和混合图,在

文档评论(0)

1亿VIP精品文档

相关文档