给定n个点和这些点之间的距离d,我需要找到导致这些距离的相应的无向加权图。我尝试使用Prim的算法来找到MST,但是这个集合的大小为n-1,并且不包括所需的n个边缘。例如。给定n乘n距离
0 3 5
3 0 4
5 4 0
我需要找到相应的边缘:
1 - 2 = 3
1 - 3 = 5
2 - 3 = 4
结果如图所示:
3
1 --------- 2
\ /
\5 /4
\ /
\ /
3
然而,由于MST不包含任何循环,因此Prim将仅返回前2个边缘。
答案 0 :(得分:1)
导致这些距离的一个图是具有从每个节点到每个其他节点的边的图,并且该边的长度是根据矩阵的距离。 (我不确定你的意思是未加权导向,因为你给出的例子似乎是无向的,我不确定这里的权重和长度之间有什么区别。)
另一种选择是按照递增顺序考虑距离,就像使用Prim算法一样,并且检查边缘是否需要连接其两端,检查之间的最小距离是否为到目前为止重建的图中的那些末端与矩阵中的距离相同。如果不是,则添加边缘,即使到目前为止在图表中连接了末端。