??u?Sf(u,?)??u?Sf(u,?)??u?Sf(u,?)
???S??S显然
?u?Sf(?,u)??u?Sf(u,?)
??S??S故 ?(f)??u?Sf(?,u)??u?Sf(u,?)
??S??S ?
?f(e)??f(e)
e?(S,S)e?(S,S)定理9·1 对每个可行流及每个截集?S,S?都有,?(f)?c(S) 证 由引理9·1·1 ?(f)??f(e)??f(e)??c(e)?c(S) 证毕
e?(S,S)e?(S,S)e?(S,S)推论 9·1 设f是一个可行流,?S,S?是一个截集,使得?(f)?c(S),则f是最大流,。 ?S,S?是最小截集(指c(S)最小)
定义 9·5 设f是D中的一个可行流,P是一条s到?的路径(无向),若P上任一弧e有: (1)当e是正向弧时,c(e)?f(e); (2)当e是反向弧时,f(e)?0。
则称P是一条f非饱和路径。一条s到t的f非饱和路径称为f可增长路径。 定理 9·2 网络N的一个可行流f是最大流的充要条件是N中不含f可增长路径。
定理9·3 在任何网络中,最大流的流量等于最小截集的容量。 定理9·4 Dinits算法最多经V?1次迭代就能求出最大流。
证 只需证明若第k?1阶段不是最后阶段,则lk?1?lk。设在第k?1阶段的分层网络中,有从s到t的长为lk?1的路径。
P?se1?1e2??l?1elk?1
k?1(1)设P上的一切顶点在k阶段的分层网络上出现过,用Vj表示第k阶段分层网络上第j层的顶点集,下证若?i?Vj,则i?j。对i用归纳法证明之。
i?0时,命题“?i?Vj,则i?j”成立;假设?i?Vj,?i??0?s,V0??s?,?i?1?Vm,若m?j?1,由归纳假设?i?Vj时,i?j,得i?1?j?1?m。若m?j?1,而?i?1?Vm,又Vm与Vj不是邻层,这时不可能的。故只有i?1?m。
令i??l,t?Vl,故有lk?1?lk。下证等号不成立。若lk?1?lk,我们已假设P上的顶
k?1k点在k阶段的分层网络上出现过,路径上的边在k?1阶段的分层网络上用过,则在k阶段的分层网络上用过,且P整个在k阶段分层网络上,此与k阶段上得出过极大流矛盾。
(2)设P上有的顶点未在第k阶段分层网络上出现,令ei?1??i?i?1是对某个j,?i?Vj,?i?1是不再第k阶段分层网络上出现的第一个顶点,但ei?1是不再第k阶段分层网
络上出现的第一条边,则ei?1在第k阶段分层网络中未用过,ei?1在k?1阶段开始时有用,故在第k阶段开始时也有用,由求分层网络的过程知,Vj?1??t?,j?1?lk,于是
i?1?j,i?1?j?1?lk,又?i?1?t,故lk?1?i?1,所以lk?1?lk。证毕。
定理 9·5 网络N有可行流的充要条件是附加网络N上的最大流使流出S的一切边皆饱和(可行流即满足(C1?)(C2?)的流)
证 设N中的可行流f使s发出的边皆饱和,对于N,令 f(e)?f(e)?b(e),e?E 下证f(e)是N的可行流。
(i)b(e)?f(e)?c(e)
事实上,0?f(e)?c(e)?c(e)?b(e),e?E,所以f(e)满足(C1?)。
(ii) f(e)满足(C2?)。
令??V??s,t?,而??s?,???t是N中的边,由N中的f满足(C2?),得
?f(e)?f(?)??f(e)?f(?)
e??(?)e??(?)又 f(?)?c(?)? f(?)?c(?)?因此
?b(e)?f(?)
e??(?)?b(e)
e??(?)?f(e)??f(e)?0
e??(?)e??(?)即f(e)满足(C2?),故f(e)是可行流,反之f(e)是N的可行流。证毕。 定理 9·6
f是有供需约束的可行流,当且仅当对一切
X?VC(X)??(T?X)??(S?X)其中X?V?S,S是源集,T是汇集,C(X)为
。 (X,X)中边的容量和(即截量)
证 构作新网络N?: 增加两个新顶点s0,t0 (i)加边s0si,i?1,2,?,m,令c(so,si)??(si) (ii)
加边tj,t0,j?1,2,?,n,令c(tj,t0)?p(tj) (iii)(i?)令t0为N?的汇,s0为N?的源。
易证N有可行流的充要条件是N?中的有一个使(T,?t0?)中每边皆饱和的流。 今有N?中的流使(T,?t0?)中每边皆饱和,则其流量?(T)?C(T),此流是N?中的最大流,这说明N有可行流,当且仅当N?中的每个截
(?s0??X,?t0??X)成立 C(?s0??X)??(T) 等价于
C(X,X)??(T?X)??(S?X)??(T) 等价于
C(X,X)??(T?X)??(S?X) 证毕。
定理 9·6 有向图D存在有向巡回的充要条件是:D是强连通图。