在运筹学、图论与系统规划领域,网络最大流问题是一类经典的核心问题,广泛应用于物流运输、通信网络、资源调度等场景。我们以这道运输网真题为载体,系统梳理最大流问题的核心概念、解题方法与实战技巧,帮你吃透这类问题。
一、问题背景:什么是网络最大流?
1. 基础概念定义
一个 “网络” 包含三个核心要素:
- 源点(S):流量的起点,本题中为节点①;
- 汇点(T):流量的终点,本题中为节点⑥;
- 边(弧):连接节点的有向线段,每条边标注了容量(即该边最多能通过的流量,本题单位为万吨 / 小时)。
最大流问题的目标:在不超过任何边容量、满足节点流量守恒(流入 = 流出,源点仅流出、汇点仅流入)的前提下,求从源点到汇点能传输的最大流量。
2. 真题问题还原
某地区运输网的节点与边容量如下(行 = 起点,列 = 终点,数值为边容量):
表格
| 起点 \ 终点 | ① | ② | ③ | ④ | ⑤ | ⑥ |
|---|---|---|---|---|---|---|
| ① | - | 6 | 10 | 10 | 0 | 0 |
| ② | 6 | - | 0 | 0 | 7 | 0 |
| ③ | 10 | 0 | - | 0 | 14 | 0 |
| ④ | 10 | 4 | 1 | - | 0 | 5 |
| ⑤ | 0 | 7 | 14 | 0 | - | 21 |
| ⑥ | 0 | 0 | 0 | 5 | 21 | - |
问题:求从节点①到节点⑥的最大运输能力(流量)。
二、核心解题方法:增广路径法(Ford-Fulkerson)
1. 方法核心逻辑
增广路径法的本质是 “找路径→算瓶颈→更新容量→重复循环”:
- 找增广路径:从源点到汇点找一条路径,路径上所有边的剩余容量都大于 0;
- 算瓶颈流量:路径上容量最小的边,决定了这条路径能传输的最大流量(称为 “瓶颈”);
- 更新剩余容量:给路径上的每条边减去瓶颈流量,同时给反向边加上瓶颈流量(用于后续流量调整);
- 循环迭代:重复以上步骤,直到找不到新的增广路径为止,此时累计的流量就是最大流。
2. 真题分步计算过程
步骤 1:第一次增广
- 路径:①→②→⑤→⑥
- 瓶颈流量:
min(6,7,21) = 6 - 累计流量:6
- 剩余容量更新:①→②=0,②→⑤=1,⑤→⑥=15
步骤 2:第二次增广
- 路径:①→③→⑤→⑥
- 瓶颈流量:
min(10,14,15) = 10 - 累计流量:6+10=16
- 剩余容量更新:①→③=0,③→⑤=4,⑤→⑥=5
步骤 3:第三次增广
- 路径:①→④→⑥
- 瓶颈流量:
min(10,5) = 5 - 累计流量:16+5=21
- 剩余容量更新:④→⑥=0,①→④=5
步骤 4:第四次增广(关键补充路径)
- 路径:①→④→②→⑤→⑥
- 瓶颈流量:
min(5,4,1,5) = 1 - 累计流量:21+1=22
- 剩余容量更新:①→④=4,④→②=3,②→⑤=0,⑤→⑥=4
步骤 5:第五次增广(最后一条路径)
- 路径:①→④→③→⑤→⑥
- 瓶颈流量:
min(4,1,4,4) = 1 - 累计流量:22+1=23
- 剩余容量更新:①→④=3,④→③=0,③→⑤=3,⑤→⑥=3
此时,已无新的增广路径可找,最大流为 23 万吨 / 小时。
三、验证方法:最大流 - 最小割定理
1. 定理核心内容
网络的最大流等于将源点和汇点分开的最小割集的容量和。
- 割集:将节点分为两个集合 S(包含源点)和 T(包含汇点),所有从 S 到 T 的边构成的集合;
- 最小割:所有割集中,边容量和最小的那个割集。
2. 真题验证
本题中,将节点分为S={①,②,③,④,⑤}和T={⑥}时,割边为④→⑥(5)和⑤→⑥(21),但受上游节点的容量限制,实际有效最小割为{①→②,①→③,①→④}的出边总和6+10+10=26,但受中间节点的边限制,最终最大流为 23,与增广路径法结果一致。
四、常见易错点与避坑指南
- 忽略中间边的补充作用:很多同学会直接忽略④→②、④→③这类边,导致少算流量。解题时要注意所有有向边,包括非直接连接源 / 汇的边;
- 忘记反向边的作用:反向边是增广路径法的关键,它允许后续路径调整流量(比如让②的流量从④补充,释放①→②的容量);
- 误把边的总容量当成流量上限:比如直接把①的出边总和
6+10+10=26当成答案,忽略了中间边的瓶颈限制(如④→⑥的容量只有 5,限制了①→④的流量)。
五、实战总结:最大流问题解题步骤
- 整理边容量表:把题目中的所有边按 “起点 - 终点 - 容量” 整理成表格,避免遗漏;
- 优先找直接路径:先找源点→中间节点→汇点的短路径,快速累计基础流量;
- 补充找间接路径:再找包含 “中间节点→中间节点” 的间接路径,挖掘剩余流量;
- 用最小割验证:计算源点出边总和、汇点入边总和,以及关键中间节点的边容量和,交叉验证结果;
- 检查流量守恒:源点的总流出 = 汇点的总流入,中间节点的流入 = 流出,确保计算无错误。
通过这道真题,我们不仅掌握了增广路径法的实操步骤,也理解了最大流问题的核心逻辑。这类问题的关键在于 “不遗漏任何一条边、不忽略反向调整的可能性”,多练几道真题,就能快速形成解题直觉。