最大流的算法——Edmonds-Karp算法(最短路径增广算法)
来源:互联网 发布:centos 编译php5.6.32 编辑:程序博客网 时间:2024/05/18 03:28
最大流的算法——Edmonds-Karp算法(最短路径增广算法)
这里介绍一个最简单的算法:Edmonds-Karp算法 即最短路径增广算法 简称EK算法
EK算法基于一个基本的方法:Ford-Fulkerson方法 即增广路方法 简称FF方法
增广路方法是很多网络流算法的基础 一般都在残留网络中实现
其思路是每次找出一条从源到汇的能够增加流的路径 调整流值和残留网络 不断调整直到没有增广路为止
FF方法的基础是增广路定理(Augmenting Path Theorem):网络达到最大流当且仅当残留网络中没有增广路
要实现这个算法,就遇到了三个问题:
(1)最多要增广多少次?
可以证明 最多O(VE)次增广 可以达到最大流 证明略
(2)如何找到一条增广路?
先明确什么是增广路: 增广路是这样一条从s到t的路径 路径上每条边残留容量都为正
把残留容量为正的边设为可行的边 那么我们就可以用简单的BFS得到边数最少的增广路
(3)BFS得到增广路之后 这条增广路能够增广的流值, 是路径上最小残留容量边决定的
把这个最小残留容量MinCap值加到最大流值Flow上, 同时路径上每条边的残留容量值减去MinCap
最后,路径上每条边的反向边残留容量值要加上MinCap
看一个具体的增广路算法的例子吧
0 0
- 最大流的算法(EK算法)—>Edmonds-Karp算法(最短路径增广算法)
- 最大流的算法——Edmonds-Karp算法(最短路径增广算法)
- 最大流 - Edmonds-Karp 增广路算法
- [最大流]增广路算法Edmonds-Karp
- 最大流算法模板 Edmonds—Karp
- 最大流-Edmonds-Karp算法
- 最大流的Edmonds-Karp算法
- 算法导论—最大流(Edmonds-Karp算法)
- 网络流增广路Edmonds-Karp算法 与 Dinic算法
- 网络流最大流 Edmonds-Karp算法
- 网络流 最大流 Edmonds-Karp算法
- Edmonds-Karp算法,网络流最大流
- 最大流问题 Edmonds-Karp算法
- 最大流Edmonds-Karp算法模版
- edmonds-karp算法求最大流
- 最大流算法_最短增广算法
- 最大流算法之EK(最短路径增广算法)
- 网络流增广路Edmonds-Karp算法(EK算法)代码实现
- 变位字java实现
- 完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
- 正则表达式收集汇编
- HDU 1226超级密码(数位BFS)
- 【Linux学习】Makefile学习(二)
- 最大流的算法——Edmonds-Karp算法(最短路径增广算法)
- mysql5.6登陆时,1045:Access denied for user 'root'@'localhost'
- 美好的一天
- ssh基础知识
- lua的Debug库
- bash下如何使用bind[En]
- 第三篇——第二部分——第一文 SQL Server镜像简介
- 广州多益网络2014实习机试题目
- lua调用C++函数崩溃时,查看lua的调用栈信息 (特别适用于tolua++)