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

问题描述 投票:0回答:1

假设我在R中有这个图形(我使用的是igraph)。

zach <- graph("Zachary")

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

diameter(zach)
[1] 5

我如何计算一个子图(或多个子图)的大小?扎克 以一些给定的直径,比如4?

比如说4? 扎克 有78个节点,任意两个节点之间的最长最短路径是5,有没有办法计算有多少节点的最长最短路径是4?

更一般地说,对于任何图 g 和直径 x 有什么办法可以返回 g 直径 x?

谢谢你的帮助!假设我在R中有这样一个图(我用的是igraph):扎克?

r networking graph igraph
1个回答
0
投票

这就是简单但不完美的解决方案。我发现在Zachary Karate Club中,直径为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 带子图 空手道.

希望你能从中得到启发。

© www.soinside.com 2019 - 2024. All rights reserved.