最大流最小割定理证明

对于单源单汇网络, 最大流等于最小割 。网络的一个割是指对于这个网络的点的划分, 划分成两个集合 \(S,T\),要保证源点属于 \(S\), 汇点属于 \(T\), 其价值定义为 \(\sum\limits_{u\in S, v\in T,(u,v)\in E}c(u,v)\) , 其中 \(c\) 是容量。最小割是价值最小。

证明

首先显然地, 对于网络的任意一个可行流 \(f\) 和其任意一个割 \((S,T)\), 都有 \(f(s,t) = \color{red}{\sum\limits_{u\in S, v\in T,(u,v)\in E}f(u,v)} \color{black}{-} \color{blue}{\sum\limits_{u\in T, v\in S,(u,v)\in E}f(u,v)}\)

这个东西是小于等于 \(\sum\limits_{u\in S, v\in T,(u,v)\in E}c(u,v)\) 的, 所以 最大流小于等于最小割

将网路跑出最大流后,可以构造出一个割:把 \(s\) 能通过残量网络到的点集设为 \(S\),其余设为 \(T\), 作为割 \((S,T)\), 从 \(S\)\(T\) 的边必然满流, 从 \(T\)\(S\) 的边必然 0 流, 所以这个割的价值就是最大流的流量, 而这个割显然就是最小割。

关于从 \(T\)\(S\) 的边必然 0 流:也就是一条边 \(f(u\in T,v\in S)>0\),这意味着它的对称边 \(f(v,u)=-f(u,v)\), 由于 \(c(v,u)=0\), 所以边 \((v,u)\) 的残量其实是 \(f(u,v)\), 所以可以推出 \(v\notin T\), 与定义相悖。

posted @ 2020-12-09 15:24  xwmwr  阅读(730)  评论(0编辑  收藏  举报