图的最小生成树何时不唯一


22

给定一个加权的无向图G:哪些条件必须成立,以便G 有多个最小生成树?

我知道,当所有权重都不同时,MST是唯一的,但是您不能撤销此声明。如果图中有多个权重相同的多重边,则可能有多个MST,但也可能只有一个:

在此处输入图片说明

在此示例中,左侧的图具有唯一的MST,而右侧的图则没有。

我最能找到MST非唯一性的条件是:

考虑图G中的所有无循环(不包含其他循环的循环)。如果在这些循环中的任何一个中最大加权边存在多次,则该图将没有唯一的最小生成树。

我的想法是像这样一个周期

在此处输入图片说明

使用n个顶点,您可以精确地忽略其中一条边,但仍将所有顶点连接在一起。因此,您有多种选择来删除具有最大权重的边缘以获得MST,因此MST不是唯一的。

但是,然后我想到了这个示例:

在此处输入图片说明

您可以看到此图的确有一个符合我的条件的循环:(E,F,G,H),但据我所知,最小生成树是唯一的:

在此处输入图片说明

因此,看来我的情况不正确(或者可能不完全正确)。我非常感谢为最小生成树的非唯一性找到必要和充分条件的任何帮助。


1
您最小的循环称为无弦循环(或多或少)。
Yuval Filmus

Answers:


10

在第一张图片中:右图具有唯一的MST,方法是取总权重为2的边和。F G (F,H)(F,G)

给定一个图,令是的最小生成树(MST)。M = V F GG=(V,E)M=(V,F)G

如果存在一个边缘具有重量这样,添加我们MST产生一个周期,并让也有最低的边缘权重从,然后我们可以通过将中的边权重为与交换一条边来创建第二个MST 。因此,我们没有独特性。瓦特ë = È Ç ˚F Ç ˚F Ç ëe={v,w}EFw(e)=meCmFCFCme


您是对的,我现在在问题中更正了该图。您是否知道这是最普遍的情况,以至于MST并非唯一?还是可以通过某种方式确定它而无需先找到MST?
京湾2016年

1
@Keiwan我相信,如果您考虑到此问题,那么此答案中概述的条件也是拥有多个MST 的必要条件。换句话说:当且仅当可以执行HueHang概述的构造时,图具有多个MST。G
巴库里

1
m不必是F∩C中最低的边权重。实际上,它只能是最高的边缘权重,否则M首先不会是最小的。假设在F∩C中有一个边e',其中w(e')= m'> m = w(e)。然后,将e替换为e'将产生总重量小于M的生成树,这与M的最小值相矛盾。–
乍得

2

先前的答案表示一种确定是否存在多个MST的算法,对于不在每个边缘,该算法都会找到通过将添加到预先计算的MST中而创建的循环,并检查是否不是该循环中唯一的最重边。该算法可能会在时间运行。G e e O | E | | V |eGeeO(|E||V|)

确定时间复杂度中是否存在多个G的MST的更简单算法O(|E|log(|V|))

  1.在上运行Kruskal算法,找到MST。Gm

  2.尝试再次在上运行Kruskal算法。在此运行中,只要我们在权重相等的边之间进行选择,我们将首先尝试不在的边,然后再尝试在的边。每当我们发现不在一条边连接两个不同的树时,我们就会声称存在多个MST,从而终止了该算法。Gmmm

  3.如果我们到达此处,则我们声称具有唯一的MST。G

Kruskal算法的普通运算需要时间。不在的边的额外选择可以在时间内完成。因此,该算法实现了时间复杂度。m O | E |O | E | log | V |O(|E|log(|V|))mO(|E|)O(|E|log(|V|))

为什么此算法可以确定是否有多个MST?

假设我们的MST与。足以表明,在运行的算法不会到达第3步,因为如果我们运行Kruskal的算法,则在第2步末找到的边(不在并且连接两棵不同的树)将包含在生成的MST中算法完成。令为最大权重,使得对于任何小于边,当且仅当它在,它才以为单位。因为的权重的边数相同,所以存在权重边在ģ 瓦特瓦特'mmGmwwmm'瓦特mmwwé 小号小号瓦特è '瓦特小号瓦特小号'È ' ' { ë ' } 小号' ' è '小号m但不在。如果该算法在处理这些边缘的边缘之前已经退出,则说明已经完成。否则,假设算法现在要处理这些边缘中的第一个边缘。令为到目前为止已保留要包括在结果MST中的所有边的集合。。由于该算法具有重量的未完成处理边缘不如,它必须尚未开始处理的重量边缘在。因此,边的权重小于。这意味着回顾meSSmwmewmSwSm.e在。由于(其中是树),因此必须连接两棵不同的树,并且算法将在此时退出。m{e}SmmeS

关于进一步开发的注意事项
可以交错执行步骤1和步骤2,以便我们可以在不处理权重较大的边的情况下尽快终止算法。
如果要计算MST的数量,可以检查有关如何计算MST的答案


1

令为具有至少两个顶点的(简单有限)边加权无向连接图。令ST为生成树,MST为最小生成树。让我先定义一些不太常见的术语。G

  • 如果边缘是某个循环中唯一的最重边缘,则它是唯一循环最重的边缘。
  • 如果一条边在任何循环中都不是最重的边,则它不是最重的边。
  • 如果某条边是某条穿过某条切口的最浅边,则该边是唯一一条最轻的边。
  • 如果一条边从来都不是穿过任何切口的最轻的边缘,则该边是非最轻的。
  • 如果每个ST的正好一个边缘不在另一个ST中,则两个ST相邻。
  • 如果一个MST与另一个MST不相邻(当两个MST都被视为ST时),则它是一个隔离的MST。

什么时候有超过一棵最小生成树?

为了回答OP的问题,这里有五个具有多个MST 的特征G

  • 有两个相邻的MST。
  • 没有孤立的MST。
  • 有一个ST,其亮度与所有相邻ST相同或比其更轻,并且与一个相邻ST一样轻。
  • 存在既不是唯一循环最重也不是非循环最重的边缘。
  • 有一条既不是唯一切割最轻也不是非切割最轻的边

这个答案的新颖性主要是最后两个特征。最后描述的第二个特征可以被视为OP方法的下一步。前三个特征加在一起可以认为是dtt的答案的稍微增强的版本。

相反地​​,更容易想到是否具有唯一的MST。以下是上述特征的相反版本。G

最小生成树何时唯一?

定理:的以下性质是等价的。G

  • MST的唯一性:有一个独特的MST。
  • 没有相邻的MST没有相邻的MST
  • 一个孤立的MST:存在一个孤立的MST。
  • 一个局部最小值ST:存在一个ST,它比所有相邻的ST更轻。
  • 极端循环边缘:每个边缘都是唯一循环最重的或非循环最重的。
  • 极高的切割边缘:每个边缘都是唯一切割最轻的或非切割最轻的

这是我的证明。

“ MST的唯一性” =>“没有相邻的MST”:很明显。

“没有相邻的MST” =>“一个孤立的MST”:显而易见。

“一个孤立的MST” =>“一个本地最小ST”:一个孤立的MST比所有相邻的ST更轻。

“一个局部最小ST” =>“极限循环边缘”:令为比所有相邻ST轻的ST。m

  • 每个边必须是非循环最重的。这是证明。设为的边。如果不属于任何循环,则完成。现在假设属于循环。如果从删除,则将被分为两棵树,分别命名为和。作为连接和与的循环,必须具有连接和另一个边。将该边缘命名为。让Ç 1 2 1 2ç 1 2 1 2mlmllclmmm1m2m1m2lcm1m2lm是,和,它们也必须是的生成树。由于和相邻,因此比更轻。这意味着比轻。因此,是非循环最重的。m1m2 G ^ '''lGmmmmlll
  • 每个边必须是唯一循环最重的。这是证明。令不在。如果将加到,我们将创建一个循环。令为中不是。考虑生成树制成有换成。由于和相邻,因此比更轻。这意味着比轻。所以,ħ 'ħ 'Ç ħ Ç ħ ' 'ħ ħ 'mhmhmchchmmhhmmmmhhh是唯一的最重边。也就是说,是唯一循环最重的。ch

“局部最小ST” =>“极限切削刃”:练习时保留证明。

“极端循环边缘” =>“ MST的唯一性”:令为MST。令为任意边。如果不是最重的周期,则必须包含它。如果边是唯一循环最重的,则无法包含它。(这两个命题可以通过使用循环和边交换的关于MST的标准推理来证明,与上面所做的类似)。因此,恰好是非循环最重边的集合。meememm

“ Extreme cut edge” =>“ MST的唯一性”:练习时保留证明。

上面的含义链证明了这个定理。

再一次,这个答案的新颖性主要是“极限循环边缘”属性和“极限剪切边缘”属性,它们使用了非循环最重和非剪切最轻的概念。尽管这些概念很自然,但我在其他地方都没有看到。


这是两个相关的有趣观察。

  • 对于任何边,是非循环最重的是唯一切割最轻的在每个MST中ee e e
  • 对于任何边,是唯一循环最重的是非剪切最轻的不在任何MST中ee e e

唯一的MST有两个充分但不是必要的条件

每个循环中最重边的唯一性意味着“极限循环边”属性。因此这是一个充分的条件。其必要条件的一个反例是权重为。ab1,bc1,cd1,da2,ac2

每个裁切集中最亮的边缘的唯一性意味着“极端裁切边缘”属性。这样就足够了。一个必要条件的反例是权重为的三角形。1,1,2

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.