我正在尝试完成一些真/假问题。当我用真实的方式回答其中许多时,我会担心......请假设所有图表都无向并且不具有不同的权重。负权应该没问题。
Qa)如果G的循环具有唯一最重的边e,则e不能是任何MST的一部分。
我的回答是真的。 例如,我们有一个包含节点A,B,C,D,E的图表。
AB = 1
BC = 2
BD = 3
CD = 100
DE = 4
如您所见,BCD是一个循环。 我的论点是,因为它是一个循环,我们总是可以通过采取其他路线来避免唯一最重的边缘CD。因此确实如此。我的论点是否合理(足够)?
Qb)Dijkstra算法计算的最短路径树必然是MST。
我的回答是对的,但我的直觉告诉我一些错误。 嗯...... Disjkstra和Prim都是贪心算法。他们每次都去最轻的加权边缘。 有没有最短路径树不最小生成树的情况? 我实际上很难理解这两个人之间的区别。
Qc)Prim算法适用于负加权边缘。
我的回答是真的。因为这就是维基所说的......:p 该算法是关于在所有边缘中找到成本最低的边缘。所以负加权边缘应该不重要,是吗?但负加权周期怎么样?
Qd)如果G的循环具有唯一最轻的边e,那么e必须是每个MST的一部分。
我的回答是真的。 我们必须访问MST中的所有节点。例如,在长度为3的循环中,我们总是可以通过2个步骤遍历该循环中的所有节点。如果有一个独特的最轻的边缘,我们肯定会在我们的MST中选择它。
我的声明听起来不错?也许他们还不够?那么有什么建议吗?
答案 0 :(得分:4)
对b)的建议:你的直觉说这是错的,所以试着构建一个反例。如果你找到一个,它已经解决了,否则你通常可以通过分析为什么你的反例的构造失败来了解为什么声明是正确的。不过,我并没有告诉你答案或你的直觉是否正确。
家庭作业肯定早就应该到期,所以答案是:
Qa)如果G的循环具有唯一最重的边e,则e不能是任何MST的一部分。
真。假设您有一个包含边T
的生成树e
。如果从树中删除边e
,则会得到一个包含两个非空连接组件C1和C2的图形。循环中的至少一个其他边必须连接C1和C2(否则它不是循环)。让g
成为这样的优势。通过删除T'
并添加T
从e
获取的树g
是生成树,其权重小于T
。因此T
不是MST。
Qb)Dijkstra算法计算的最短路径树必然是MST。
我的回答是对的,但我的直觉告诉我一些错误。
本能是正确的,这是错误的。考虑
6
A---B
3 | | 1
C---D
3
其中最短路径树是从顶点A
计算的。最短路径树是
6
A---B
3 |
C---D
3
总重量为12,但唯一的MST是
A B
3 | | 1
C---D
3
体重7。
Qc)Prim算法适用于负加权边缘。
真。从正权重的正确性推导出的一种方法是向所有边添加恒定权重W
,以便所有边权重都为正(例如W = 1 + max { |weight(e)| : e ∈ E }
)。
由于具有V
个顶点的树始终具有V - 1
个边,因此任何生成树的总权重在修改和未修改的权重之间相差(V - 1)*W
,因此树是MST for修改后的权重当且仅当它是未修改边权重的权重时。
通过为所有权重添加常量不会改变边缘的权重排序,因此Prim的算法以相同的顺序为未修改的权重构造修改的边权重的相同生成树。
通过正权重的正确性,由Prim算法构造的具有修改权重的树是修改权重的MST。
Qd)如果G的循环具有唯一最轻的边e,那么e必须是每个MST的一部分。
假。考虑
1 1
A---B---C
| / \ |
1 | /4 5\ | 1
|/ 6 \|
D-------E
周期BDE
具有权重4的唯一最轻边BD
,但MST不包含该周期的边缘。
如果图e
中有一个独特的最轻边G
,那么它必须是每个MST的一部分。这是a)的双重考虑:考虑T
的生成树G
,其中不包含e
。通过将e
添加到T
,我们获得了必须具有周期的图T'
(因为T
是生成树而e
不在{{1} }})。 T
中的任何周期都必须包含T'
,否则这将是e
中的一个周期。因此,选择T
中的任意一个周期C
(只有一个,但这并不重要)并从T'
中移除e
以外的任何边缘。让结果图为C
。
T''
的总权重小于T''
的总重量,因为T
是通过用较轻的边缘替换边缘而从T''
获得的。 T
已连接(因为它是通过删除周期的边缘从T''
获得的),并包含T'
个顶点和V
边。因此它是一棵生成树,因此V - 1
不是最小的。
答案 1 :(得分:0)
D是真的。
Qd)如果G的循环具有唯一最轻的边e,那么e必须是每个MST的一部分。真正。
光边缘=越过切口的边缘,其重量是穿过切口的任何边缘的最小值。
现在让T为G的MST。假设(出于矛盾的目的)T'是G的不同MST。因为T和T'不是同一棵树,并且它们都具有| V | -1边缘,T中存在一些不在T'中的边e。从T中去除边e引起(产生)G的切割;因为T是生成树,所以去除e将G分成两个不相交的顶点集,它们一起包括G的所有顶点,这正是剪切的顶点。现在,由于T是MST,因此边e必须是该切割上的(唯一)光边,因此在每个MST中。但是通过构造,边缘e不在T'中。因此,T'不是MST,与我们最初的假设相矛盾。