完全k-partite图中的最大权重k-clique

时间:2013-06-18 11:47:50

标签: algorithm complexity-theory np-hard clique-problem

我的问题

是否有一种有效的算法可以在完整的 k - 分段图中找到最大权重(或最小权重) k - clique(a顶点相邻的图,当且仅当它们属于根据wikipedia的不同的子集时?

有关条款的更多详情

最大重量集团:图表中的每条边都有一个重量。集团的权重是集团中所有边缘的权重之和。目标是找到一个具有最大权重的集团。

请注意,clique的大小为k,这是完整k-partite图中最大可能的clique大小。

我尝试了什么

我在项目中遇到了这个问题。由于我不是CS人,我不确定复杂性等。

我搜索了几篇相关论文,但没有一篇论文涉及同样的问题。我还编写了一个贪心算法+模拟退火处理它(结果似乎不好)。我也尝试过类似动态编程的东西(但它看起来效率不高)。所以我想知道是否可以有效地计算出精确的最优值。提前谢谢。

编辑由于我的输入可能非常大(例如每个集团中的顶点数量是2 ^ k),我希望找到一个非常快速的算法(例如k的多项式时间)找出最佳结果。如果不可能,我们能证明复杂性的下限吗?

2 个答案:

答案 0 :(得分:4)

广义最大团问题(GMCP)

  • 我知道您正在寻找广义最大/最小团队问题(GMCP),其中找到具有最高分数或最低成本的团队是优化问题。
  • 此问题是一个NP-Hard问题,如Generalized network design problems所示,因此目前没有多项式时间可以解决您的问题。
  • 由于您的问题没有已知的多项式解决方案,因此您有两个选择。减少问题的大小以找到确切的解决方案或通过放松您的问题找到估计的解决方案,它会导致您对最优解决方案的估计。

小问题规模的示例和解决方案

  • 在小k-partite图中(在我们的例子中k为30且每个partite有92个节点),我们能够通过重分支和边界算法在合理的时间内得到最优解。我们已将问题转换为另一个NP难问题(混合整数规划),减少了整数变量的数量,并使用IBM Cplex优化器找到GMCP的最佳解决方案。
  • 您可以找到我们的project page和纸张有用。我也可以与你分享代码。

如何估算解决方案

  • 对这个NP-Hard问题的直接前瞻性估计是放宽混合整数规划问题并将其解决为线性规划问题。当然,它会给你一个解决方案的估计,但你仍然可以在实践中得到一个合理的答案。

更一般的问题(广义最大多重群问题)

  • 在另一项工作中,我们解决了广义最大多重群问题(GMMCP),其中最大化得分或最小化在完整的k-分段图中选择多个k-cliques的成本是感兴趣的。您可以通过搜索GMMCP跟踪找到project page

答案 1 :(得分:3)

加权图中的最大团体问题通常是难以处理的。在您的情况下,如果图形包含N个节点,您可以在N ** k时间内枚举所有可能的k-cliques。如果k是固定的(不知道是不是),你的问题很容易被多项式解,因为这是N中的多项式。如果k是一个自由参数,我不相信问题是易处理的,因为我不能看看k-partite图的假设如何使问题从普通问题中变得更加简单。

你的问题在实践中有多难取决于权重的分配方式。如果所有权重彼此非常接近,即“最佳”和“好”之间的差异相对较小,则问题非常困难。如果你的边缘有不同的权重,问题可能会更容易,因为贪婪的算法可以为你提供一个很好的“初始”解决方案,你可以使用这个和后续的好解决方案来限制你的组合搜索使用众所周知的分支 - 并且绑定方法。