我们得到一个无向,加权和连通图G,(没有负权重,所有权重都是不同的),该图上任意两个顶点之间的最短路径位于最小生成树上。 然后:
I)图G是树。
II)每个{u,v}边缘的重量至少等于最重的边缘 从u到v的最短路径。
III)任意两个顶点之间的最短路径u,v是唯一的。
IV)假设从顶点
s
,Prime(用于计算MST)和Dijkstra(用于计算最短路径)开始,处理并添加 顶点到树中,具有相同的顺序。 (两种算法在处理和添加节点时的顺序相同)
请解释一下,为什么只有两个声明是正确的?我对我们TA提出的定义感到困惑。
答案 0 :(得分:3)
让G=(V,E,w)
成为具有以下属性的加权图。
w(e)>=0
的{li> e in E
和w(e1) != w(e2)
的每个e1,e2 in E
的{{1}}。
对于每个e1 != e2
,对于a,b in V
中从p
到a
的每条最短路径b
,都存在最小生成树{{1 } G
,T
中包含G
。
请注意,属性2在要求中没有明确说明,但根据我的理解,这就是OP的含义,因为其他解释实际上没有意义:如果对于任何一对顶点{ {1}}和p
,它们之间有两条最短路径T
和a
,它们不能包含在同一个最小生成树中,因为它们会形成一个循环。同样,如果b
和p1
之间的路径p2
最短,则不一定存在包含p
的最小生成树。
然后,陈述I)和陈述不一定是真的,但陈述II)和陈述是真的。
对于陈述I),请考虑以下反例。让a
与b
,p
和
G:=(V,E,w)
请注意,所有边权重均为正且不同,因此满足上面的属性1。此外,边V:={1,2,3}
和E:={{1,2},{1,3},{2,3}}
构成w({1,2}):=1,
w({1,3}):=2,
w({2,3}):=4.
的唯一最小生成树{1,2}
。最后,从{1,3}
到T
的唯一最短路径是G
,从1
到2
的唯一最短路径是{1,2}
,从1
到3
的最短路径是{1,3}
。所有这些路径都包含在2
中。但是,3
包含循环{2,1}{1,3}
,因此它不是树。
对于陈述II),请T
。让G
成为{1,2},{2,3},{3,1}
中从u,v in V
到p
的最短路径。假设u
小于v
中最大权重的边缘。然后,G
是w({u,v})
中p
到{u,v}
的路径,其权重小于u
的总权重,且必须大于v
因为所有边权重都是正数。这意味着G
不是p
中从w({u,v})
到p
的最短路径,这是一个矛盾。
对于陈述III),请注意最小生成树是唯一确定的;这是从Prim算法的工作原理得出的,因为来自上面的属性1的不同边缘权重使得最轻边缘的选择具有确定性。或者,可以通过争论每个生成树必须包含最小权重u
的边缘来归纳地看到这一点。总的来说,由于唯一确定了最小生成树v
,因此每G
G
只能有一条从T
到u
的最短路径,因为每条最短路径必须包含在v
中。如果存在两条这样的路径,G
有一个循环,情况并非如此。
对于陈述IV),请考虑以下反例。让u,v in V
位于T
,T
和
G:=(V,E,w)
假设Prim和Dijkstra从节点V:={1,2,3,4}
开始。然后,边E:={{1,2},{1,3},{2,3},{2,4},{3,4}}
构成唯一确定的最小生成树w({1,2}):=01,
w({1,3}):=04,
w({2,3}):=10,
w({2,4}):=03,
w({3,4}):=09.
,它由Prim在序列1
中生成。
路径{1,2},{2,3},{3,4}
是从T
到1,2,4,3
的唯一最短路径,{1,2}
是从1
到2
的唯一最短路径; {1,3}
是从1
到3
的唯一最短路径,{1,2}{2,4}
是从1
到4
的唯一最短路径。此外,{4,2}{2,1}{1,3}
是从4
到3
的唯一最短路径,而{2,3}
是从2
到3
的唯一最短路径。总的来说,{2,1}{1,4}
具有上面的属性1和2。
Dijkstra的选择可以按如下方式进行,其中2
表示无穷大。
4
总的来说,所选节点的序列是G
,它与Prim生成的序列不同。
答案 1 :(得分:1)
我同意Codor的说法,声明I不一定是真的,声明II是真的。 Codor对陈述I和II的证明是正确的。但是,我认为陈述III并不一定正确,陈述IV也是如此。
对于陈述III,有一个反例: 有3个顶点A,B和C.有3个边(A,B),(B,C)和(A,C),其权重分别为1,2和3。最小生成树包括边(A,B)和(B,C)。但是,A和C之间的最短路径不是唯一的:(i)(A,B),(B,C)或(ii)(A,C)
陈述IV是正确的。这可以通过数学归纳证明。