繁体   English   中英

动态最小生成树

[英]dynamic minimum spanning tree

我想制作一个动态的最小生成树。 我在 n 个顶点上有一个现有的 MS 树,我从这个新顶点向所有现有顶点添加了一个顶点和边。 如何有效地更新新图的 MST? O(n) 将是最优的。 我还可以使删除顶点操作高效吗?

O(n log n)使用Kruskal算法。 关键思想是原始MST中未使用的任何边缘也不会在新的MST中使用。 所以只需对n新边进行排序O(n log n) ,将这个排序列表与旧MST的边缘列表合并(按照排序顺序保存,对吧?) O(n) ,然后重新运行Kruskal的算法结果排序的边缘列表O(n)-ish

这个问题可以使用局部敏感排序来解决。 请参考这篇论文。 他们讨论了形成动态最小生成树的成本,并且它给出了最佳解决方案的 (1+epsilon) 近似值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM