最大团和极大团不一样,该算法应该是极大团算法
Bron-Kerbosch算法
Input: The graph G
Output: the set of all maximal cliques: C
1: Initialize C and two vertex sets R, X with ∅
2: Define P ← the node set of G
3: function BRONKER(R, P, X):
4: if P = ∅ & X= ∅
5: then Add R to C
6: end if
7: for v ∈ P do
8: Define N(v) ← the neighbor set of v
9: BRONKER( R ∪ v, P ∩ N(v), X ∩ N(v))
10: P ← P \ v
11: X ← X ∪ v
12: end for
13: end function
14: BRONKER(R, P, X)
15: return C
算法的原理:
R是一个团,不断查找这个团中元素共同的邻居,形成一个极大团。而P则是R中元素的共同邻居集合,所以P中的每一个元素 v 都符合条件可以扩充R的团,对于P中的每一个元素 v ,将其加入R,则扩充后的团的共同邻居集合需要更新,需要找出R和 v 共同的邻居,即原始团R的共同邻居集合P和扩充该团的元素 v 的邻居集的交集。
在包含 v 的极大团被搜索之后,就将 v 从P中去掉,否则可能在后续搜索 v 的邻居节点 v' 的时候,又将包含 v 的极大团整了一遍。集合X中的元素a就是表示团R的共同邻居中,a的团已经搜索过了。P为空时,则X也为空
原文链接: https://www.cnblogs.com/lxzbky/p/15972113.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/399917
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!