最小割
概念
割
对于一个网络流图
割的容量
我们的定义割
最小割
最小割就是求得一个割
证明
最大流最小割定理
参见 最大流 页面最大流最小割定理一节。
代码
最小割
通过 最大流最小割定理,我们可以直接得到如下代码:
参考代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
|
方案
我们可以通过从源点
1 2 3 4 5 6 7 |
|
割边数量
如果需要在最小割的前提下最小化割边数量,那么先求出最小割,把没有满流的边容量改成
问题模型 1
有
这是一个经典的 二者选其一 的最小割题目。我们对于每个集合设置源点
注意到当源点和汇点不相连时,代表这些点都选择了其中一个集合。如果将连向
最小割就是最小花费。
问题模型 2
最大权值闭合图,即给定一张有向图,每个点都有一个权值(可以为正或负或
做法:建立超级源点
几个小结论来证明:
- 每一个符合条件的子图都对应流量网络中的一个割。因为每一个割将网络分为两部分,与
相连的那部分满足没有边指向另一部分,于是满足上述条件。这个命题是充要的。 - 最小割所去除的边必须与
和 其中一者相连。因为否则边权是 ,不可能成为最小割。 - 我们所选择的那部分子图,权值和
所有正权值之和 我们未选择的正权值点的权值之和 我们选择的负权值点的权值之和。当我们不选择一个正权值点时,其与 的连边会被断开;当我们选择一个负权值点时,其与 的连边会被断开。断开的边的边权之和即为割的容量。于是上述式子转化为:权值和 所有正权值之和 割的容量。 - 于是得出结论,最大权值和
所有正权值之和 最小割 所有正权值之和 最大流。
习题
本页面最近更新:2024/10/9 22:38:42,更新历史
发现错误?想一起完善? 在 GitHub 上编辑此页!
本页面贡献者:diauweb, Enter-tainer, Henry-ZHR, huaruoji, ImpleLee, Ir1d, ksyx, laocongsc, LuoYisu, Lynricsy, MegaOwIer, Nanarikom, ouuan, Siyuan, Tiphereth-A, Xeonacid
本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用