Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 添加新顶点后更新最小生成树_Algorithm_Graph Algorithm_Minimum Spanning Tree - Fatal编程技术网

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

Algorithm 添加新顶点后更新最小生成树,algorithm,graph-algorithm,minimum-spanning-tree,Algorithm,Graph Algorithm,Minimum Spanning Tree,假设图G已经计算出最小生成树。如果我们向G添加一个新的顶点和关联边,我们如何快速更新最小树 我的初始解决方案是选择权重最小的新添加边,然后将此边添加到已计算的树中。但这种解决方案似乎是错误的。有人能给我一些关于这个问题的建议吗?谢谢添加最小权重边将给出错误的结果,因为现在您有了额外的边,并且其中的多个边可能是新MST的一部分。例如,请参见图像 您可以使用Prim算法。运行该算法时,只需考虑以前的MST边和新边。 这将起作用,因为如果在整个新图形上运行Prims,那么它将添加的所有边都将来自旧M

假设图G已经计算出最小生成树。如果我们向G添加一个新的顶点和关联边,我们如何快速更新最小树


我的初始解决方案是选择权重最小的新添加边,然后将此边添加到已计算的树中。但这种解决方案似乎是错误的。有人能给我一些关于这个问题的建议吗?谢谢

添加最小权重边将给出错误的结果,因为现在您有了额外的边,并且其中的多个边可能是新MST的一部分。例如,请参见图像

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

请检查是否有人可以帮助我修复上传图像的旋转。嗨,我刚刚找到了这个问题的解决方案,是的,您的答案绝对正确。实际上,算法的运行时是o(vlgv),Prim的方法使用Fibonacci堆。它比在运行时间为o(elgv)的更新图上简单地运行Prim的方法要快一点。最后,非常感谢您的快速回答