我的问题
是否有一种有效的算法可以在完整的 k - 分段图中找到最大权重(或最小权重) k - clique(a顶点相邻的图,当且仅当它们属于根据wikipedia的不同的子集时?
有关条款的更多详情
最大重量集团:图表中的每条边都有一个重量。集团的权重是集团中所有边缘的权重之和。目标是找到一个具有最大权重的集团。
请注意,clique的大小为k,这是完整k-partite图中最大可能的clique大小。
我尝试了什么
我在项目中遇到了这个问题。由于我不是CS人,我不确定复杂性等。
我搜索了几篇相关论文,但没有一篇论文涉及同样的问题。我还编写了一个贪心算法+模拟退火处理它(结果似乎不好)。我也尝试过类似动态编程的东西(但它看起来效率不高)。所以我想知道是否可以有效地计算出精确的最优值。提前谢谢。
编辑由于我的输入可能非常大(例如每个集团中的顶点数量是2 ^ k),我希望找到一个非常快速的算法(例如k的多项式时间)找出最佳结果。如果不可能,我们能证明复杂性的下限吗?
答案 0 :(得分:4)
答案 1 :(得分:3)
加权图中的最大团体问题通常是难以处理的。在您的情况下,如果图形包含N个节点,您可以在N ** k时间内枚举所有可能的k-cliques。如果k是固定的(不知道是不是),你的问题很容易被多项式解,因为这是N中的多项式。如果k是一个自由参数,我不相信问题是易处理的,因为我不能看看k-partite图的假设如何使问题从普通问题中变得更加简单。
你的问题在实践中有多难取决于权重的分配方式。如果所有权重彼此非常接近,即“最佳”和“好”之间的差异相对较小,则问题非常困难。如果你的边缘有不同的权重,问题可能会更容易,因为贪婪的算法可以为你提供一个很好的“初始”解决方案,你可以使用这个和后续的好解决方案来限制你的组合搜索使用众所周知的分支 - 并且绑定方法。