最大流为什么等于最小割?
这个问题一直是困扰我们程序设计者的一大难题。对此,大家有着这样或那样的讨论和解释。
由于大佬们说他们推理性证明都需要半个小时,所以在此我们给予感性理解
对于一个网络,我们要在上面(流水,直到不能联通为止,问最大流)或(割边,直到不能联通为止,问最小代价)。
我们可以发现,两个问题的共同点:
- 终止条件都是不能联通
- 都是求最值
我们如何转换这个最值呢?我们可以发现,最大流中每一条路径能够流到汇点的流量都是这条路径上所有边流量的最小值,那么不就转化成和最小割一样的最值了吗?最大流的终止条件是网络无法联通,那么这时所有流到的流量是每一条路径上的最小值之和,我们每流尽一条边后相当于把那条边割掉,那最大流的答案就变成了最小割割掉边的最小值。