是否有任何图形分区方法可以在最多n个顶点的组中对图形进行分区。
示例:我有一个包含1000个顶点的图形,我想在具有最多100个顶点的子图中对其进行分区。如果算法发现这种情况更好,那么每个子图可以有50个顶点。
我找到了一种带有k-means的方法,并且在k-means之后进行了"校准"群集以这种方式在每个群集中有100个顶点,但我认为这种方法很耗时。
有什么想法吗?
编辑:好的,也许提出子图可能是错的。想象一下kmeans如何工作,我想在小组中划分我的图形,在分区之后我解决每组中的TSP问题然后将每组与最近的组链接并为组中心应用3opt移动。但要做到这一点,我需要一个分区方法来查找具有最多n个顶点的组;算法可以找到具有n个顶点的k个组,如果有一些顶点空闲,它将使另一个组具有剩余的。顶点必须彼此靠近而不是随机选择。
答案 0 :(得分:0)
你需要为此做研究。我记得一个名为Kernighan-Lin的启发式算法可以满足你的需要。不幸的是,你需要概括它,时间非常糟糕。我相信它在O(N ^ 3)附近。
另一种更专业但更复杂的方法是使用光谱分区。有关此主题的非常详细的文章可以在Direct Science网站上使用。以下是此主题的链接:Spectral partitioning works: Planar graphs and finite element meshes。
我希望这能帮助你完成任务。但我警告你这不是一件简单的事情。祝你好运!