假设我正在运行Dijkstra算法来访问所有节点(而不是原始初始节点和目标节点),即我正在检查是否访问了所有节点,而不是目标节点。该算法会生成MST(最小生成树)吗? (和Prim相似吗?)
答案 0 :(得分:0)
没有。考虑一个看起来像正方形的图表,三个边缘成本为1
,剩下的一个成本为2
。此图的MST成本为3
,但如果您在包含昂贵边缘的顶点上启动Dijkstra算法,那么将采用该算法,因为它是连接节点的最短路径。
酷ASCII可视化:
1
A------B
| |
1| |1
| |
C------D
2
如果您在C
启动Dijkstra,CD
是从C
到D
的最短路径,但它不能包含在MST中。
答案 1 :(得分:0)
它不会生成MST,如此示例图所示:
... A
.... 10 -'''' \
S 2
'''' 11 -.... \
''''' B
如果我们在节点S处启动Dijkstra算法,结果树将如下所示:
... A
.... 10 -''''
S
'''' 11 -....
''''' B
总边长为21,而(在这种情况下是唯一的)MST将是:
... A
.... 10 -'''' \
S 2
\
B
共导致12人。