當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。