因为我认为我们中的许多人没有相同版本的 Cormen 等人的“算法简介”,所以我将在下面写引理(和我的问题)。
Edmonds-Karp 算法
引理 26.7(第 3 版;第 2 版可能是引理 26.8):如果 Edmonds-Karp 算法在源 s 和汇 t 的流网络 G=(V,E) 上运行,则对于 V 中的所有顶点 v{ s,t},残差网络 Gf 中的最短路径距离 df(s,v) 随着每次流量增强而单调增加
证明:首先,假设对于V{s,t}中的某个顶点v,存在一个流增广导致s到v的最短路径距离减小,那么我们将推导出一个矛盾。令 f 是第一次增强之前的流,它减少了一些最短路径距离,让 f' 是紧随其后的流。令 v 为具有最小 df'(s,v) 的顶点,其距离因增强而减小,因此 df'(s,v) < df(s,v)。令 p = s ~~> u -> u 是 Gf' 中从 s 到 v 的最短路径,因此 Ef' 中的 (u,v) 和
df'(s,u) = df'(s,v) - 1. (26.12)
由于我们如何选择 v,我们知道顶点 u 到源 s 的距离没有减小,即
df'(s,u) >= df(s,u)。(26.13)
...
我的问题是:我不太明白这句话
"因为我们选择 v 的方式,我们知道顶点 u 到源 s 的距离没有减小,即 df'(s,u) >= df(s,u). (26.13) "
我们选择 v 的方式如何影响“顶点 u 到 s 的距离没有减小”的性质?我怎样才能推导出方程(26.13)。
我们知道,u 是路径 (s,v) 上的一个顶点,并且 (u,v) 也是 (s,v) 的一部分。为什么 (s,u) 也不能减少?
谢谢大家的帮助。