现在是几几年,怎么还在学网络流。
最小割求最大权闭合子图
定义
有一个有向图,每一个点都有一个权值(可以为正或负或 ),选择一个权值和最大的子图,使得每个点的后继都在子图里面,这个子图就叫最大权闭合子图。
转化成最小割问题
建立超级源点 和汇点 .
向每个正权点连边,流量为权值的绝对值。这条边存在代表该点在所选子图中。
每个负权点向 连边,流量为权值的绝对值。这条边存在代表该点不在所选子图中。
原图边的流量均为 (不能被割掉)。
求该网络的最小割,即可求出最大权闭合子图包含哪些点。
最大权闭合子图的权值 正权和 最小割。
合法性
当 和 不连通时,选出的子图不满足条件。假设有一条增广路,,,则 被选中, 没有被选中,不符合限制。
当 和 连通时,选出的子图满足条件。对于任意一个 :
-
的后继负节点到 的边被割掉了,它们被选中了;
-
由于已经割掉了 的所有后继负节点, 的后继正节点一定无法走到 ,割掉它们与 的边是不优的,最小割不会把它们割掉,所以 的所有后继正节点都被选中了。
最优性
根据前面的讨论,任意一个合法的割都对应着唯一一个选点方案;任意一个合法的选点方案都对应着唯一一个割。
这样任意一个割和选点方案都组成了一个双射。由于一个选点方案的权值 正权和 割的大小。
所以最大权闭合子图的权值 正权和 最小割。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?