Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.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_Minimum Spanning Tree - Fatal编程技术网

Algorithm 包含最大权的生成树

Algorithm 包含最大权的生成树,algorithm,minimum-spanning-tree,Algorithm,Minimum Spanning Tree,设G是一个加权无向图,e是G中权重最大的边。假设G中有一个包含边e的最小权重生成树。以下哪项陈述总是正确的 a、 存在具有最大重量的所有边缘的切口 b、 G中存在一个具有最大重量的所有边的循环 c、 边e不能包含在循环中 d、 G中的所有边都具有相同的权重 是上一年的考试任务。我很难理解它。任何人都可以解释给我听。让我们从简单的开始-d是错误的-使用任何MST,并在某个边缘(不是e)将其中一个权重减少到某个独特的新值-它仍然是MST,但并非所有边都具有相同的权重 c为假-如果e比任何其他边都重,

设G是一个加权无向图,e是G中权重最大的边。假设G中有一个包含边e的最小权重生成树。以下哪项陈述总是正确的

a、 存在具有最大重量的所有边缘的切口

b、 G中存在一个具有最大重量的所有边的循环

c、 边e不能包含在循环中

d、 G中的所有边都具有相同的权重


是上一年的考试任务。我很难理解它。任何人都可以解释给我听。

让我们从简单的开始-
d
是错误的-使用任何MST,并在某个边缘(不是
e
)将其中一个权重减少到某个独特的新值-它仍然是MST,但并非所有边都具有相同的权重

c
为假-如果
e
比任何其他边都重,则为真,因为如果它在一个周期内,您可以从MST中删除
e
(如果连接需要,则选择任何其他边,接收较轻的MST)。但是,
e
可以在一个循环中,如果备选边的重量都相同

b
是错误的-假设
e
是最重的,但不是在一个周期内,只是将图形连接到某个远程垂直(否则不会连接)


a
-我不确定您的意思是切割是最大重量还是最大重量的所有边都在那里(这不是一回事),请澄清底部三个是假的,下面的简单图表是所有三个的反例:

     1
  a --- b
  |    /
2 |   /
  |  / 2
  | /
  c
任何最小权重生成树都包含边
或边
。在这两种情况下,很容易检查(b)、(c)和(d)是否全部失败

编辑:(a)为真。这是一个证明:

e
M
的边,该边在
G
中具有最大权重,且
M
为包含该边
e
G
的最小权重生成树。如果边
e
切割图形
G
,则(a)显然为真。因此,通过移除边
e
,从
G
获得
G'
,并假设
G'
已连接

移除边缘
e
,从
M
获取
M'
。现在我们知道
M'
由两个组件组成,因为
M
是一棵树,从树上删除一条边会将其断开为两个组件。而且
G'
的每个顶点都属于
M'
,并且
G'
是连通的,因此我们可以通过向
M'
添加
G'
的一条边来获得
G'
的生成树。我声称,每一条这样的边缘在
G
中都具有最大的重量

要了解原因,假设在
G'
中有一条边
e'
,它连接
M'
的两个组件,但在
G
中的权重次最大。然后,我们可以从
M
(我们的原始生成树)中删除边
e
,将此边
e'
添加到
M
,以获得一个新的生成树
G
,但它的总重量小于
M
,与
M
的最小重量相矛盾


>,考虑<代码> G′/COD>的所有边,它连接了<代码> m′<代码>的两个组件。这些边与

e
一起构成了
G
的边割集,并且在
G

中所有边都必须具有最大的权重。让(a,c)为边e。但我们也可以选择(b,c)。因此,e可能在最小生成树中,也可能不在最小生成树中,这取决于在@andrysure的选择,您可以选择
。然后有一个最小权生成树
G
,包含
e=
,即具有两条边
,且参数相同。@Andery可以给出选项c的反例。我理解你的意思proof@avi让
G
成为我的图表中的图形。很明显,每一条边都包含在一个循环中。现在,让
M
成为
G
的任何最小权生成树。(只有两条。)设
e
M
的一条边,该边在
G
中具有最大重量。(选择了
M
,对于
e
,只有一个选项)然后
e
包含在
G
@avi的循环中,我阅读该选项的方式(几乎可以肯定其含义)是“存在一个切口,因此切口的每个边缘在
G
中都具有最大重量”,而不是“存在一个割集,由在
G
中具有最大权重的
G
的每条边组成”@avi问题陈述说,“让
M
成为最小权重生成树,让
e
成为
G
的最大权重边,这也是
M
的边。“我想说的是,在你的例子中,ac是光边。我们可以选择任意一个@andreyy你必须首先选择一个最小权值生成树。一旦选择了最小权重生成树,就必须从该生成树中选择最大权重边。在我的例子中,一旦你选择了你的树,你就别无选择了。@avi,我只是删除
e
,作为证明这是不可能的一部分(你会有一个更轻的MST,所以包含
e
的原始MST根本不是MST!)。即使是对于
e
的情况,已知其比任何其他边缘都重(这不是问题中的情况)。如果其他边可以具有相同的权重,那么
e
可以是给定MST的一部分,也可以是循环的一部分,因为没有
e
的任何其他生成树都具有相同的权重-这在Andreys示例中很好地显示了这一点当边e位于一个悬垂顶点上时,我们必须添加e。@LeeorThis