如何将连通加权图划分为N个半平等子图

时间:2015-11-18 14:16:16

标签: algorithm graph graph-theory

我有一百个节点的图表,这些节点主要是相互连接的。我可以对整个图表进行处理但是它确实需要花费很多时间,因此我想将其划分为大小相近的较小子图。

换句话说。我有一组航拍图像,我在所有这些图像上进行成对图像匹配。结果,我得到每对的一组匹配(第一图像的像素与第二图像上的像素匹配)。匹配数被视为此(无向)边的权重。然后这些边形成上面提到的图形。

我对图论并不熟悉(因为它是一个非常广泛的话题)。 这项工作的最佳算法是什么?

谢谢。

修改: 这个问题有一个完美的类比,我认为更容易理解。想象一下,你有一群人和他们的联系/友谊,就像我的社交网络。每个友谊都有一个数值/权重,表示他们是多么好的朋友。因此,在一大群人中,我希望得到k大多数互连的子群。

1 个答案:

答案 0 :(得分:1)

不幸的是,你所描述的问题几乎肯定是NP难的。从图表的角度来看,您有一个图表,其中每条边都有一个权重。你试图将图形分成相对相等的部分,同时削减边缘切割的最低总成本。这个问题被称为最大k-cut问题,并且是NP难的。如果你引入了你想要尝试使大小均匀的约束,那么你就会遇到平衡的k-cut问题,这也是NP难的。

好消息是,对于这些问题有很好的近似算法,所以如果你正在寻找“足够好”的解决方案,那么你可能会找到一个实现它们的库。还有其他技术,如光谱聚类,在实践中运作良好,速度非常快,但对它们的表现无法保证。