最小割

\(G=(V,E)\) 是一个网络,有源点 \(s\) 和 汇点 \(t\)

  • 定义一个 \(C=(S,T)\)\(V\) 的一种划分使得 \(s\in S,t\in T\)\(C\)割集 \(A\) 是集合 \(\{(u,v)\in E:u\in S,v\in T\}\)割的大小 \(cut=\sum_{e\in A}f_e\)

  • 定义最小割为割的大小最小的割,最小割不唯一。

存在最大流 = 最小割

以下下标 \(_{min}\) 表示最小割。

  • 定义 \(\bigcup A_{min}\) 中的弧称为可行弧\(\bigcap A_{min}\) 中的弧称为必须弧

任意割集

  • 跑最大流,在残量网络上从 \(s\) 开始 bfs 所能到达的点属于 \(S\)

可行弧

  • 若残量网络上,不存在有向路径 \((u,v)\),则 \((u,v)\) 为可行弧。

考虑将 \((u,v)\) 割掉,原本的増广路 \((s,u,v,t)\) 替换 \((u,v)\) 段,仍是可行流。

必须弧

  • 若残量网络上,同时存在路径 \((s,u)\)\((v,t)\),则 \((u,v)\) 为必须弧。

先考虑 \((u,v)\) 满流,强制此弧不割,若此时最小割的大小变大,则是必须弧。可以将其流量设为 \(+\infty\),判断是否出现新的増广路。由于新的増广路一定经过 \((u,v)\),所以只需要考虑残量网络上是否存在路径 \((s,u)\)\((v,t)\) 即可。

非满流的弧显然不是必须弧,且一定不满足条件。

你可能感兴趣的:(最小割)