给定一个包含N个顶点的图形,其中每个顶点之间的距离存储在元组中,T1 = (d11, d12, …, d1n) to Tn = (dn1, dn2, …, dnn)
。从顶点V1开始查找此图形的最小生成树。另外,打印出需要行驶这棵生成树的总距离。
Example:
For N =5
T1 = (0, 4, 5, 7, 5)
T2 = (4, 0, 6, 2, 5)
T3 = (5, 6, 0, 2, 1)
T4 = (7, 2, 2, 0, 5)
T5 = (5, 5, 1, 5, 0)
Selection of edges according to minimum distance are:
V1 -> V2 = 4
V2 -> V4 = 2
V4 -> V3 = 2
V3 -> V5 = 1
Thus, MST is V1 -> V2 -> V4 -> V3 -> V5 and the distance travelled is 9 (4+2+2+1)
实际上,我不知道如何在R中创建一个由n个顶点组成的图。
我在谷歌上搜索了一下,但是没有理解如何解决上述问题。
请帮助我。
adj = rbind(T1, T2, T3, T4, T5)
,然后读入igraph
:g = graph_from_adjacency_matrix(adj, weighted = TRUE)
。然后您就可以计算mst
了。 - user20650T1,T2,T3,T4,T5
是从顶点到距离。我怎么才能在创建图之前知道这些距离呢? - Navyamst(g)
,但也许可以使用mst(g, weights = E(g)$weights)
? - user20650sum(E(mg)$weight)
,其中mg
是最小生成树图。 - user20650