python - 使用 networkx 计算小世界系数
问题描述
我想使用 计算小世界系数(omega和sigma)networkx
。从引用的链接中,据说omega
应该介于-1
和之间1
。此外,如果sigma
大于 1,则表示小世界图。这是我的代码:
# create a small-world graph
import networkx as nx
G = nx.watts_strogatz_graph(n=20,k=2,p=0.2)
# compute the coefficients
print(nx.omega(G))
print(nx.sigma(G))
它返回1.05
foromega
和nan
for sigma
:
/Users/tiendh/deeplearning/lib/python3.7/site-packages/networkx/algorithms/smallworld.py:301: RuntimeWarning: invalid value encountered in double_scalars
sigma = (C / Cr) / (L / Lr)
nan
显然,omega
不在范围内(-1,1)
,sigma
无法计算。当我将重写概率 (p) 增加到0.5
时,结果如下:
>>> G = nx.watts_strogatz_graph(n=20,k=2,p=0.5)
>>> nx.sigma(G)
0.0
>>> nx.omega(G)
1.132464146023468
我的问题是:
- 这些方法(
nx.omega
和nx.sigma
)是否可靠,因为它们不符合描述? - 对于大图,这些方法真的很慢(例如,如果 n=2000,它会在我的计算机上永远运行)。有没有办法有效地计算系数?
解决方案
推荐阅读
- android - 限制谷歌地图上的交通层
- javascript - 为什么 Angular 6 尝试将所有 HTML 和 CSS 文件嵌入到 js 文件(main.js)中?
- android - Thr Video 从服务器下载后无法播放
- android - 在一个 react-native 项目中使用谷歌地图和 FCM
- python - 这个 ORM 查询是什么意思?
- mongodb - MongoDB & Spark:mongo-hadoop 和 mongo-spark 的区别
- android - 不同设备上的安卓多屏应用
- ios - 我们可以在 Windows 中构建 Ionic 应用程序并将其发送到 iPhone 并安装并运行吗?
- spring-boot - 带有弹簧调度程序的 Spring Boot
- c# - Aspnet 身份安全标记验证始终返回 false