当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX directed_joint_degree_graph用法及代码示例


本文简要介绍 networkx.generators.joint_degree_seq.directed_joint_degree_graph 的用法。

用法:

directed_joint_degree_graph(in_degrees, out_degrees, nkk, seed=None)

生成具有联合度的随机简单有向图。

参数

degree_seq元组列表(大小为 3)

degree 序列包含具有节点 id、in degree 和 out degree 的节点元组。

nkk整数词典

有向联合度字典,对于度为 k 的节点(dict 的第一级)和度为 l 的节点(dict 的第二级)说明了边的数量。

seed可散列对象,可选

随机数生成器的种子。

返回

G图形

具有指定输入的有向图。

抛出

NetworkXError

如果 degree_seq 和 nkk 不能实现为简单的有向图。

注意

与无向版本类似:在“while loop” 的每次迭代中,算法选择两个断开的节点 v 和 w,度数分别为 k 和 l,其中 nkk[k][l] 尚未达到其目标,即(对于给定的k,l): n_edges_add < nkk[k][l]。然后它添加边 (v,w) 并且总是将图 G 中的边数增加一。

该算法的智能在于,总是可以在断开的节点 v 和 w 之间添加一条边,对于该边,nkk[degree(v)][degree(w)] 尚未达到其目标,即使一个或两个节点都没有空闲存根。如果节点 v 或 w 没有空闲存根,我们执行 “neighbor switch”,这是一个边重新布线移动,在保持 nkk 不变的同时释放一个空闲存根。

定向版本的不同之处在于邻居交换机可能无法重新布线,但在这些情况下,可以重新分配不饱和节点以代替使用,详细说明和证明请参见 [1]。

该算法继续进行 “while loop” 的 E(图中的边数)迭代,此时给定 nkk[k][l] 的所有条目都已达到其目标值并且构造完成。

参考

[1] B. Tillman、A. Markopoulou、C. T. Butts 和 M. Gjoka,

“有向 2K 图的构造”。在过程中。 2017 年 KDD。

例子

>>> in_degrees = [0, 1, 1, 2]
>>> out_degrees = [1, 1, 1, 1]
>>> nkk = {1: {1: 2, 2: 2}}
>>> G = nx.directed_joint_degree_graph(in_degrees, out_degrees, nkk)
>>>

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.generators.joint_degree_seq.directed_joint_degree_graph。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。