如果我们有一个(任意)连接的无向图G,其边缘具有不同的权重,
另外,如果有人可以提供一些在处理此类MST问题时必须记住的关键事项,我会更感谢。
这是一个家庭作业问题。感谢。
答案 0 :(得分:7)
G的MST是否包含最大加权边?
可能有,但没有必要。考虑如下的4顶点图:
[A]--{2}--[B]
| |
| |
{1} {3}
| |
| |
[C]-{50}--[D]
最小生成树由边集{CA,AB,BD}组成。沿着{CD},最大边缘权重为50,但它不是MST的一部分。但是如果G已经等于它自己的MST,那么显然它将包含它自己的最大边缘。
G的每个MST都包含最小加权边?
是。 MST具有剪切属性。 cut 只是图形顶点的一个分区,分为两个不相交的集合。对于任何可以进行的切割,如果切割中边缘的权重小于切割中其他边缘的权重,则此边缘属于图形中的所有MST。因为您保证边缘权重是不同的,所以您还保证边缘小于所有其他边缘。
另外,如果有人可以提供一些在处理此类MST问题时必须记住的关键事项,我会更感谢。
您最好的选择是使用MST的属性进行推理,并尝试构建您认为可以证明您的情况的特定反例。我给出了上面每行推理的一个例子。由于切割和循环属性,您始终可以确切地确定MST中的哪些边缘,因此您可以系统地测试每个边缘以确定它是否在MST中。
答案 1 :(得分:4)
G的每个MST是否包含最小加权边?
是。假设我们有MST
,它不包含最小权重边。现在,将此边添加到MST
将导致cycle
。现在,cycle
中总会有另一条边可以被移除以移除周期并仍保持图形(MST
)连接。
G的MST是否包含最大加权边?
取决于图表。如果graph
本身是树,那么我们需要在n-1
中包含其所有MST
边,因此无法排除最大权重边。此外,如果最大权重边缘为cut-edge
,因此其排除将永远不会导致连接,则无法排除最大权重边缘。但如果最大权重边缘是cycle
的一部分,则可以从MST
中排除。
答案 2 :(得分:0)
对于你的第一个问题,答案是否定的,kruskal's algorithm证明了这一点。它总是会选择最低成本优势。
对于第二个问题,答案是肯定的,找到示例图表是微不足道的:
1 - 2 (cost 10)
2 - 3 (cost 100)
3 - 1 (cost 1000)
第三条边将永远不会被选中,因为它引入了一个循环。所以基本上,如果具有最大成本的边缘在插入MST时会创建一个循环,则不会插入。
答案 3 :(得分:0)
我看到你也正在通过2009年考试为CSC263学习? (同样在这里!)
另一种看到最小值总是在MST中的方法是简单地看一下这个最小边缘(称之为e):
e v1 ---------------- v2
(假设这与其他verticies有联系)。现在,为了不被包括在最终的MST中,我们在一个点上,不失一般性,在MST中有v1而不是v2。但是,添加v2而不添加e的唯一方法是添加v1不会将e添加到队列中(因为根据定义,e将位于队列的顶部,因为它具有最低优先级)但是这样与MST构造定理相矛盾。
基本上,不可能有一个最小权重的边缘没有到达队列,这意味着任何构造的MST都会拥有它。