【问题标题】:MST algorithm by picking minimum edge from each vertex?通过从每个顶点选择最小边的 MST 算法?
【发布时间】:2020-03-14 03:17:23
【问题描述】:

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

【问题讨论】:

标签: algorithm minimum-spanning-tree


【解决方案1】:

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

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

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

【讨论】:

  • 啊,我明白了。谢谢!
【解决方案2】:

用于构建 MST 的 Kruskal 算法

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

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

如果您只是简单地迭代所有边而不考虑它们是否是 MST 的一部分,那么您不能确定它们不会形成一个循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 2011-05-08
    • 2016-07-15
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    相关资源
    最近更新 更多