具体图和一些关于最短路径的声明?

我陷入了一个具有挑战性的问题,我在笔记上读到。

我们知道在这个图中, 任意两个顶点之间的最短路径位于Minimum Spanning Tree (MST)上。图G (无negative权和所有权重distinct )给出,我们知道在这个图中任何两个顶点之间的最短路径是Minimum Spanning Tree (MST)。 (对于任何一对顶点和它们之间的任何最短路径,它都位于MST上)。 以下哪项是True

1)图G是一棵树。

2)每个{u,v}边的权重至少与从uv的最短路径中的最重边相等(相同)。

3)任意两个顶点之间的最短路径uv是唯一的。

4)假设从顶点s ,Prime(用于计算MST)和Dijkstra(用于计算最短路径)开始,按照相同的顺序处理和添加顶点到它们的树中。 (两个算法在处理和添加节点时以相同的顺序工作)

如何验证我这些选项? 这是一个充满挑战的问题。


  • 例如: V = {1, 2, 3}E = {(1, 2, 1), (2, 3, 2), (1, 3, 4)} (每个边被编码为一个元组(一个顶点,另一个顶点,权重))。 它不是一棵树,但所有最短路径都在最小生成树上。

  • 是。 如果此边的重量小于最短路径中最重边的重量,则该边比最短路径短(因为没有负重的边)。 因此,最短路径不是最短的。 这是一个矛盾。

  • 没有*。 假设我们有一个包含两个顶点{1, 2}和一个边的图,其权重为零。 第一个和第二个顶点之间有无限多的最短路径( [1, 2], [1, 2, 1, 2], ...

    *但是,任何两个顶点之间都有一个唯一的简单最短路径,因为树中任意两个顶点之间只有一条简单路径,由于问题陈述的存在,任何不完全位于最小生成树中的路径都会更长。在具有不同边权重的图中只有一个最小生成树。

  • 不考虑这棵树: V = {1, 2, 3, 4}E = {(1, 2, 3), (2, 3, 2), (1, 4, 4)} 。 假设开始顶点是1 。 Prim算法将采用第一个顶点,而不是第二个顶点,而第三个顶点只在第四个顶点之后。 但是Dijkstra算法将在第三个顶点之前占据第四个顶点。 发生这种情况的原因是第三个顶点在处理前两个顶点后更靠近树,但距起始节点的总距离较大。


  • 我不想给出完整的答案,但这里是你如何处理它:

  • 你能否将边缘添加到树中,使它不再是树,并且该树还包含所有最短路径?

  • 如果边缘比最重的边缘短,会发生什么?

  • 这是令人困惑的,因为问题显示“任何两个顶点之间的最短路径在MST上”,但没有解决可能存在多条最短路径的事实。 所以你可以假设“树上至少有一条最短路径”。 在这种情况下,只需通过MST连接两个顶点与重量等于成本的边,就可以得到答案。

  • 同样,你应该从顶点没有以相同顺序添加的情况开始

  • 链接地址: http://www.djcxy.com/p/6009.html

    上一篇: Specific Graph and some claims on shortest path?

    下一篇: a variation of shortest path algorithm