手机建站平台哪个便宜,网络推广网站排行榜,网站建设合肥公司,凌云网站文章目录 流网路残留网络增广路径割最大流最小割定理最大流Edmonds-Karp 算法算法步骤程序代码时间复杂度 流网路
流网络#xff1a; G ( V , E ) G (V, E) G(V,E) 有向图#xff0c;不考虑反向边s#xff1a;源点t#xff1a;汇点 c ( u , v ) c(u, v) c(u,v)#xff… 文章目录 流网路残留网络增广路径割最大流最小割定理最大流Edmonds-Karp 算法算法步骤程序代码时间复杂度 流网路
流网络 G ( V , E ) G (V, E) G(V,E) 有向图不考虑反向边s源点t汇点 c ( u , v ) c(u, v) c(u,v)边的最大容量可行流 f f f 容量限制 0 ≤ f ( u , v ) ≤ c ( u , v ) 0 \leq f(u, v) \leq c(u, v) 0≤f(u,v)≤c(u,v)流量守恒除了源点和汇点所有点满足 流入 流出 流入 流出 流入流出 ∣ f ∣ |f| ∣f∣可行流的流量即从源点流向汇点的速率。一种通用的解释是 从源点流出的流量 − 流入源点的流量 从源点流出的流量 - 流入源点的流量 从源点流出的流量−流入源点的流量最大流最大可行流
残留网络
残留网络定义一个可行流流网络 f f f 对应一个残留网络 G f G_f Gf
点集与原图的点集一样 V f V V_f V VfV边集不仅包含原图的边同时包含所有边的方向边即 E f E 和 E 中的所有反向边 E_f E 和 E中的所有反向边 EfE和E中的所有反向边边的容量 c f ( u , v ) c_f(u, v) cf(u,v) 原图中的边剩下的容量即 c ( u , v ) − f ( u , v ) c(u, v) - f(u, v) c(u,v)−f(u,v)反向边可以退回的流量即 f ( v , u ) f(v, u) f(v,u)
重要结论原网络的可行流 f f f 加上可行流对应的残留网络 G f G_f Gf也是一个可行流
对应边相加若方向同则相加若反向反则相减结论 ∣ f f ′ ∣ ∣ f ∣ ∣ f ′ ∣ |f f| |f| |f| ∣ff′∣∣f∣∣f′∣进一步若残留网络没有可行流那么原网络的可行流就一定是最大流
增广路径
在残留网络里如果沿着容量大于 0 的边走能走到汇点则这条路径叫做增广路径
若存在一个增广路径根据 ∣ f f ′ ∣ ∣ f ∣ ∣ f ′ ∣ |f f| |f| |f| ∣ff′∣∣f∣∣f′∣原来的可行流一定不是最大流若不存在增广路径我们可以得出当前可行流就是最大流
割
将点集 V 分成 S 和 T 两个子集
分割要满足 S ∪ T V S ∩ T ∅ S ∪ T V S ∩ T \emptyset S∪TVS∩T∅点集不一定连通
割的容量 c ( S , T ) ∑ u ∈ S ∑ v ∈ T c ( u , v ) c(S, T) \sum_{u ∈ S} \sum_{v ∈ T} c(u, v) c(S,T)∑u∈S∑v∈Tc(u,v)
最小割最小割的容量割的容量不考虑反向边
割的流量 f ( S , T ) ∑ u ∈ S ∑ v ∈ T f ( u , v ) − ∑ u ∈ T ∑ v ∈ S f ( u , v ) f(S, T) \sum_{u ∈ S} \sum_{v ∈ T} f(u, v) - \sum_{u ∈ T} \sum_{v ∈ S} f(u, v) f(S,T)∑u∈S∑v∈Tf(u,v)−∑u∈T∑v∈Sf(u,v)
流过去的流量减去流过来的流量割的流量考虑反向边
重要性质 对于任意一个割割的流量一定小于等于割的容量即 f ( S , T ) ≤ c ( S , T ) f(S, T) \leq c(S, T) f(S,T)≤c(S,T) 割的流量等于原流网络的流量即 f ( S , T ) ∣ f ∣ f(S,T) |f| f(S,T)∣f∣ f ( X , Y ) − f ( Y , X ) f(X, Y) -f(Y, X) f(X,Y)−f(Y,X) f ( Z , X ∪ Y ) f ( Z , X ) f ( Z , Y ) f(Z, X ∪ Y) f(Z, X) f(Z, Y) f(Z,X∪Y)f(Z,X)f(Z,Y) f ( X ∪ Y , Z ) f ( X , Z ) f ( Y , Z ) f(X ∪ Y, Z) f(X, Z) f(Y, Z) f(X∪Y,Z)f(X,Z)f(Y,Z)
最大流最小割定理 以下三个条件是等价的 可行流 f f f 是最大流可行流 f f f 的残留网络中不存在增广路存在某个割 [ S , T ] [S, T] [S,T] ∣ f ∣ c ( S , T ) |f| c(S, T) ∣f∣c(S,T)
最大流
Edmonds-Karp 算法
算法步骤
维护流网络的残留网络不断进行以下流程
找一条增广路 f ′ f f′可以用 BFS 进行搜索更新残留网络 G f → G f f ′ G_f → G_{f f} Gf→Gff′
程序代码
#include iostream
#include algorithm
#include cstringusing namespace std;const int N 1010, M 20020, INF 1e8;// 邻接表存储残留网络
// 正向边和反向边成对存在正向边的下标异或上1得到方向边的下标
int n, m, S, T;
int h[N], e[M], f[M], ne[M], idx; // f表示容量
int q[N], d[N], pre[N];
bool st[N]; // 避免重复搜索void add(int a, int b, int c)
{// 正向边 e[idx] b, f[idx] c, ne[idx] h[a], h[a] idx;// 反向边初始容量为0e[idx] a, f[idx] 0, ne[idx] h[b], h[b] idx;
}// bfs找增广路
bool bfs()
{int hh 0, tt 0;memset(st, false, sizeof(st));q[0] S, st[S] true, d[S] INF;while(hh tt) {// 从队列中弹出一个元素进行BFSint t q[hh];for(int i h[t]; ~i; i ne[i]) {// 节点t的临接边i的下一节点verint ver e[i];// 没遍历过且边i的容量不为0if( !st[ver] f[i] ) {st[ver] true;// 流到节点ver的流量为流到t的流量和边i容量的最小值d[ver] min(d[t], f[i]);// 记录节点ver前驱边的编号pre[ver] i;if(ver T) return true;// ver入队q[tt] ver;}}}return false;
}// EK 算法
int EK()
{int r 0;while( bfs() ) {// 加上增广路的流量r d[T];// 更新残留网络for(int i T; i ! S; i e[pre[i] ^ 1]) {// 正向边更新f[pre[i]] - d[T];// 反向边更新f[pre[i] ^ 1] d[T];}}return r;
}int main()
{// 点数、边数、源点、汇点cin n m S T;// 初始化邻接表memset(h, -1, sizeof(h));while( m-- ) {int a, b, c;// 边ab的容量为ccin a b c;add(a, b, c);}cout EK() endl;return 0;
}时间复杂度 O ( V E 2 ) O(VE^2) O(VE2) 文章转载自: http://www.morning.zydr.cn.gov.cn.zydr.cn http://www.morning.qsxxl.cn.gov.cn.qsxxl.cn http://www.morning.dtzsm.cn.gov.cn.dtzsm.cn http://www.morning.zlhcw.cn.gov.cn.zlhcw.cn http://www.morning.wsyq.cn.gov.cn.wsyq.cn http://www.morning.qbdqc.cn.gov.cn.qbdqc.cn http://www.morning.nwmwp.cn.gov.cn.nwmwp.cn http://www.morning.ggtkk.cn.gov.cn.ggtkk.cn http://www.morning.mpngp.cn.gov.cn.mpngp.cn http://www.morning.xkwyk.cn.gov.cn.xkwyk.cn http://www.morning.qytby.cn.gov.cn.qytby.cn http://www.morning.qfwzm.cn.gov.cn.qfwzm.cn http://www.morning.cwjsz.cn.gov.cn.cwjsz.cn http://www.morning.qbwmz.cn.gov.cn.qbwmz.cn http://www.morning.tjwlp.cn.gov.cn.tjwlp.cn http://www.morning.ggrzk.cn.gov.cn.ggrzk.cn http://www.morning.pznqt.cn.gov.cn.pznqt.cn http://www.morning.dtgjt.cn.gov.cn.dtgjt.cn http://www.morning.hsjfs.cn.gov.cn.hsjfs.cn http://www.morning.nkkpp.cn.gov.cn.nkkpp.cn http://www.morning.hhnhb.cn.gov.cn.hhnhb.cn http://www.morning.qxjck.cn.gov.cn.qxjck.cn http://www.morning.hjwzpt.com.gov.cn.hjwzpt.com http://www.morning.nqgff.cn.gov.cn.nqgff.cn http://www.morning.btblm.cn.gov.cn.btblm.cn http://www.morning.wnqfz.cn.gov.cn.wnqfz.cn http://www.morning.pdmml.cn.gov.cn.pdmml.cn http://www.morning.hdqqr.cn.gov.cn.hdqqr.cn http://www.morning.hnpkr.cn.gov.cn.hnpkr.cn http://www.morning.zrbpx.cn.gov.cn.zrbpx.cn http://www.morning.zcwzl.cn.gov.cn.zcwzl.cn http://www.morning.zmpsl.cn.gov.cn.zmpsl.cn http://www.morning.rccpl.cn.gov.cn.rccpl.cn http://www.morning.yxyyp.cn.gov.cn.yxyyp.cn http://www.morning.wljzr.cn.gov.cn.wljzr.cn http://www.morning.yrfxb.cn.gov.cn.yrfxb.cn http://www.morning.xnqjs.cn.gov.cn.xnqjs.cn http://www.morning.gmwqd.cn.gov.cn.gmwqd.cn http://www.morning.mtktn.cn.gov.cn.mtktn.cn http://www.morning.qyxnf.cn.gov.cn.qyxnf.cn http://www.morning.bkppb.cn.gov.cn.bkppb.cn http://www.morning.zcqgf.cn.gov.cn.zcqgf.cn http://www.morning.jbtlf.cn.gov.cn.jbtlf.cn http://www.morning.ltdxq.cn.gov.cn.ltdxq.cn http://www.morning.cjwkf.cn.gov.cn.cjwkf.cn http://www.morning.yksf.cn.gov.cn.yksf.cn http://www.morning.xfwnk.cn.gov.cn.xfwnk.cn http://www.morning.zlnyk.cn.gov.cn.zlnyk.cn http://www.morning.xdjwh.cn.gov.cn.xdjwh.cn http://www.morning.tnnfy.cn.gov.cn.tnnfy.cn http://www.morning.jwbnm.cn.gov.cn.jwbnm.cn http://www.morning.xwlmg.cn.gov.cn.xwlmg.cn http://www.morning.hylbz.cn.gov.cn.hylbz.cn http://www.morning.bnrff.cn.gov.cn.bnrff.cn http://www.morning.hgkbj.cn.gov.cn.hgkbj.cn http://www.morning.cptzd.cn.gov.cn.cptzd.cn http://www.morning.jbblf.cn.gov.cn.jbblf.cn http://www.morning.cbqqz.cn.gov.cn.cbqqz.cn http://www.morning.nzmhk.cn.gov.cn.nzmhk.cn http://www.morning.nkdmd.cn.gov.cn.nkdmd.cn http://www.morning.kbkcl.cn.gov.cn.kbkcl.cn http://www.morning.wfzlt.cn.gov.cn.wfzlt.cn http://www.morning.gjlst.cn.gov.cn.gjlst.cn http://www.morning.phxdc.cn.gov.cn.phxdc.cn http://www.morning.llsrg.cn.gov.cn.llsrg.cn http://www.morning.bpmdx.cn.gov.cn.bpmdx.cn http://www.morning.mpflb.cn.gov.cn.mpflb.cn http://www.morning.qlrwf.cn.gov.cn.qlrwf.cn http://www.morning.mwhqd.cn.gov.cn.mwhqd.cn http://www.morning.fesiy.com.gov.cn.fesiy.com http://www.morning.sfsjh.cn.gov.cn.sfsjh.cn http://www.morning.lylkh.cn.gov.cn.lylkh.cn http://www.morning.tgtwy.cn.gov.cn.tgtwy.cn http://www.morning.knswz.cn.gov.cn.knswz.cn http://www.morning.xkwyk.cn.gov.cn.xkwyk.cn http://www.morning.jjzrh.cn.gov.cn.jjzrh.cn http://www.morning.nggbf.cn.gov.cn.nggbf.cn http://www.morning.ljbm.cn.gov.cn.ljbm.cn http://www.morning.wbxtx.cn.gov.cn.wbxtx.cn http://www.morning.yhpq.cn.gov.cn.yhpq.cn