迪杰斯特拉算法的证明

 

V0V8的最短距离:

迪杰斯特拉算法的思想是依次求出距离V01近,第2…….一直到第8近,也就是从距离V0最近到最远的点。而每求一个最近距离就修正V0到剩下点的最短距离。

A为包含V0和已经求得最短距离的点,BA的补集。现在需要证明的是:

从上一次求得的V0到剩下各点的距离中选出最短的设为Vn,该距离(即V0Vn)即为所有路径中V0Vn的最短路径。其实也是下一个(即除A中点之外)最短距离

证明:只需要证明V0Vn的上一个中转站一定带A中。

反证法:假设此点在B中,设为Vn-1,则意思就是V0Vn-1+Vn-1Vn<此时的V0Vn,既然如此,那意味着V0Vn-1<V0Vn,那意味着Vn-1必然在A中,因为比此时所要求的下一个最小距离V0Vn短的点都在A中了,而假设是在B中,因此矛盾,证毕。

阅读更多
文章标签: 算法 编程 编码
个人分类: c语言
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

迪杰斯特拉算法的证明

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭