random_k_out_graph#

random_k_out_graph(n, k, alpha, self_loops=True, seed=None)[source]#

返回一个带有优先连接的随机 k-out 图。

带有优先连接的随机 k-out 图是使用以下算法生成的多重有向图。

  1. 从一个空有向图开始,并将每个节点的初始权重设置为 alpha

  2. 从出度小于 k 的节点中均匀随机选择一个节点 u

  3. 根据其权重成比例的概率选择一个节点 v

  4. 添加一条从 uv 的有向边,并将 v 的权重增加一。

  5. 如果每个节点的出度都为 k,则停止,否则从步骤 2 重复。

有关此随机图模型的更多信息,请参见 [1]。

参数:
nint

返回的图中的节点数量。

kint

返回的图中每个节点的出度。

alphafloat

一个正 float,表示每个顶点的初始权重。数值越高,意味着在上述步骤 3 中,节点更倾向于像真正的均匀随机样本那样被选择;数值越低,意味着节点越有可能随着其入度增加而被选择。如果此参数非正,则会引发 ValueError

self_loopsbool

如果为 True,则在生成图时允许自环。

seedinteger, random_state, or None (default)

随机数生成状态的指示器。详见 随机性

返回:
MultiDiGraph

根据上述算法生成的 k-出度正则多重有向图。

引发:
ValueError

如果 alpha 非正。

注意

返回的多重有向图可能不是强连通的,甚至不是弱连通的。

参考文献

[1]: Peterson, Nicholas R., and Boris Pittel.

“Distance between two random k-out digraphs, with and without preferential attachment.” arXiv preprint arXiv:1311.5961 (2013). <https://arxiv.org/abs/1311.5961>