添加最轻的边缘而不影响图形的最小生成树?

时间:2015-09-30 14:31:11

标签: algorithm graph minimum-spanning-tree

我们有一个图G,希望在每个顶点对之间添加边,尽可能轻,而不影响最小生成树。 给定最小生成树和一对顶点,如何在不影响MST的情况下计算可以在它们之间添加的最轻边的权重?

考虑添加一个比两个顶点所有的边缘都重的边缘会起作用,但在我进行的试验中它似乎是错误的。

2 个答案:

答案 0 :(得分:2)

生成树的边数由顶点数决定。因此,如果向MST添加边缘,则需要删除另一个边缘才能获得生成树。但是,您无法删除任何边缘。显然,删除不在两个顶点之间的路径上的边缘会断开图形。因此,您只能删除此路径上的边。如果你想找到最小的生成树,你当然会删除最重的边缘。

如果新边缘的重量大于旧路径上最重的边缘重量,则此新生成树比原始树重。因此,新边缘必须比此边缘重,以保持原始MST。

答案 1 :(得分:0)

用我自己的话(接受答案后)重新获得并解释:

要找到uG之间新添加的边G的最小权重(图v中的顶点),这样它就不会改善(变亮) u的最小生成树权重,请执行以下操作:

  1. 在树上找到{{1}}和{{1}}之间的路径(只有一条这样的路径)。
  2. 找到该路径上最重的边缘。
  3. 使新添加的边缘重或重于该重量。
  4. 这不会影响树的总重量。