对于具有N
个节点及其邻接矩阵的给定无向图,假设至少有一组n
个节点,其中每个成员节点都是其他节点的一跳邻居。集合。 (n
<< N
)
在这种情况下,找到这样一组节点的算法是什么?
例如,这是a sample adjacency matrix (link: GitHub Gist)个42
个节点。并且已知存在其中3
个节点是彼此的一跳邻居的集合。那么,集合的构成是什么?
我的最终目标是使用约450
个节点执行此过程,以查找包含9
单跳邻居节点的集合。因此,我正在寻找一种可扩展且高效的解决方案。
答案 0 :(得分:1)
图中彼此相邻的一组节点称为 clique ,而finding the largest clique in a graph, or indeed whether any clique of a specified size even exists in the graph是典型的NP难问题。
一些NP难题,称为固定参数易处理(FPT)问题,即使对于大n也可以有效地解决,只要一些问题参数(除了大小)很小:这里明显的参数是大小的最大的集团。不幸的是,对于这个参数,Maximum Clique不是FPT,并且最着名的算法在n中是指数的。维基百科页面上提到了几个。当然,既然你已经知道一个给定大小的集团存在,你可能会很幸运,并通过启发式快速找到它。
请注意,格言 um (最大可能)和格言 al (无法成长)派系之间存在差异。