Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 将图划分为两个簇_Algorithm_Cluster Analysis_Graph Theory - Fatal编程技术网

Algorithm 将图划分为两个簇

Algorithm 将图划分为两个簇,algorithm,cluster-analysis,graph-theory,Algorithm,Cluster Analysis,Graph Theory,我有一个完整的加权图G(V,E)。我想将V划分为两个集群,这样最大集群内边缘长度就会最小化。解决这个问题的最快算法是什么?我相信这可以在O(n^2)时间内解决,其中| V |=n。一种方法是将图分成两部分。我想不出完整的算法。有人能帮我找出完整的算法吗?双色(深度优先搜索,O(n)时间)最大生成林(Prim算法,O(n2)时间)。正确性的证明留作练习 作为记录,对于只有m条边的稀疏图,我非常确定有一个O(m)时间算法。看起来贪婪算法应该可以工作。按重量对边缘进行排序。反复删除权重最高的边,直到图

我有一个完整的加权图G(V,E)。我想将V划分为两个集群,这样最大集群内边缘长度就会最小化。解决这个问题的最快算法是什么?我相信这可以在O(n^2)时间内解决,其中| V |=n。一种方法是将图分成两部分。我想不出完整的算法。有人能帮我找出完整的算法吗?

双色(深度优先搜索,O(n)时间)最大生成林(Prim算法,O(n2)时间)。正确性的证明留作练习


作为记录,对于只有m条边的稀疏图,我非常确定有一个O(m)时间算法。

看起来贪婪算法应该可以工作。按重量对边缘进行排序。反复删除权重最高的边,直到图形断开连接。你到底在最小化什么?两条最重边(每组一条)的权重之和?还是两个中的最大值?或者…我想最小化在同一簇中有两个端点的最大边。第一个建议在O(E log E)中是可行的,不是吗?在我的例子中,图总是一个完整的图。因此,将始终存在O(n^2)边。在第一个算法中,我不确定我是否正确理解了您的解决方案。您是否建议先找到MST,然后应用双色算法?如果你能告诉我一些细节,那就太好了。@Rafi是的,找到最大生成树并用两种颜色给它上色(不管怎样)。你能给我一些关于正确性证明的提示吗?我试图用矛盾来证明这一点。但是,Rafi很难在算法的输出中找到最大簇内边缘长度。使用MST属性论证每个分区都有一个集群内边缘,其长度至少相同。