我该如何使用Kruskal算法在R(3.0.0-Linux x32)中计算最小生成树?
我使用igraph(0.6.5)库创建了一个带权重的完全图,如下所示:
set.seed(1234567890)
g <- graph.full(n = 20)
E(g)$weight <- round(runif(ecount(g)), 2) * 100
我能够使用Prim(igraph)计算最小生成树。
mstPrim <- minimum.spanning.tree(g, algorithm = "prim")
不幸的是,“igraph”没有实现Kruskal算法。
我可以将生成的图表示为数据框:
edgeMatrix <- data.frame(cbind(get.edgelist(g), E(g)$weight))
names(edgeMatrix) <- c("from", "to", "weight")
有没有一种简单的方法在 R 中使用 Kruskal 算法计算最小生成树?