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

本文介绍了图论中的最小权点覆盖和最大权独立集的概念,以及它们在二分图中的应用。通过匈牙利算法和最小割原理,阐述了两者之间的关系和求解策略。具体包括如何构建图以求解最小权点覆盖,以及如何通过最小权点覆盖找到最大权独立集。此外,还探讨了简单割与点覆盖集的对应关系及其证明方法。
摘要由CSDN通过智能技术生成

一、概念

最小权点覆盖:
选出图中的一些点构成一个点集,使得该点集内的点可以覆盖原图中所有边,覆盖是指对于任意一条边,其两端的端点至少有一个是被选中的。那么对于每个点我们给他一个权值,所有点覆盖集中,总权值和最小的一个就是所说的最小权点覆盖集。

最大权独立集:
独立集是和点覆盖集对偶的一个概念,独立集是指一个点集,点集中任意两点之间是不存在边的,也就是点和点之间相独立,并不相连。而在所有独立集中,总点权最大的一个就是最大权独立集。

这两种概念适用于任何图,但是本问题只考虑如何求解二分图上的最小权点覆盖与最大全独立集。


  • 学过匈牙利算法应该知道:
    最 大 匹 配 数 = 最 小 点 覆 盖 = n − 最 大 独 立 集 最大匹配数=最小点覆盖=n-最大独立集 ==n
    匈牙利解决的是所有点点权为 1 1 1是的情况。算是本问题的一个特殊情况。

  • 在这个问题里也有类似的关系:
    最 小 割 = 最 小 权 点 覆 盖 = 点 权 和 − 最 大 权 独 立 集 最小割=最小权点覆盖=点权和-最大权独立集 ==


二、最小权点覆盖求法

2.1 建图方法

设二分图的两个点集分别是 V 1 , V 2 V_1,V_2 V1,V2
(1)从源点 s s s向点集 V 1 V_1 V1内的点连接容量是该点点权的边
(2)从点集 V 2 V_2 V2内的点向汇点 t t t连接容量是该点点权的边
(3)点集 V 1 , V 2 V_1,V_2 V1,V2之间的边的容量都建成 + ∞ +\infty +

在这里插入图片描述

2.2 证明简单割与点覆盖集的对应关系

定义一个简单割的概念:
割边不包含容量是 + ∞ +\infty +的边的割就是一个简单割。
最小割一定是一个简单割。

  • 简单割 [ S , T ] → [S,T] \to [S,T] 原图的点覆盖集
    对于该简单割,我们把所有与简单割的割边有关联的点(如果割边在左边,则选割边的终点,在右边则选割边的起点)都选上构成一个点集,可以证明,该点集一定是一个点覆盖集。
    可以利用反证法:
    假设对于原图中的一条边,其两边的点都没有被选上,那么很容易发现此时源点 s s s与汇点 t t t就联通了,此时它就不是一个割,矛盾了。

  • 原图的点覆盖集 → \to 简单割 [ S , T ] [S,T] [S,T]
    按上面的过程逆着来,肯定可以构成出来一个简单割 [ S , T ] [S,T] [S,T]

同时也可以发现,简单割对应的容量就是其对应的点覆盖集的点权和。
所以, 最 小 割 = 最 小 权 点 覆 盖 最小割=最小权点覆盖 =


三、最大权独立集求法

对于一个图,设点集 V 1 V_1 V1是它的一个点覆盖集,剩下的不属于 V 1 V_1 V1的点构成一个点集 V 2 V_2 V2,可以发现 V 2 V_2 V2一定是一个独立集。因为剩下的点之间一定是没有边的判;否则,如果某两个点之间有边,点集 V 1 V_1 V1就是不是一个点覆盖集了,因为这两个点之间的边就没有被覆盖。

所以,要求最大权点覆盖,可以先求出来最小权独立集,剩下的就是最大权点覆盖了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值