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) >>>