微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

“非强连通图”在centiserve质心计算中意味着什么?

如何解决“非强连通图”在centiserve质心计算中意味着什么?

在问题中,我有四个不同的网络,分别从4个不同的csv文件加载。当我使用centroid库计算centiserve时,每个失败。另一方面,如果我生成一个随机的ER网络,则质心计算将起作用。

我研究了质心函数,最终发现它使用igraph这个功能is.connected(g,mode="strong")

检查网络是否连接。

According to wikipedia如果可以从网络中的随机节点访问所有节点,则图是牢固连接的。为此,我使用igraph的decompose()函数计算了网络的组成部分,并且所有网络都有一个连接的组成部分:length(decompose(net))始终等于1。但是centroid(net)始终为1返回错误

最终,问题是:该函数在验证图形是否合适时究竟在寻找什么?为什么我的网络只有一个连接的组件,但是igraph的is.connected()函数返回False?

某些代码

#load file
finalNet <- read.csv("net.csv",sep=",",header=T)
#get network
net <- graph_from_data_frame(finalNet[,c(1,2)])
#decompose says that there is a single connected component
length(decompose(net))
#while centroid does not work!
centroid(net)

网络可用here

解决方法

好的,我找到了答案。问题在于,如果没有另外指定,函数graph_from_data_frame将创建有向网络。

因此,使我的示例正常工作的解决方案是按非定向方式加载网络:

net <- graph_from_data_frame(finalNet[,c(1,2)],directed=F)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。