无向图的最大团/最大独立集 算法总结
目录
- 概述
- 普通DFS
- Bron-Kerbosch算法
概述
最大团其实就是最大完全子图的点集,同理极大团也就是极大完全子图的点集,点集内所有的点两两之间都有边相连。
定义 (维基百科):
在图论领域的一个无向图中,满足两两之间有边连接的顶点的集合,被称为该无向图的团。
最大独立集其实就是补图的最大团,因为和最大团相反,最大独立集合内的点两两之间都没有边相连。
定义(维基百科):
一个独立集(也称为稳定集)是一个图中一些两两不相邻的顶点的集合。
普通DFS
该方法很简单粗暴,就是一个个节点尝试。维护一个当前团,每个节点都有两种状态(在当前团中或不在当前团中),如果无法再往里加节点了的话,那么当前团就成为了一个极大团,这样找到所有的极大团并作出比较取舍即可得到最大团。但是这样的时间复杂度达到了O( 2 n 2^n 2n

本文总结了无向图的最大团和最大独立集的算法,包括普通DFS和Bron-Kerbosch算法。普通DFS通过节点尝试和剪枝操作寻找最大团,但时间复杂度较高。Bron-Kerbosch算法利用DFS搜索,通过all、some、none集合进行优化,避免重复检查,其时间复杂度在最优情况下为O(3^(n/3))。
最低0.47元/天 解锁文章
1919

被折叠的 条评论
为什么被折叠?



