这个最大clique多项式时间方法的缺陷?

时间:2014-03-25 17:02:21

标签: algorithm optimization clique-problem

我一直试图通过下面提到的算法解决最大团队问题,到目前为止还没能找到失败的情况。
算法:
对于给定的图,每个节点编号从1到N. 1.将节点视为永久节点并形成一组节点,使每个节点连接到该永久节点。(该集合还包括永久节点)
2.现在形成原始图形的子图,使其包含所形成的集合中的所有节点,并且仅包含集合中存在的节点之间的那些边。 3.找出每个节点的度数 如果所有节点都有相同的学位,那么我们就有了一个集团 5.否则从该子图中删除最小度数节点,并从步骤3开始重复 6.对图中的所有节点重复步骤1-5 任何人都可以指出这个算法的缺陷吗?  这是我的代码http://pastebin.com/tN149P9m

2 个答案:

答案 0 :(得分:6)

这是一系列反例。从k-clique开始。对于该集团中的每个节点,将其连接到K_ {k-1,k-1}的新副本的每个节点,即k-1加k-1个节点上的完整二分图。对于集团中的每个永久节点,残差图是其K_ {k-1,k-1}和集团的副本。 K_ {k-1,k-1}中的节点具有度k,而其他clique节点具有度k-1,因此后者被删除。

这是一个16节点的反例,通过设置k = 4并识别环中K_ {3,3}的部分来获得:

{0: {1, 2, 3, 4, 5, 6, 7, 8, 9},
 1: {0, 2, 3, 7, 8, 9, 10, 11, 12},
 2: {0, 1, 3, 10, 11, 12, 13, 14, 15},
 3: {0, 1, 2, 4, 5, 6, 13, 14, 15},
 4: {0, 3, 7, 8, 9, 13, 14, 15},
 5: {0, 3, 7, 8, 9, 13, 14, 15},
 6: {0, 3, 7, 8, 9, 13, 14, 15},
 7: {0, 1, 4, 5, 6, 10, 11, 12},
 8: {0, 1, 4, 5, 6, 10, 11, 12},
 9: {0, 1, 4, 5, 6, 10, 11, 12},
 10: {1, 2, 7, 8, 9, 13, 14, 15},
 11: {1, 2, 7, 8, 9, 13, 14, 15},
 12: {1, 2, 7, 8, 9, 13, 14, 15},
 13: {2, 3, 4, 5, 6, 10, 11, 12},
 14: {2, 3, 4, 5, 6, 10, 11, 12},
 15: {2, 3, 4, 5, 6, 10, 11, 12}}

答案 1 :(得分:3)

你的建议看起来非常像下面的排序算法和贪婪的集团搜索:

考虑一个简单的无向图G =(V,E)

初始排序

选择具有最小度数的顶点并将其放置在新列表L中。从剩余顶点中选择具有最小度数的顶点并将其置于L中的第二个位置。重复操作直到V中的所有顶点都在L中。

贪婪地找到派系

从L中的最后一个顶点开始,然后以反向顺序移动。对于L计算派系中的每个顶点 v ,如下所示:

  1. 将v添加到新clique C
  2. 在L:N(v)
  3. 中计算v的邻居集
  4. 在N(v)
  5. 中选择最后顶点
  6. V =瓦特; L = L与N(v)的交点;
  7. 重复步骤1至4
  8. 实际上,建议的初始排序称为简并排序,并在k核中分解G(参见Batagelj et al. 2002)k核是一个最大子图,使得它的所有顶点至少具有 k < / em>的。最初的排序最后会留下最高的核心(最大的 k )。当以相反的顺序拾取顶点时,您首先在最高核心中拾取顶点(类似于您的步骤4)并尝试在那里找到派系。有许多其他的可能性可以根据k核心贪婪地找到派系,但除非你进行全面的枚举,否则你永远无法保证最佳。

    例如,在搜索确切的最大集团时使用建议的初始排序,并且已在许多研究论文中进行了描述,例如[Carraghan and Pardalos 90]