在针对最大流量的Push Relabel算法中,为什么没有从源s到sink t的路径?

时间:2012-02-04 10:19:42

标签: algorithm clrs network-flow max-flow push-relabel

我很难理解CLRS的以下引理:

  

设G是流网络,s是源和汇节点,f是从s到t的预流,h是G上的高度函数。那么残差中没有从s到t的增广路径图G f

为什么会这样?

1 个答案:

答案 0 :(得分:2)

以下是CLRS第二版中的证据的解释和扩展版本。

证明背后的直觉是,如果h是高度函数,那么我们必须在从s到t的任何路径中都有这个,沿着路径的节点的高度每步最多可减少一个(因为高度)函数满足h(u)≤h(v)+ 1的性质,即h(v)≥h(u)-1)。所以现在假设你在残差图中有一个从s到t的增广路径。在这种情况下,如果存在扩充路径,则必须存在从s到t的扩充简单路径,因此我们不需要担心周期。

因此,让我们考虑这条简单路径必须是什么样子。如果有| V |图中的顶点,我们的简单路径最多必须有| V |其中的顶点,这意味着它最多有| V | - 其中有1个边缘。因为最多有| V | - 1个边缘,并且每个节点的高度每步最多可以下降一个,从起始节点s开始的最大可能的高度减少是| V |。 - 1.现在,我们知道h是高度函数,这意味着h(s)= | V |和h(t)= 0.但现在我们有一个矛盾 - 因为我们从高度| V |开始并将高度降低至多| V | - 1,路径末端的高度必须至少为1,并且由于h(t)= 0,我们知道该路径实际上不能在t处结束。这种矛盾保证了我们的假设是错误的,并且确实没有从s到t的增强路径。

希望这有帮助!