为 kruskal 聚类划分 MST

Dividing MST for kruskal clustering

我制作了一个在面板上随机绘制点的 c# 应用程序。我需要根据欧氏距离对这些点进行聚类。我已经实现了 kruskal 算法。通常,最小生成树的数量必须达到写入的数量。例如,当用户想要聚类绘制点为 3 个簇时,kruskal 算法的末尾必须有 3 个巨大的 MST。 但我以不同的方式做到了。 我做了一个巨大的MST,现在我必须将这个MST分成书面数量的簇。 例如,点号 = 5,簇号 2 我的 kruskal 输出是 = 0-3:57 1-2:99 1-4:102

从到:欧几里得距离

问题是我不知道应该在哪里削减这些 MST 以创建集群

在 Kruskal 算法中,MST 边是按照权重增加的顺序添加的。

如果您从 MST 开始,并且希望在有 N 个连通分量时获得与停止 Kruskal 算法相同的效果,则只需删除 MST 中的 N-1 条最高权重边即可。