我如何在Bellman-Ford算法中证明这一点:
如果没有负权重周期,那么从源s
到接收器t
的每条最短路径最多有n-1
条,其中n
是数字图中的顶点。
有什么想法吗?
答案 0 :(得分:1)
该语句逐字逐句是错误的:在所有边都具有零权重的图中,没有负权重循环,但每条路径都是最短的。 我们可以证明的是以下略有(但重要的)不同版本:
如果没有负重量周期,则存在从源s
到接收器t
的最短路径,最短路径n - 1
边,其中n
是图中顶点的数量。
这是证明。
假设有>= n
个边缘的最短路径。
然后此路径具有> n
个顶点。
根据鸽子原理,有两个顶点是相同的。
因此,我们可以移除部分路径,将s -> (sequence-1) -> v -> (sequence-2) -> v -> (sequence-3) -> t
转换为s -> (sequence-1) -> v -> (sequence-3) -> t
。
周期v -> (sequence-2) -> v
的长度是非负的,所以我们的新路径并不比旧路径差。
而旧的声称是最短的,它也不会更好。
总之,这意味着我们删除了一个零重量的循环。
重要的是,由于我们至少删除了一次v
,因此在我们的过程中顶点的数量减少了。
现在,重复上述过程,直到路径的边缘小于n
。
它仍然是最短的路径。
因此,我们证明了存在< n
边的最短路径。