网络流最大流算法.ppt
《网络流最大流算法.ppt》由会员分享,可在线阅读,更多相关《网络流最大流算法.ppt(28页珍藏版)》请在三一文库上搜索。
1、Network FlowPresented by Network Flow基本基本性质:性质:对于网络对于网络(G,u,s,t)1、容量限制、容量限制(Capacity Constraints):F(x,y)0b、除、除s、t点外,图点外,图G中的中的所有点所有点流量守恒流量守恒注:此处的注:此处的s-t流不单指图中特定的流不单指图中特定的s-t路路s-t流的值:源点流的值:源点s的流出量;的流出量;2、s-t割:即点集割:即点集S指向指向点集点集T(此处(此处T=V(G)X)的边)的边集,其中集,其中sS且且tT割的容量:各边容量之和割的容量:各边容量之和最小最小s-t割:在割:在G中关于中
2、关于u具有最小容量的具有最小容量的s-t割割Maximum Flow-Minimum Cut TheoremDefinition:Maximum Flow-Minimum Cut Theorem任一个网络任一个网络(G,u,s,t)中,最大流的流量等于最小中,最大流的流量等于最小割的容量割的容量证明:证明:1、任意一个流小于等于任意一个割、任意一个流小于等于任意一个割(S,T),即,即value(F)=cap(S,T)2、sS,tT当且仅当当且仅当(S,T)中每条边的中每条边的f都饱和,而都饱和,而(T,S)中每中每条边的条边的f都为零时上式取等都为零时上式取等3、设、设F为网络的最大流,为网
3、络的最大流,K为最小割,为最小割,则则value(F)=cap(K);又可证又可证(S,T)中每条边的中每条边的f都饱和,而都饱和,而(T,S)中每条边的中每条边的f都为零,故都为零,故value(F)=cap(K)=cap(K)综上,综上,value(F)=cap(K)Theorem网络网络N(G,u,s,t)中的可行流中的可行流f是是N的最大流当的最大流当且仅当且仅当N中不存在中不存在f可扩路可扩路必要性:若有可扩路必要性:若有可扩路P,沿,沿P使使f扩大即可扩大即可充分性:充分性:设网络中不存在可扩路设网络中不存在可扩路令令S=vV(G)|从源从源s到到v有有f可扩路可扩路s,则与最,则
4、与最大流最小割定理同样可证大流最小割定理同样可证K=(S,T)是网络中的一个是网络中的一个割,且割,且value(f)=cap(K)设设F为最大流,为最大流,K为最小割,则为最小割,则value(f)=value(F)=cap(K)=cap(K)故故f即为最大流,即为最大流,K即为最小割即为最小割FordFulkerson算法的劣势:算法的劣势:EdmondsKarp algorithm-最大流问题的第一个多项式时间算法最大流问题的第一个多项式时间算法与与FordFulkerson算法相比,改进之处在于第二步中算法相比,改进之处在于第二步中P路路径的选择,与其任选,不如选最短(边数最少)径的选
5、择,与其任选,不如选最短(边数最少)算法步骤:算法步骤:1、令所有边的流量、令所有边的流量f=0;2、在、在 中找条最短可扩路中找条最短可扩路P,若无,则止;,若无,则止;3、算出、算出P路中各边剩余容量的最小值路中各边剩余容量的最小值r,并沿,并沿P使使f扩充扩充r,转,转2;复杂度:复杂度:EdmondsKarp可在可在O(m*m*n)内得解内得解EdmondsKarp算法中无论边容量多大,最多增流算法中无论边容量多大,最多增流m*n/2次(次(m为边数,为边数,n为点数)为点数)每次增流用每次增流用BFS最大为最大为O(m)Dinics algorithmDefinition:分层图分层
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 最大 算法
