【问题标题】:Determine if a given weighted graph has unique MST确定给定的加权图是否具有唯一的 MST
【发布时间】:2013-06-25 21:29:26
【问题描述】:

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

我对权重一无所知(例如 weight(e1) != weight(e2)),如果此图只有一个唯一的 MST,则算法仅返回 True,否则返回 False。

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

非常感谢! 汤姆。

【问题讨论】:

  • 不是 MST 专家,但我认为您无法检查它在 O(ElogV) 中是否只有 1 个 MST。你有理由相信你可以吗?
  • @Daniel O(ElogV) 是 Kruskal 算法/Prim 算法用于查找给定图的 MST 的时间复杂度,因此解决方案必须是这些算法的变体......
  • @DavidEisenstat 我会检查的。谢谢!

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


【解决方案1】:

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

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

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

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

【讨论】:

  • 你在这个描述中的意思是,“这些数对可以成对相加,也可以成对比较”。你能举一个简单的例子来证明这个逻辑的唯一性吗?
  • @ArunprasadRajkumar 我们只是在考虑有序的数字对。两个相加两个对,每个相加第一个得到第一个数字,第二个相加得到第二个。考虑添加向量。然后通过比较第一个然后与第二个打破联系来比较它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 2023-03-28
  • 2015-04-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多