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


Python NetworkX connected_double_edge_swap用法及代碼示例


本文簡要介紹 networkx.algorithms.swap.connected_double_edge_swap 的用法。

用法:

connected_double_edge_swap(G, nswap=1, _window_threshold=3, seed=None)

嘗試在圖形 G 中指定數量的 double-edge 交換。

double-edge 交換刪除兩個隨機選擇的邊 (u, v)(x, y) 並創建新邊 (u, x)(v, y)

u--v            u  v
       becomes  |  |
x--y            x  y

如果 (u, x)(v, y) 已存在,則不執行交換,因此交換邊的實際數量始終為 at most nswap

參數

G圖形

無向圖

nswap整數(可選,默認=1)

要執行的double-edge 交換次數

_window_threshold整數

每次交換後將檢查圖形連接性的窗口大小。

此函數中的“window” 是一個動態更新的整數,表示在檢查圖形是否保持連接之前嘗試進行交換的次數。它是一種優化,用於減少算法的運行時間,以換取增加的實現複雜性。

如果窗口大小低於此閾值,則算法在每次交換後檢查圖是否保持連接,方法是檢查是否存在連接剛剛刪除邊的兩個節點的路徑。如果窗口大小高於此閾值,則算法執行窗口中的所有交換,然後才檢查圖形是否仍然連接。

seed整數、random_state 或無(默認)

隨機數生成狀態的指示符。請參閱隨機性。

返回

int

兌換成功次數

拋出

NetworkXError

如果輸入圖未連接,或者該圖的節點少於四個。

注意

初始圖G 必須是連接的,並且生成的圖是連接的。圖 G 已就地修改。

參考

1

C. Gkantsidis and M. Mihail and E. Zegura, The Markov chain simulation method for generating connected power law random graphs, 2003. http://citeseer.ist.psu.edu/gkantsidis03markov.html

相關用法


注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.algorithms.swap.connected_double_edge_swap。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。