最大流基础(Maximum Flow Basis)
1. 最大流问题定义#
1.1 流网络(Flow network)#
Def. A flow network is a tuple
- Digraph
with source and sink . - Capacity
for each .
定义. 一个流网络可以定义为一个元组
- 有向图
中含义一个源点 以及一个汇点 . - 每条边都有相应的容量
.
1.2 最大流问题(Maximum-flow problem)#
Def. An flow
- For each
: [capacity] - For each
: [flow conservation]
定义. 一个流
- 对于边
: . [容量] - 对于顶点
: . [流量守恒]
Def. The value of a flow
定义. 一个流
Max-flow problem. Find a flow of maximum value.
最大流问题. 找到一个流,它的值最大.
2. 最大流问题算法#
三种解决最大流问题算法, B站upShusenWang的视频.
2.1 福特-富尔克森算法(Ford–Fulkerson algorithm)#
13-2: Ford-Fulkerson Algorithm 寻找网络最大流
2.2 埃德蒙兹-卡普算法(Edmonds-Karp Algorithm)#
13-3: Edmonds-Karp Algorithm 寻找网络最大流
2.3 迪尼茨算法(Dinic's algorithm)#
13-4: Dinic's Algorithm 寻找网络最大流
3. 扩展#
3.1 瓶颈边(Bottleneck edge)#
定义. 流网络中的一条边被称为瓶颈边是指其容量的增加将导致最大流的增加。
问题. 给出一个识别流网络中瓶颈边的高效算法
算法如下:
- 用Ford-Fulkerson算法, 得到最终的剩余图
- 计算两个集合: 剩余图中所有从源点
可达的节点定义为集合 , 剩余图中所有可以到达汇点 的节点定义为集合 . - 任何一个连接集合
中节点到集合 中节点的边 , 都是瓶颈边.
*第二步中, 求集合
正确性: 增加
标签:
算法导论
, 最大流(Maximum Flow)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通