algorithm - prims 和 boruvka 算法的区别

标签 algorithm minimum-spanning-tree prims-algorithm spanning-tree

我正在研究MST算法。我很好奇找到 prims 和 boruvka 算法之间的关键区别,但网上资源除了它们的实现和算法之外没有太多关于它们的内容。如果有人可以解释,那将会有很大的帮助。谢谢!

最佳答案

两种算法都使用以下事实:

  • 对于每个顶点v,都存在一个最小生成树T,使得与v相关的最便宜的边属于T。

  • 对于每条边 e,包含 e 的(最小)生成树与 e 收缩的图的(最小)生成树自然一一对应。

Prim 和 Borůvka 以不同的方式利用这些事实。 Prim 选择根顶点 r 并重复收缩与 r 相关的最便宜的边(通常的描述避免图收缩,但与此等效),直到只剩下 r。 Borůvka 反复“并行”收缩所有最便宜的入射边,直到只剩下一个顶点。

您可以通过混合和匹配收缩策略来创建各种最小生成树算法。

关于algorithm - prims 和 boruvka 算法的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68423169/

相关文章:

algorithm - 缺少项的 SVD

java - 如何直接访问最小堆中的对象,java

Python-添加到列表多次拼接、优化、算法

algorithm - 是否有任何算法需要专门的功能语言来实现

algorithm - 最小生成树的运行时间? (原始方法)

recursion - 返回最小生成树中两个节点之间的路径

algorithm - 为什么 Kruskal 聚类会生成次优类?

algorithm - 使用 Kruskal 算法查找图的最小生成树

algorithm - 如何以最佳方式将向量分组到易于描述的组中?