• 最大权闭合 图 讲解


    详见  国家集训队 论文 2007  胡伯涛
    《最小割模型在信息学竞赛中的应用》

    首先说几个我看时疑惑的问题

     

    1:为什么 割里面的点集就是闭合 图 ?

    答:由于 我们见图时,将原图的 边的容量  变为 了 inf,而  割 是 不回 包含这些边的 ,他只能是 个  s或 t相连的   所以 ,我们 割里面的边 ,要么 是有 s  点出发  到的 本节点 ,要么 是 本节点  到达  t  节 的 边,而  s 和 t 是我们 虚拟的点 ,不会有其他的边所以  ,是一个  闭合图 。

    2: 如何  将 最大权 闭合图 中的 点  输出  ?

       首先我们 知道  ,我们选的最小割的 割边 是 满边 ,所以 根据 残留网络的 容量 见图  分成了 

       S  和  T

        dfs  即可 ,因为 最大权闭合图 = 最小割的(S - {s})的割集 ,按 从 s  点开始   按  容量  》 0  dfs  即可 。

    首先我们由一道题来引入,见 [线性规划与网络流24题 2] 太空飞行计划问题 。

    这道题中,实验依赖于仪器,而实验和仪器都有权值,且仪器为负,实验为正。

    这里闭合图的概念就很好引出了。在一个图中,我们选取一些点构成集合,记为V,且集合中的出边(即集合中的点的向外连出的弧),所指向的终点(弧头)也在V中,则我们称V为闭合图。最大权闭合图即在所有闭合图中,集合中点的权值之和最大的V,我们称V为最大权闭合图。

    上图中闭合图有

         {5}、{2,5}、{4,5}

         {2,4,5}、{3,4,5}

         {1,2,3,4,5}、{1,2,4,5}

    最大权闭合图为{3,4,5}。

    针对本题而言,我们将实验与仪器间连一条有向边,实验为起点(弧尾),仪器为终点(弧头)。则如果我们选择一个闭合图,那么这个闭合图中包含的实验所需要的仪器也最这个闭合图里。而最大权闭合图即为题目的解。

    了解了最大权闭合图的概念,接下来我们就需要知道如何求最大权闭合图。

    首先我们将其转化为一个网络(现在不要问为什么,接下来会证明用网络可以求解)。构造一个源点S,汇点T。我们将S与所有权值为正的点连一条容量为其权值的边,将所有权值为负的点与T连一条容量为其权值的绝对值的边,原来的边将其容量定为正无穷。

    上图即被转化为如左图网络。

    首先引入结论,最小割所产生的两个集合中,其源点S所在集合(除去S)为最大权闭合图,接下来我们来说明一些结论。

    • 证明:最小割为简单割。

            引入一下简单割的概念:割集的每条边都与S或T关联。(请下面阅读时一定分清最小割与简单割,容易混淆)

            那么为什么最小割是简单割呢?因为除S和T之外的点间的边的容量是正无穷,最小割的容量不可能为正无穷。所以,得证。

    • 证明网络中的简单割与原图中闭合图存在一一对应的关系。(即所有闭合图都是简单割,简单割也必定是一个闭合图)。

            证明闭合图是简单割:如果闭合图不是简单割(反证法)。那么说明有一条边是容量为正无穷的边,则说明闭合图中有一条出边的终点不在闭合图中,矛盾。

            证明简单割是闭合图:因为简单割不含正无穷的边,所以不含有连向另一个集合(除T)的点,所以其出边的终点都在简单割中,满足闭合图定义。得正。

    • 证明最小割所产生的两个集合中,其源点S所在集合(除去S)为最大权闭合图。

            首先我们记一个简单割的容量为C,且S所在集合为N,T所在集合为M。

            则C=M中所有权值为正的点的权值(即S与M中点相连的边的容量)+N中所有权值为负的点权值的绝对值(即N中点与T中点相连边的容量)。记(C=x1+y1);(很好理解,不理解画一个图或想象一下就明白了)。

            我们记N这个闭合图的权值和为W。

            则W=N中权值为正的点的权值-N中权值为负的点的权值的绝对值。记(W=x2-y2);

            则W+C=x1+y1+x2-y2。

            因为明显y1=y2,所以W+C=x1+x2;

            x1为M中所有权值为正的点的权值,x2为N中权值为正的点的权值。

            所以x1+x2=所有权值为正的点的权值之和(记为TOT).

            所以我们得到W+C=TOT.整理一下W=TOT-C.

            到这里我们就得到了闭合图的权值与简单割的容量的关系。

            因为TOT为定值,所以我们欲使W最大,即C最小,即此时这个简单割为最小割,此时闭合图为其源点S所在集合(除去S)。得正。

    至此,我们就将最大权闭合图问题转化为了求最小割的问题。求最小割用最小割容量=最大流,即可将问题转化为求最大流的问题。

     
  • 相关阅读:
    namespaces in C++
    cout如何刷新缓冲区
    Journey CodeForces 1336F[data structures divide and conquer graphs trees]
    using ll=long long;
    Kaavi and Magic Spell CodeForces 1337E【dp strings】
    摸个🐟
    gcc的几个有用的处理二进制位的内置函数
    Yui and Mahjong Set CodeForces 1337F 【interactive】交互式题
    C++ auto 的使用
    2005年微软十大安全漏洞 java程序员
  • 原文地址:https://www.cnblogs.com/acSzz/p/2752354.html
Copyright © 2020-2023  润新知