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]。

Parameters:
nint

返回图中节点的数量。

kint

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

alphafloat

一个正的 float ,表示每个顶点的初始权重。数值越高意味着在步骤 3 中,节点将更像一个真正的均匀随机样本,数值越低意味着随着入度的增加,节点被选中的可能性越大。如果此参数不是正数,则会引发 ValueError

self_loopsbool

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

seedinteger, random_state, 或 None (默认)

随机数生成状态的指示器。 参见 Randomness

Returns:
MultiDiGraph

根据上述算法生成的 k -out-regular 多重有向图。

Raises:
ValueError

如果 alpha 不是正数。

Notes

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

References

[1]: Peterson, Nicholas R., 和 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>