直径小于 x 的图形的百分比?在 igraph 和 R 中



>假设我在R中有这个图(我正在使用igraph(:

zach <- graph("Zachary")

我知道如何计算它的直径:

diameter(zach)
[1] 5

我如何计算具有某个给定直径(例如 4(的zach子图(或多个子图(的大小?

例如,zach有 78 个节点,任意两个节点之间的最长最短路径为 5。有没有办法计算有多少个节点的最长最短路径为 4?

更一般地说,对于任何图形 g 和直径x 有没有办法返回直径为xg集?

谢谢!

这是一个简单但不完美的解决方案。我发现在扎卡里空手道俱乐部,直径是13,有34个节点。据此,我编写了以下代码。在这里,我删除了最长的最短路径。

Mat = shortest.paths(karate,v=V(karate),to=V(karate),mode = "all")
Mat = ifelse(Mat>12,1,0)
g = graph_from_adjacency_matrix(Mat,mode = "undirected")
elist = get.edgelist(g)
g2 = graph_from_edgelist(elist)
for (i in 1:vcount(g2)) {
karate = delete.vertices(karate,V(g2)$name[i])
} 

现在,在删除了之间具有最长最短路径的节点后,我发现了带有子图空手道直径 11

希望你能从中得到想法。

最新更新