每个n个顶点组的图分区

时间:2016-08-02 07:21:50

标签: algorithm graph partitioning

是否有任何图形分区方法可以在最多n个顶点的组中对图形进行分区。

示例:我有一个包含1000个顶点的图形,我想在具有最多100个顶点的子图中对其进行分区。如果算法发现这种情况更好,那么每个子图可以有50个顶点。

我找到了一种带有k-means的方法,并且在k-means之后进行了"校准"群集以这种方式在每个群集中有100个顶点,但我认为这种方法很耗时。

有什么想法吗?

编辑:好的,也许提出子图可能是错的。想象一下kmeans如何工作,我想在小组中划分我的图形,在分区之后我解决每组中的TSP问题然后将每组与最近的组链接并为组中心应用3opt移动。但要做到这一点,我需要一个分区方法来查找具有最多n个顶点的组;算法可以找到具有n个顶点的k个组,如果有一些顶点空闲,它将使另一个组具有剩余的。顶点必须彼此靠近而不是随机选择。

1 个答案:

答案 0 :(得分:0)

你需要为此做研究。我记得一个名为Kernighan-Lin的启发式算法可以满足你的需要。不幸的是,你需要概括它,时间非常糟糕。我相信它在O(N ^ 3)附近。

另一种更专业但更复杂的方法是使用光谱分区。有关此主题的非常详细的文章可以在Direct Science网站上使用。以下是此主题的链接:Spectral partitioning works: Planar graphs and finite element meshes

我希望这能帮助你完成任务。但我警告你这不是一件简单的事情。祝你好运!