zoukankan      html  css  js  c++  java
  • 最大权闭合 图 讲解

    详见  国家集训队 论文 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)。得正。

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

     
  • 相关阅读:
    智能移动机器人背后蕴含的技术——激光雷达
    Kalman Filters
    Fiddler抓HttpClient的包
    VSCode开发WebApi EFCore的坑
    WPF之小米Logo超圆角的实现
    windows react打包发布
    jenkins in docker踩坑汇总
    Using ML.NET in Jupyter notebooks 在jupyter notebook中使用ML.NET ——No design time or full build available
    【Linux知识点】CentOS7 更换阿里云源
    【Golang 报错】exec gcc executable file not found in %PATH%
  • 原文地址:https://www.cnblogs.com/acSzz/p/2752354.html
Copyright © 2011-2022 走看看