目前在做极大团与最大团的研究,故有兴趣一答。
1. 可否通过找出一个图中的所有极大团来找到最大团?
答:可以。但Maximal Clique Enumeration(MCE)和Maximum Clique(MC)问题都是NP难问题,时间复杂度和空间复杂度都很高。
2. 如今找一个图中最大团的最好算法是什么算法?
我目前看到的MC(Maximum Clique)的分支限界算法中,做的最好的是 李初民老师的 LMC算法。(Combining Efficient Preprocessing and Incremental MaxSAT Reasoning for MaxClique in Large Graphs) ,欢迎补充。
MC问题最重要的是缩减分支节点。李初民老师将MaxSAT的推理方法融入到MC问题中,效果显著,附上一张对比图:(参见:On Minimization of the Number of Branches in Branch-and-Bound Algorithms for MaxClique )
GetBranches_d0是没有经过MaxSAT推理的结果,仅用贪心染色优化 + ReNumber优化。GetBranches_d是加入了MaxSAT推理。可以看到分支节点数大幅度降低。
3. 是否有人熟悉networkx中find_cliques的实现?
当前找极大团的算法不少是基于Bron–Kerbosch Algorithm改进的。具体还要看document和代码。