添加新顶点后更新最小生成树

时间:2018-09-04 14:41:27

标签: algorithm graph-algorithm minimum-spanning-tree

假设图G具有已计算的最小生成树。如果向G添加新的顶点和入射边,我们如何快速更新最小树。

我最初的解决方案是选择权重最小的新添加边缘,然后将此边缘添加到已计算的树中。但是看来这种解决方法是错误的。有人可以给我一些有关此问题的提示吗?谢谢

1 个答案:

答案 0 :(得分:1)

添加最小重量边会产生错误的结果,因为现在您有多余的边,而其中的一个以上边可能是新MST 的一部分。例如,请参见图片。

image

您可以使用Prim的算法。在运行算法时,只需考虑以前的MST边缘新的边缘。 这将起作用,因为如果在整个新图形上运行Prims,那么它将添加的所有边都将来自旧的MST或新的边。
考虑到上述边缘,您可以使用任何其他MST查找算法以及Kruskal