zoukankan      html  css  js  c++  java
  • 最小点权覆盖和最大点权独立集

    最小点权覆盖和最大点权独立集

    •参考资料

    [1]最小点权覆盖与最大点权独立集

    •二分图

    定义: 二分图又称作二部图,是图论中的一种特殊模型。 设$G=(V,E)$是一个无向图,如果顶点$V$可分割为两个互不相交的子集$(A,B)$,并且图中的每条边$(i,j)$所关联的两个顶点i和j分别属于这两个不同的顶点集$(i in A,j in B)$,则称图G为一个二分图。

    给定一个二分图 $G$,在$G$的一个子图$M$中,$M$的边集中的任意两条边都不依附于同一个顶点,则称$M$是一个匹配。

    二分图最小点覆盖和最大独立集都可以转化为最大匹配求解。在这个基础上,把每个点赋予一个非负的权值,这两个问题就转化为:二分图最小点权覆盖和二分图最大点权独立集。

    •最小点权覆盖

    定义

    从$U$或者$V$合中选取一些点,使这些点覆盖所有的边,并且选出来的点的权值尽可能小。

    建模

    1、先对图二分染色,对于每条边两端点的颜色不同,分成U,V点集
    2、然后建立源点S,向其中一种颜色的点连一条容量为该点权值的边
    3、建立汇点T,由另一种颜色的点向T连一条容量为该点权值的边
    4、对于二分图中原有的边,改为由与S相连的点连向与T相连的点的一条容量为INF的边跑一遍最大流,其结果就是最小点权和。

    •最大点权独立集

    定义

    在二分图中找到权值和最大的点集,使得它们之间两两没有边。(其实它是最小点权覆盖的对偶问题)

    建模

    先求一次最小点权覆盖集,再用总权值减去它,就得到了最大点权独立集。

    即 答案=总权值-最小点覆盖集。具体证明参考胡波涛《最小割模型在信息学竞赛中的应用》

  • 相关阅读:
    Enumerable类
    富客户端
    Entity Framework
    使用C库函数写文件出错
    VC 打开目录 打开上次打开目录
    boost_1_45_0安装
    boost中bimap双向映射的初级学习
    VS2008安装失败
    最近使用文档, 最近保存文档, 最近运行记录
    IE升级为8.0后, VS2008出现Internet Explorer脚本错误对话框
  • 原文地址:https://www.cnblogs.com/MMMinoz/p/11646502.html
Copyright © 2011-2022 走看看