【问题标题】:Algorithm finding an MST using DFS使用 DFS 查找 MST 的算法
【发布时间】:2011-12-09 20:33:27
【问题描述】:

我有以下算法:对于给定的(有限无向简单)图 G=(V,E),边上具有正权重函数:

  1. 运行 DFS(深度优先搜索),直到找到向后的边缘或 DFS 停止。如果停止,则返回 G。
  2. 在由向后边缘构成的圆上,找到最重的边缘并将其从 G 中移除。
  3. 返回 1。

现在我需要了解这个算法在做什么。我已经证明该算法为我提供了 G 的生成树,我相信它是最小生成树,但我无法证明这一点。请帮我证明一下。

【问题讨论】:

  • 不完全是......我是一名导师,我有一张问题要向我的学生解释,但我坚持这个。

标签: algorithm graph graph-algorithm depth-first-search


【解决方案1】:

证明,当 e 是 G 的一个循环中最重的边时,G - e 的 MST 的成本不大于 G 的 MST 的成本。(令 T 为 G 的 MST 并使用 T以及关于 e 构造 G - e 的生成树 T' 的假设,其中 cost(T') ≤ cost(T)。) 通过对 |E| 的归纳得出结论该算法会产生一个 MST。

【讨论】:

    【解决方案2】:

    看起来您正在执行reverse-delete algorithm 的变体,但您仍然必须证明您的算法等同于删除所有不会断开图形的最高加权边。

    【讨论】:

    • 是的,我认为这是一种方法.. 但我的算法有不同的选择顺序,而且每条边并不总是有一个唯一的圆
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多