• 一些简单的网络流模型


    一、最大权闭合图

    对于一个图(V, E)由点集V和有向边集E组成,每个点有一定权值,对于一个合法子集,若有一条有向边(u,v)并且u在子集中,则v也必须在子集中,求子集中所有元素权值和最大的子集

     

    分析:考虑每个点有两种状况,选和不选,所以考虑最小割,但是要求最大费用;

    先假设取了所有正权点,从原点向所有正权点连边,从所有负权点向汇点连边,容量为权值的绝对值,

    对于一个割[S,T](S内的点表示选择了的点),

    正权点在S内,表示选了这个点,与S相连的边没有被割,若在T内,表示这个点没选,此时权值应减去这条割边,

    同理,对于负权点,一开始没有选他,若在S内,则到T的连边被割,权值减去费用,若在T内,仍然没有被选,与T的连边没有被割,则权值不变

     

    考虑限制

    按照上面的方式选出来的S内的点在原图中是不能与T中的点有边的,换一种说法,与T中连边的代价是INF,那么对于原图中的有向边连一条起点终点相同容量为INF的边,若起点属于S终点属于T则这条边在割中,代价为INF,这样最小割中必然不包含这条边,也就是说,最小割分得的S集所在的点一定没有与T中的点的连边。

    实际上是很好理解这种一一对应关系的,严格的证明可以参见《最小割模型在信息学竞赛中的应用》——胡伯涛

     

    另外 为什么要说与T中连边的代价是INF呢?

    因为这里可以灵活一下,可以不是INF,比如bzoj1391 [Ceoi2008]order这道题把INF改成租借的费用就可以啦。

     

    二、二分图的最小点权覆盖集

    对于一个图(V, E)由点集V和无向边集E组成,每个点有一定权值,对于一个合法子集,若有一条无向边(u,v)则u,v至少有一个点在子集中,求子集中所有元素权值和最小的子集

    设二分图的两边为X和Y,并且下面提到的(u,v)u属于X,v属于y

    对于一条边(u,v),从s到u连一条容量为val(u)的边,从v到t连一条容量为val(v)的边对于一个割[S,T],从u到v也连一条边,由于割的性质是不存在一条从S到T的路径,所以这三条边至少有一条被割,我们不希望u到v的边在最小割中被割,所以给流量为INF

    若Y中的点在S内,则与T的连边必然被割(代表选了这个点),在T内则没有被割(代表没选这个点),

    若X中的点在T内,则与S的连边必然被割(代表选了这个点),在S内则没有被割(代表没选这个点)。

    将所有的X在T中的点和Y在S中的点选出来,一定是一个覆盖集,因为s->u和u->t两条边至少有一条被割

    那么最小割就是答案啦

     

    特别地,如果每个点权都是1的话,我们发现建的图和二分图最大匹配建的图是一样的,这也是二分图最大匹配数=最小点覆盖的原因。

     

    三、二分图最大权独立集

    容易证明每一个覆盖集的补集都是一个独立集,每个独立集的补集也是一个覆盖集,所以用总的权值减去最小覆盖集就行啦。。

    特别地,这也是为什么二分图最大匹配数=n-最大独立集的原因。

  • 相关阅读:
    软工结对第一次作业
    16061023-软件工程第1次作业
    OO最后一次总结
    OO第三次博客作业
    OO第二次博客作业
    OO第一次博客
    提问回顾与个人总结
    软件工程第一次阅读作业
    test个人博客
    软件工程结对作业
  • 原文地址:https://www.cnblogs.com/showson/p/5046436.html
Copyright © 2020-2023  润新知