图表和PRIM和DIJKSTRA问题?

时间:2015-03-19 07:49:00

标签: algorithm data-structures graph dijkstra shortest-path

我们得到一个无向,加权和连通图G,(没有负权重,所有权重都是不同的),该图上任意两个顶点之间的最短路径位于最小生成树上。 然后:

  

I)图G是树。

     

II)每个{u,v}边缘的重量至少等于最重的边缘   从u到v的最短路径。

     

III)任意两个顶点之间的最短路径u,v是唯一的。

     

IV)假设从顶点s,Prime(用于计算MST)和Dijkstra(用于计算最短路径)开始,处理并添加   顶点到树中,具有相同的顺序。 (两种算法在处理和添加节点时的顺序相同)

请解释一下,为什么只有两个声明是正确的?我对我们TA提出的定义感到困惑。

2 个答案:

答案 0 :(得分:3)

G=(V,E,w)成为具有以下属性的加权图。

    每个w(e)>=0的{​​li>

    e in Ew(e1) != w(e2)的每个e1,e2 in E的{​​{1}}。

  1. 对于每个e1 != e2,对于a,b in V中从pa的每条最短路径b,都存在最小生成树{{1 } GT中包含G

  2. 请注意,属性2在要求中没有明确说明,但根据我的理解,这就是OP的含义,因为其他解释实际上没有意义:如果对于任何一对顶点{ {1}}和p,它们之间有两条最短路径Ta,它们不能包含在同一个最小生成树中,因为它们会形成一个循环。同样,如果bp1之间的路径p2最短,则不一定存在包含p的最小生成树。

    然后,陈述I)和陈述不一定是真的,但陈述II)和陈述是真的。

    对于陈述I),请考虑以下反例。让abp

    一起使用
    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,从12的唯一最短路径是{1,2},从13的最短路径是{1,3}。所有这些路径都包含在2中。但是,3包含循环{2,1}{1,3},因此它不是树。

    对于陈述II),请T。让G成为{1,2},{2,3},{3,1}中从u,v in Vp的最短路径。假设u小于v中最大权重的边缘。然后,Gw({u,v})p{u,v}的路径,其权重小于u的总权重,且必须大于v因为所有边权重都是正数。这意味着G不是p中从w({u,v})p的最短路径,这是一个矛盾。

    对于陈述III),请注意最小生成树是唯一确定的;这是从Prim算法的工作原理得出的,因为来自上面的属性1的不同边缘权重使得最轻边缘的选择具有确定性。或者,可以通过争论每个生成树必须包含最小权重u的边缘来归纳地看到这一点。总的来说,由于唯一确定了最小生成树v,因此每G G只能有一条从Tu的最短路径,因为每条最短路径必须包含在v中。如果存在两条这样的路径,G有一个循环,情况并非如此。

    对于陈述IV),请考虑以下反例。让u,v in V位于TT

    G:=(V,E,w)

    假设PrimDijkstra从节点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}是从T1,2,4,3的唯一最短路径,{1,2}是从12的唯一最短路径; {1,3}是从13的唯一最短路径,{1,2}{2,4}是从14的唯一最短路径。此外,{4,2}{2,1}{1,3}是从43的唯一最短路径,而{2,3}是从23的唯一最短路径。总的来说,{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是正确的。这可以通过数学归纳证明。