push-relabel最大流算法如何工作?

我阅读了维基百科和TopCoder上的相应文章,我读到的内容几乎没有任何意义.

编辑:在阅读幻灯片并更仔细地重读TopCoder文章后,我仍然不明白何时以及如何进行重新标记.

最佳答案 为了理解push-relabel算法,您需要了解push和relabel操作.该算法只是迭代运行它们中的每一个.此外,在算法执行的某些时刻,通过网络的流量实际上并不有效 – 但最终会有效.

推(节点)

推送检查是否有更多的流进入节点而不是离开节点,以及是否有一些超出的流可能离开节点(该节点的某些传出边缘有剩余容量)

重新标记(节点)
这会使多余的流进入一个不能离开的节点,因为所有的出口边缘都是饱和的,然后通过入口边缘向后传播,从而可以减少它们的流出量.这通常通过存储与每个节点相关的电位或高度来完成,并确保流量总是下降到电位.

点赞