[笔记] 最大权闭合子图&&最大流最小割相关笔记

最大权闭合子图

对于最大权闭合子图的理论学习并且补充一部分网络流的笔记

  • 有向图中若干个点组成的一个集合\(V\),集合\(V\)的所有出边所连的点也都属于\(V\),这些点构成的图即为闭合子图
  • 点有点权,最大权闭合子图即为权值和最大的闭合子图

Solution

建图

  • 建立超级源点\(s,t\)
  • \(s\)向所有点权为正的点连一条容量为其权值的弧
  • 所有点权为负的点向\(t\)连一条容量为其权值绝对值的弧
  • 对于原图中的所有有向边,均在网络中连一条对应的且容量为正无穷的弧

答案

  • 正权点的点权和-最大流
  • ……为什么啊?

概念

  • 割:删除一个集合中的所有弧,\(s,t\)不连通,则该集合为一个割

  • 最小割:所有割中,容量和最小的一个

  • 简单割:割中的每条弧都与\(s\)\(t\)直接相连

  • 最小割最大流定理:最大流 = 最小割

    • 大概口胡一下:

    • 任意一个流都小于等于任意一个割

      \(s\)\(t\)的流量不会凭空消失,从\(s\)流出多少,就进入到\(t\)多少。所以任意一个割,所流过的流量都相等。并且由于容量限制,流量小于等于容量,所以任意一个流都会小于等于任意一个割

    • 对于任意一个割,恒大于等于任意流。则等价于任意割大于等于最大流。因为只要比最大流还大,那么一定比其他的流还大。并且可以知道,如果存在一个割可以等于最大流,那么一定就是最小割。

      存在一个割=最大流。计算最大流,在残余网络中,构造两个点集\(S,T\)\(S\)中的点与\(s\)相连通,\(T\)中的点与\(t\)相连通。并且可以知道,\(S\)\(T\)相连的弧一定都是满流,否则可以继续增广。那么这些弧的容量=流量,它们构成的割=流量,而此时流量为最大流。

证明

  • 闭合图中最小割是简单割
    • 由于和\(s,t\)无关的弧都是\(+\infty\),我们不会去选它们作为割
    • 我们只会去割一割那些与\(s,t\)相连的弧
    • 所以闭合图中,最小割是简单割
  • 简单割对应了一个闭合子图
    • 一个简单割将网络分为\(S,T\)两个点集,\(S\)中的点与\(s\)相连通,\(T\)中的点与\(t\)相连通
    • 其中\(S\)是一个闭合子图
      • 证明:由于我们不会去割那些容量为\(+ \infty\)的弧,所以原图中的弧都完好无损。
      • 引理:若结点\(u\)属于一个闭合子图,则其出边所指向的结点\(v\)也属于闭合子图
      • 原图中的弧都在,并且\(S\)中的点不会连到\(T\),所以其所有的出边都连在了\(S\)
      • 那么这就是一个闭合子图
  • \(W\)表示某个简单割对应的闭合子图的权值
  • \(S_+\)表示\(S\)中的正权点权值之和,\(S_-\)表示\(S\)中的负权点权值之和
  • \(T_+\)表示\(T\)中的正权点权值之和,\(T_-\)表示\(T\)中的负权点权值之和
  • 则:\(W = S_+ + S_- = S_+ - |S_-|\)
  • \(C\)表示某个简单割的大小
  • 则:\(C = |S_-| + |T_+|\)
    • 这里解释一下,因为负权点与\(t\)有一条容量为其点权绝对值的弧,而它又属于\(S\),所以它与\(t\)相连的弧被割了
  • \(W + C = S_+ - |S_-| + |S_-| + T_+ = S_+ + T_+\)

    扫描二维码关注公众号,回复: 5138054 查看本文章
  • 所以:\(W = S_+ + T_+ - C\)

  • 你会发现前两项其实就是所有正权点的点权和。我们要求出最大权闭合子图,即让\(W\)最大,也就是让\(C\)最小,则\(C\)就需要等于最小割,也等于最大流。

综上所述,最大权闭合子图 = 正权点权值和 - 最大流(最小割)

猜你喜欢

转载自www.cnblogs.com/Neworld2002/p/10344525.html
今日推荐