最小割求解算法
最大流解法
最大流解法是求解最小割问题的一种常规解法,算法的核心点有两点,一是为什么网络流算法可以用于求解最小割?二是由于网络流算法需要选定一个源点跟一个汇点,所以当在一个任意图中时是否需要专门寻找一个源点跟一个汇点算法才能成立?
①为什么可以求解
由于最大流算法的本质就是求从源点到汇点的最大网络流量,其最大流恰恰对应着最小割,故可以用最大流方法求解。
对于最大流的求解有多种方法,相对应的最小割求法也应当对应多种,最常见的应该是求增广路径,得到原图的剩余网络图,进而继续求解剩余网络图的增广路径,不断循环直到最终连通图被分成两部分即可得到最小割。
详细算法可见link.
或者link.
②是否需要特定的源点跟汇点算法才可行。
一般来讲需要专门的源点跟汇点才可以进行网络流算法求最小割,举一个极端的例子,对于最小割只包含一条边的图,如果做求最大流算法的两个点都在最小割所包含边的一边,则算法的运算结果显然不正确,故这种求法显然具有较大的限制性。
Stoer-Wagner Algorithm算法
首先不介绍算法,我们考虑一下这个算法的推导:
最小割的性质
首先考虑最小割是什么,以及其具有的性质。
首先我们应该注意到我们只在连通图中考虑最小割的问题,如果不是连通图显然最小割为0;
首先考虑在无向图中:
最小割具有这样的性质,即将图切割成两半时切割的权值最小,假如把图中每一个边都想象成一根绳子,把切断每一根绳子的所需要的力气想象成其权值,那么最小割就把一