graphscope.nx.generators.directed.random_k_out_graph

graphscope.nx.generators.directed.random_k_out_graph(n, k, alpha, self_loops=True, seed=None)[源代码]

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

一个随机k-out图通过优先连接生成,是由以下算法产生的多重有向图。

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

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

  3. 根据权重比例选择一个节点 v

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

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

有关这种随机图模型的更多信息,请参阅[1]。

Parameters:
  • n (int) – 返回图中节点的数量。

  • k (int) – 返回图中每个节点的出度。

  • alpha (float) – 一个正的float值,表示每个顶点的初始权重。数值越大意味着在上述步骤3中,节点选择会更接近真正的均匀随机抽样;数值越小则意味着节点更可能随着入度的增加而被选中。如果该参数不是正数,则会引发ValueError错误。

  • self_loops (bool) - 如果为True,在生成图时允许自环。

  • seed (integer, random_state, or None (default)) - 随机数生成状态的指示器。 参见随机性

Returns:

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

Return type:

MultiDiGraph

Raises:

ValueError – 如果 alpha 不是正数。

备注

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

参考文献

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

"两个随机k-out有向图之间的距离,包含与不包含优先连接的情况。" arXiv预印本 arXiv:1311.5961 (2013)。