码迷,mamicode.com
首页 > 其他好文 > 详细

最小割

时间:2020-01-30 23:22:19      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:math   最小割   出现   bfs   cup   同时存在   inf   必须   最大   

\(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)\) 即可。

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

最小割

标签:math   最小割   出现   bfs   cup   同时存在   inf   必须   最大   

原文地址:https://www.cnblogs.com/Ryedii-blog/p/12244002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!