图算法?

时间:2016-09-07 20:01:18

标签: algorithm graph graph-theory graph-algorithm

如果我想确定图形是否可以分组为两个子图形,每个子图形中每个节点都连接到每个其他节点,那么最有效的方法是什么。例如,图像中的图形可以分组分别由4个节点和5个节点组成的两个子图,其中每个子图中每个节点连接到每个其他节点。假设给出了一个图表,我将检查上述事实是否成立,最有效的方法或算法是什么。enter image description here

1 个答案:

答案 0 :(得分:4)

这被称为clique problemclique是顶点的子集,使得子集中的每两个顶点在原始图中连接(即,它们形成完整的子图)。您要求的算法列出了所有最大派系(不属于较大派系的派系)。有各种算法。通常使用的是Bron-Kerbosch algorithm。它的运行时间最差为O(3 n / 3 ),其中 n 是图中顶点的数量。< / p>

如果您的图表具有特殊结构(例如,平面,您的示例不是),则其他算法可能适用。

编辑:实际上,如果你的决定问题是图表是否可以被分成两个派系,那么就会有一个更有效的算法,如this thread中所描述的那样(然后它会成为你问题的副本)。