【问题标题】:Update minimum spanning tree if edge is removed如果删除边缘,则更新最小生成树
【发布时间】:2015-06-17 01:01:03
【问题描述】:

我遇到以下问题:

假设我们已经为加权无向图G = (V,E) 找到了最小生成树T。如果 G 稍作更改,我们希望能够有效地更新 T

G 中删除一条边以生成一个新图,这样新图仍然是连接的。给出一个算法,使用TO(|E|) 时间内找到新图的最小生成树。

【问题讨论】:

    标签: algorithm graph tree runtime big-o


    【解决方案1】:

    由于所有内容仍处于连接状态并且仅删除了一条边,因此生成树的大部分(甚至可能全部)保持不变。尝试构造相同的最小生成树,如果被移除的边是生成树的一部分,则抓取构成最小生成树的下一个最小边。

    【讨论】:

    • 我画了一个简单的例子,但我在编写算法时遇到了麻烦。如何在 O(|E|) 时间内找到下一个最小边?我们运行 Kruskal 算法还是 Prim 算法?
    • 检查 T 中的边是否仍保留在 G 中。如果 T 中的边被删除,如此检查所反映,则返回受影响节点的边,该边是最新的最小加权值。希望这是有道理的。 T 中要检查的边数将是
    • 是的,现在说得通了。谢谢!
    猜你喜欢
    • 2021-12-14
    • 2012-04-13
    • 2012-09-27
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2021-10-12
    相关资源
    最近更新 更多