美文网首页
[图论]Dijstra 算法的正确性证明

[图论]Dijstra 算法的正确性证明

作者: Quasars | 来源:发表于2016-03-05 14:18 被阅读226次

NOTE - dijstra算法的正确性非常依赖于边权值的非负。

原因是: 设V为所有点集, S为确定最短路径的点集,算法每次取V-S中与源点距离最小的点来松弛其他边,并将该点其加入S中.
反证法 + 归纳法
初始时,只有一个源点位于S中,加入S的为与源点直接距离最短的点k,并以k来松弛其他边。假设k'为松弛后与源点距离最小的点,则k'此时可以加入S,即此时k'与源点的距离为最短路径的长度,设其为d'。
假设d'非最短路径长度,即存在一个更短的路径.
思考d'如何得来的,其是通过源点 --- k --- k'得到。已知与源点直接相邻的点中k为最近点,并且边的权值为非负,因此不存在通过其他直接相邻的点t的更短路径.

以上思路可以写成更严格的归纳法.

相关文章

  • [图论]Dijstra 算法的正确性证明

    NOTE - dijstra算法的正确性非常依赖于边权值的非负。 原因是: 设V为所有点集, S为确定最短路径的点...

  • Dijstra算法的C++实现

    图论中Dijstra算法算是比较经典的算法,它解决的是一个有权图中,指定起始点到其他顶点的最短距离,采用的是BFS...

  • Dijstra算法详解

    常用的机器人导航算法中求取最短路径的算法除了A算法以外,Dijstra(迪杰克斯拉)算法也是广泛使用的一种算法。通...

  • 图论算法

    图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为,V是图G中顶点的集合,E是图G中边的集合。图分为无向图...

  • 图论算法

    一、并查集 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定...

  • 图论——A*算法

    距离估算方法参考文章 A*算法使用在游戏中,自动寻路。将游戏地图抽象成一个很大的矩阵,起始点和终止点的位置坐标已知...

  • 图论算法

    1. 图的表示:邻接矩阵和邻接表 邻接矩阵:大小为|V|的二维数组,对于每条边(u, v),置A[u][v]=1或...

  • [算法] 图论

    图的表示 邻接矩阵int G [maxv][maxv]或 G数组元素存储连接与否...

  • 图论算法

    若干定义 图范指由顶点V(vetex)和边(edge)组成的集合,可以表示G=(V,E). 有向图,无向图 顶点之...

  • Dijstra算法与搜索算法

    Dijistra其实就是一种搜索算法, 它是BFS的升级版。假设每条路径的值为1,那么两点之间的最短路径可以直接用...

网友评论

      本文标题:[图论]Dijstra 算法的正确性证明

      本文链接:https://www.haomeiwen.com/subject/fdzokttx.html