当前位置: 首页 > news >正文

最大流最小割定理

1. 符号与定义

设流网络为有向图 \(G = (V, E)\),其中:

  • 容量函数 \(c : E \to \mathbb{R}^+\),边 \((u,v)\) 的容量记为 \(c(u,v) \ge 0\)
  • 源点 \(s \in V\),汇点 \(t \in V\),且 \(s \neq t\)
  • 一个 \(f : E \to \mathbb{R}\) 满足:
    • 容量限制:对每条边 \((u,v) \in E\),有 \(0 \le f(u,v) \le c(u,v)\)
    • 流量守恒:对每个顶点 \(u \in V \setminus \{s, t\}\),有 \(\sum_{v \in V} f(u,v) = \sum_{v \in V} f(v,u)\)

\(f\)定义为从源点流出的净流量:

\[|f| = \sum_{v \in V} f(s,v) - \sum_{v \in V} f(v,s). \]

一个 \((S, T)\) 是将顶点集划分为两个子集,使得 \(s \in S\)\(t \in T\)\(T = V \setminus S\)。割的容量定义为从 \(S\)\(T\) 的所有边的容量之和(只计方向从 \(S\) 指向 \(T\) 的边):

\[c(S,T) = \sum_{u \in S} \sum_{v \in T} c(u,v). \]

定义流过割的净流量(考虑两个方向的边):

\[f(S,T) = \sum_{u \in S} \sum_{v \in T} f(u,v) - \sum_{u \in S} \sum_{v \in T} f(v,u). \]


2. 引理:任意流的值不超过任意割的容量

对任意流 \(f\) 与任意割 \((S,T)\),有

\[|f| = f(S,T) \le c(S,T). \]

证明:
由流量守恒,对所有 \(u \in S \setminus \{s\}\),它流入与流出 \(S\) 内部的净效果为零。通过将所有属于 \(S\) 的顶点的流量守恒方程相加,可得

\[|f| = \sum_{u \in S}\left(\sum_{v \in V} f(u,v) - \sum_{v \in V} f(v,u)\right) = f(S, V) - f(V, S). \]

由于 \(S \cup T = V\)\(S \cap T = \emptyset\),将 \(V\) 拆为 \(S\)\(T\),化简后即得 \(|f| = f(S,T)\)
又由容量限制 \(f(u,v) \le c(u,v)\) 且反向边流量非负,有

\[f(S,T) \le \sum_{u \in S}\sum_{v \in T} c(u,v) - 0 = c(S,T). \]

因此 \(|f| \le c(S,T)\)
由此立即可得:最大流的值 ≤ 最小割的容量。


3. 可达性构造:等号成立的割

\(f\) 是网络中的一个最大流(即不再存在增广路径)。定义残量网络 \(G_f = (V, E_f)\),其中对原网络每条边 \((u,v)\)

  • \(f(u,v) < c(u,v)\),则在 \(G_f\) 中加一条正向边 \((u,v)\),剩余容量为 \(c(u,v) - f(u,v)\)
  • \(f(u,v) > 0\),则在 \(G_f\) 中加一条反向边 \((v,u)\),剩余容量为 \(f(u,v)\)

\(G_f\) 中,令

\[S = \{ v \in V \mid \text{存在从 } s \text{ 到 } v \text{ 的路径} \}, \quad T = V \setminus S. \]

显然 \(s \in S\)。因 \(f\) 是最大流,残量网络中 不存在从 \(s\)\(t\) 的路径(否则沿该路径增广可增大流值),故 \(t \in T\)。因此 \((S,T)\) 是一个合法割。


4. 最大流的值等于该割的容量

考察原网络中所有跨越割的边:

  1. 对任意 \(u \in S, v \in T\),若原网络中存在边 \((u,v)\),则必有 \(f(u,v) = c(u,v)\)
    否则 \(c(u,v) - f(u,v) > 0\),在 \(G_f\) 中会有正向边 \((u,v)\),由于 \(u\)\(s\) 可达,\(v\) 也会变得从 \(s\) 可达,与 \(v \in T\) 矛盾。
  2. 对任意 \(u \in S, v \in T\),若原网络中存在边 \((v,u)\)(方向从 \(T\)\(S\)),则必有 \(f(v,u) = 0\)
    否则 \(f(v,u) > 0\),在 \(G_f\) 中会有反向边 \((u,v)\),同样导致 \(v\)\(s\) 可达,矛盾。

因此,

\[f(S,T) = \sum_{u \in S}\sum_{v \in T} f(u,v) - \sum_{u \in S}\sum_{v \in T} f(v,u) = \sum_{u \in S}\sum_{v \in T} c(u,v) - 0 = c(S,T). \]

由引理有 \(|f| = f(S,T)\),于是

\[|f| = c(S,T). \]

即该流 \(f\) 的值等于割 \((S,T)\) 的容量。


5. 完成

结合第 2 节(任意流值 ≤ 任意割容量)与第 4 节(存在一个流与一个割使值相等),可得:

  • \(f\) 为最大流(其值不可能再增大),\((S,T)\) 为最小割(其容量不可能再减小)。
  • 最大流值 = 最小割容量
http://www.jsqmd.com/news/982171/

相关文章:

  • 三步将Switch变成全能影音中心:wiliwili完整指南
  • 从数据手册到实战:Kinetis KL17低功耗设计全解析
  • 强合规研发场景复盘:代码管理平台如何实现从代码提交到上线的全链路可追溯
  • 国产SST固态变压器测试系统实力解析:知名生产商与厂家直供优选指南(2026版) - 品牌推荐大师1
  • WVP-GB28181-Pro终极指南:如何快速构建企业级视频监控平台
  • 基于 CNN 的ConvS2S(Convolutional Sequence-to-Sequence)架构英德机器翻译模型
  • 上海闵行区江诗丹顿手表回收测评|同城上门 + 无损验表 - 禹竞
  • 广义串并联平面图
  • 2026 南宁翡翠回收实力测评,行业翘楚合扬高价领跑全城市场 - 开心测评
  • ARM Cortex-M4与Kinetis K40 MCU:平衡性能与功耗的嵌入式开发实战
  • 从IBM 750CX到MPC7447A:PowerPC架构迁移实战与性能优化
  • Xenia Canary:如何在现代PC上完美运行Xbox 360游戏的完整指南
  • 油性皮肤清洁泥膜 油皮有黑头不用愁,这5款泥膜很好用 - 全网最美
  • 2026活性炭厂家推荐排行 专业权威评测榜单 - 极欧测评
  • 用C++ STL和基础算法通关PTA天梯赛L3:以‘喊山’和‘肿瘤诊断’为例的BFS/DFS实战模板
  • COMSOL新手避坑指南:用三维非定常圆柱绕流案例,搞懂CFD仿真那些关键设置
  • TPU模块BLDCm_res与BLDCm_fault在电机控制中的核心原理与实战配置
  • 从麻将新手到高手:Akagi实时AI助手完整指南,让你轻松提升雀力!
  • 2026郑州配眼镜推荐,给大学生群体划出了一条价格发现路线 - 配眼镜新资讯
  • 5分钟学会Illustrator批量替换神器:告别重复劳动的设计效率革命
  • 2026年国内优质混料系统厂家有哪些?靠谱混料设备公司推荐 - 品牌2026
  • 火狐浏览器搭配Video DownloadHelper插件,你的个人视频素材库搭建指南(2024实测版)
  • 2026石家庄黄金回收实测:这家断层第一,实力高价真靠谱 - 奢侈品回收测评
  • 举证倒置?电子合同在司法诉讼中的采信标准与证据链构建
  • 欧盟标准107胶实测:3大性能对比与选购避坑指南 - 品牌优选官
  • 从‘X光’到‘玻璃球’:手把手图解四种光线追踪,看它们如何一步步逼近真实世界
  • MPC55xx中断处理实战:硬件向量模式与VLE指令集优化详解
  • Java写的传感器模拟采集+图表实时显示系统(带源码和运行说明)
  • Joy-Con Toolkit完全指南:解决Switch手柄摇杆漂移的终极方案
  • 三分钟破解抖音内容采集难题:douyin-downloader完整实战指南