我陷入了一个具有挑战性的问题,我读到了我的笔记。
给出了无向,加权和连通图G
,(没有negative
权重且所有权重都为distinct
),我们在此图中知道 <之间的最短路径em>任何 两个顶点在Minimum Spanning Tree
(MST)上。 (对于任何一对顶点以及它们之间的任何最短路径,它位于MST上)。以下哪项是True
?
1)图G是树。
2)每个 {u,v} 边缘的权重,至少与 u 到 v 。
3)任何两个顶点之间的最短路径 u , v 是唯一的。
4)假设从顶点
s
,Prime(用于计算MST)和Dijkstra(用于计算最短路径)开始,处理并添加 顶点到它们的树中,具有相同的顺序。 (两种算法在处理和添加节点时的顺序相同)
如何验证这些选项?这是一个充满挑战的问题。
答案 0 :(得分:1)
我不想给出完整的答案,但这是你如何处理它:
您是否可以将树[s]添加到树中,使其不再是树,而树仍包含所有最短路径?
如果边缘比最重的边缘短,会发生什么?
令人困惑,因为问题是&#34;任何两个顶点之间的最短路径在MST&#34;上,但没有解决可能存在多个最短路径的事实。所以你可以假设&#34;树上至少有一条最短的路径&#34;。在这种情况下,只需通过MST将两个顶点连接到权重等于成本的边缘,就可以得到答案。
同样,如果没有以相同的顺序添加顶点,您应该从发生的事情开始
答案 1 :(得分:1)
没有。例如: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的算法将在第三个顶点之前取第四个顶点。之所以会发生这种情况,是因为第三个顶点在处理前两个顶点之后更靠近树,但是从起始节点到它的总距离更大。