确定给定的加权图是否具有唯一的MST

时间:2013-06-25 21:29:27

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

我正在寻找一种算法(或任何其他方法)来确定给定的加权图是否在O(ElogV)中具有唯一的MST(最小生成树)?

我对权重没有任何了解(例如权重(e1)!=权重(e2)),如果此图只有一个唯一的MST,算法只返回True,否则返回False。

我开始使用Kruskal的算法,并检查是否find-set(u)== find-set(v)所以在MST中有一个圆圈,但这种方式并没有涵盖我想的所有场景:(

非常感谢! 托梅尔。

1 个答案:

答案 0 :(得分:14)

您可以在O(E log(V))中证明它是否具有唯一的MST。

首先使用标准技术找到最小生成树。

返回原始树,用成对的数字,原始重量替换所有重量,然后根据它是否在您找到的MST中替换为0或1。这些数字对可以成对地加在一起,也可以成对比较 - 就像普通数字一样。

现在使用标准技术查找具有这些有趣权重的最小生成树。您找到的MST将是与原始树共享最少边缘的MST。因此,如果有多个MST,您可以保证找到不同的MST。