expected_degree_graph#
- expected_degree_graph(w, seed=None, selfloops=True)[source]#
返回一个具有给定期望度的随机图。
给定一个长度为 \(n\) 的期望度序列 \(W=(w_0,w_1,\ldots,w_{n-1})\),该算法以以下概率在节点 \(u\) 和节点 \(v\) 之间分配一条边:
\[p_{uv} = \frac{w_u w_v}{\sum_k w_k} .\]- Parameters:
- wlist
期望度的列表。
- selfloops: bool (默认=True)
设置为 False 以移除自环边的可能性。
- seedinteger, random_state, 或 None (默认)
随机数生成状态的指示器。 参见 Randomness 。
- Returns:
- Graph
Notes
节点具有与期望度输入序列索引对应的整数标签。
该算法的复杂度为 \(\mathcal{O}(n+m)\),其中 \(n\) 是节点数,\(m\) 是期望的边数。
参考文献 [1] 包括自环边的可能性。设置 selfloops=False 以生成没有自环边的图。
对于有限图,该模型不会精确生成给定的期望度序列。相反,期望度如下。
对于没有自环的情况(selfloops=False):
\[E[deg(u)] = \sum_{v \ne u} p_{uv} = w_u \left( 1 - \frac{w_u}{\sum_k w_k} \right) .\]NetworkX 使用标准约定,即自环边在节点的度数中计为 2,因此带有自环(selfloops=True):
\[E[deg(u)] = \sum_{v \ne u} p_{uv} + 2 p_{uu} = w_u \left( 1 + \frac{w_u}{\sum_k w_k} \right) .\]References
[1]Fan Chung 和 L. Lu,具有给定期望度序列的随机图中的连通分量,Ann. Combinatorics, 6, pp. 125-145, 2002.
[2]Joel Miller 和 Aric Hagberg, 高效生成具有给定期望度的网络, 在 Algorithms and Models for the Web-Graph (WAW 2011) 中, Alan Frieze, Paul Horn, 和 Paweł Prałat (Eds), LNCS 6732, pp. 115-126, 2011.
Examples
>>> z = [10 for i in range(100)] >>> G = nx.expected_degree_graph(z)