directed_joint_degree_graph#

directed_joint_degree_graph(in_degrees, out_degrees, nkk, seed=None)[源代码]#

生成具有关节度的随机简单有向图。

参数
degree_seq元组列表(大小为3)

度序列包含节点ID、入度和出度的节点元组。

nkk整数词典

有向联合度词典,对于出度为k(第一级词典)的节点和为in度l(词典第二级)的节点描述边的数量。

seedHasable对象,可选

随机数生成器的种子。

返回
G

具有指定输入的有向图。

加薪
NetworkXError

如果度序列和nkk不能作为一个简单的有向图来实现。

笔记

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

该算法的智能在于,在断开连接的节点v和w之间始终可以添加一条边,而nkk [度(V)] [度(W)] 尚未达到其目标,即使一个或两个节点没有可用存根。如果节点v或w没有空闲存根,则执行“邻居切换”,即边重新布线移动,释放空闲存根,同时保持nkk不变。

定向版本的区别在于,邻居交换机可能无法重新布线,但在这些情况下,可以重新分配非饱和节点以供使用,请参见 [1] 详细的描述和证明。

该算法继续“while循环”的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)
>>>