通过从每个顶点中选取最小边缘的MST算法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过从每个顶点中选取最小边缘的MST算法?相关的知识,希望对你有一定的参考价值。

是否可以通过简单地迭代图形中的顶点并从该顶点中选择最小的边并取所有这些边的并集来创建MST?似乎这与cut属性并不矛盾,并且比实现Prim算法更有效。

答案

用于构建MST的Kruskal算法

  1. 初始化H =∅。
  2. 按权重的升序对边缘进行排序。
  3. 以增加的权重顺序环绕边缘。
    • 如果e的端点未在H中连接。
      • 将e添加到H。

来源:https://www.cc.gatech.edu/~rpeng/CS3510_F17/Notes/Sep27MST.pdf

如果仅简单地遍历所有边缘而不考虑它们是否属于MST,则不能确定它们不会形成循环。

另一答案

不。顶点可以共享最小的边,因此您可能无法将它们全部连接起来:

A---1---B
|       |
2       2
|       |
C---1---D

您至少需要权重2的边之一来制作MST,但是它们都不是任何顶点的最小边。

以上是关于通过从每个顶点中选取最小边缘的MST算法?的主要内容,如果未能解决你的问题,请参考以下文章

最小生成树

查找 MST 以使特定顶点具有最小度数

断开图中的所有顶点 - 算法

BZOJ1937[Shoi2004]Mst 最小生成树 KM算法(线性规划)

构建覆盖特定顶点子集的最小生成树

[BZOJ1937][SHOI2004]Mst最小生成树(KM算法,最大费用流)