zoukankan      html  css  js  c++  java
  • 【转】最大权闭合图

    转自:http://www.cnblogs.com/wuyiqi/archive/2012/03/12/2391960.html

    性质:

    最大权闭合图的权值=原图中权值为正的点的和-最小割;

    闭合图:在一个图中,我们选取一些点构成集合,记为V,且集合中的出边(即集合中的点的向外连出的弧),所指向的终点(弧头)也在V中,则我们称V为闭合图。

    最大权闭合图:即在所有闭合图中,集合中点的权值之和最大的V,我们称V为最大权闭合图。

    建图后的网络的简单割不含原图G边集的任意一条边,又简单割必须和s或t相连。闭合图与简单割一一对应。取到最小割时,图G闭合图取到最大权。(权是图的,割是网络的)

    上图中闭合图有

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

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

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

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

    在许多实际应用中,给出的有向图常常是一个有向无环图(DAG) ,闭合图的性质恰好反
    映了事件间的 必要条件的关系:一个事件的发生,它所需要的所有前提也都要发生。一个常
    见的例子就是制定大学的选课计划,其中一些课程需要以另一些课程为基础,这就是给出了
    有向无环图。若给所有课程打分,最大权闭合图对应了获益最大或效率最高的选课计划,解
    决了这个问题,就可以容易地选出一个最合理的选课计划。

    在另外一些实际应用中,给出的是一个一般有向图,即有可能出现圈。常见的例子就是
    工程分期,一个工程可能含有很多项目,项目之间也有依赖关系。有些项目是需要同期一起
    开发, 互相依赖的(即出现圈) 。这样,也可以利用最大权闭合图,将最先应该完成的项目选
    出来作为工程的第一期。

    下面给出将原问题的图 G 转化为网络N = (Vn ,En )的方法,从而转化为最小割模型。

    在原图点集的基础上增加源 和汇 t ;将原图每条有向边容量为无穷,设立源点s向图中正权值的点连边,容量为该点的值,

    设立汇点t,图G中权值为负的点向t连边,权值为该点值得绝对值。

    上图转变成网络N。

    定义:若一个s-t割满足割中的每条边只与源或汇点关联,称该割为简单割。
    s-t割满足割中的每条边只都与源 或汇 关联,称该割为简单割。根据定义网络N中的简单割不包含图G中的任一边(因为不相连)。

    1. 在本问题的网络 中,最小割是简单割。

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

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

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

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

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

     则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.(c表示简单割)。

    TOT为定值,所以c为最小割的时候w最大。

     

  • 相关阅读:
    JS定义一个立即执行的可重用函数
    Git常用命令速记与入门
    设计的一些kubernetes面试题
    运维知识各种链接
    php7.2安装smbclient扩展
    logrotate自定义切割时间的一些坑
    【转】日志收集工具scribe
    ELK日志报警插件ElastAlert并配置钉钉报警
    consul-server集群搭建
    加油,骚年
  • 原文地址:https://www.cnblogs.com/sweat123/p/4912736.html
Copyright © 2011-2022 走看看