【学习笔记】二分图及相关应用

声明:本博客所有随笔都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。

1.匹配

对于二分图有一个非常重要的判定:两个点集是独立的,即点集内部没有边相连

还有一些定义:

极大匹配:指在当前已完成的匹配下,无法再通过增加未完成匹配的边的方式来增加匹配的边数

最大匹配:所有极大匹配当中边数最大的一个匹配

完全匹配:(完备匹配):一个匹配中,图中的每个顶点都和图中某条边相关联

(以上定义均来自百度百科;\(by \ the \ way \ ,\) 我以前总认为百度百科的定义太生涩难懂了,就按照自己的理解去记忆,但是越往后面学,内容细节越来越繁多,自己的记忆就会出现知识点混乱等情况,而百度百科的定义是最严谨的,所以我觉得还是非常有必要了解百度百科的定义)

而我们所说的“二分图匹配”一般指“最大匹配”

最大匹配的一个基本算法——匈牙利算法,推荐一篇较好理解的博客,这里就不过多介绍了

2.最小点覆盖 \(=\) 最大匹配

一些定义

点覆盖:对于图 \(G=(V,E)\) 中的一个点覆盖是一个集合 \(S⊆V\) 使得每一条边至少有一个端点在 \(S\) 中。

最小点覆盖:就是中点的个数最少的S集合。普通图的最小点覆盖数只能用搜索解。

简单证明

\(1.\)合法的 若除去最大匹配选择的那些边,还有一条边的端点未被任意一条在匹配中的边覆盖,那这条边就会被加进最大匹配;所以最大匹配时不存在有一条边的两个端点都未被选中,及所有边都至少有一个端点在 \(S\)
\(2.\)最少的 因为此时任意删去一条边,都会导致某一条边出现两个端点都不被覆盖的情况,所以是最少的

3.最大独立集 \(=\) 点数\(n\) \(-\) 最小点覆盖 \(=\) 点数\(n\) \(-\) 最大匹配

定义

在N个点的图G中选出m个点,使这m个点两两之间没有边的点中,m的最大值。

(这里要看清楚是两两之间没有边相连,而不是两两之间不连通)

简单证明

\(1.\)合法的 去掉了最小点覆盖中所有选择的点之后,剩下来所有的点,它们所连接的边全部被删除,即剩下的点间全部没有边相连
\(2.\)最少的 在点覆盖合法的情况下取了最少,再在前面添一个负号,即独立集取了最大

4.DAG的不可重点最小路径覆盖 \(=\) 点数\(n\) \(-\) 最大匹配

定义

找出最小的路径条数,使之成为 \(P\) 的一个路径覆盖,且每个点被且仅被一条路径覆盖

(看清楚是路径而不是边)

简单证明

假设最初状态为,每个点向自己这个点连的一条边,一共 \(n\)

然后开始扩展成路径,即每个点上的那条边尽可能的去和别的路径合并,每通过一条匹配边和另一条路径合并后,答案数就减一

所以答案等于 \(n \ -\) 最大匹配

5.DAG的可重点最小路径覆盖

定义

找出最小的路径条数,使之成为 \(P\) 的一个路径覆盖,且每个点至少被一条路径覆盖

结论&简单证明

我们把所有间接能到的点对,全部添一条直接到达的路径,相当于把中间所有的点打包,到时候遇到重复的就直接一次性越过(通过那条新连的边),然后再按照上面做不可重点即可

添一条路径很简单,直接 \(Floyd\)

F(i, 1, n)
    F(j, 1, n)
        F(k, 1, n)
            if(mp[i][k] && mp[k][j])
                mp[i][j] = 1;

6.无向图的最大团 \(=\) 补图的最大独立集

定义

完全图:完全图是一个简单的无向图,其中每对不同的顶点之间都恰连有一条边相连

最大团:在一个无向图中找出一个点数最多的完全图

简单证明

其实很简单,补图的最大独立集中所有的点两两之间都没有边,放到原图里来两两之间就都有边了,\(over\)

猜你喜欢

转载自www.cnblogs.com/Bn_ff/p/12384868.html
今日推荐