【问题标题】:Update an MST after removing 3 edges from the graph从图中删除 3 条边后更新 MST
【发布时间】:2017-01-21 10:45:17
【问题描述】:
让G(V,E) 成为具有权函数w 的无向连通图。我们得到T,MST 为G。现在我们从G(也出现在T)中删除e1, e2, e3,并得到一个新的图表,G'。描述一个找到G'的MST的有效算法。
我的直觉告诉我,我们可以扔掉那些3 边,然后从T-{e1, e2,e3} 开始为G' 运行Prim 算法。
我的直觉正确吗?可以帮我制定这个(或建议另一种方法)吗?
【问题讨论】:
标签:
algorithm
graph
computer-science
【解决方案1】:
Prim 的算法通过添加边从单个顶点在 G 中生成一棵树 T,但从 T 中删除一条边会使其断开连接,因此您不能将其用作算法的部分输入。
但是,您可以使用 Kruskal 的算法,该算法会生长一个森林 T 直到它被连接。从 G 中删除 T 的一条边需要算法的一个新步骤。证明类似于算法本身的正确性证明。
【解决方案2】:
您可以使用 Kruskal 算法解决它,在该算法中,您开始遍历集合 { S-{e1,e2,e3} } 中权重 >= max(e1,e2,e3) 的边。在此步骤之前,图表将包含您需要的所有边。