connected_double_edge_swap#

connected_double_edge_swap(G, nswap=1, _window_threshold=3, seed=None)[源代码]#

尝试图形中指定数量的双边交换 G .

双边交换将删除随机选择的两条边 (u, v)(x, y) 并创建新边 (u, x)(v, y) ::

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

如果任一 (u, x)(v, y) 已经存在,则不执行交换,因此交换的实际边数始终为 至多 nswap .

参数
G图表

无向图

nswap整数(可选,默认为1)

要执行的双边互换数量

_window_threshold整数

窗口大小,在每次交换后,将检查图形的连接性。

此函数中的“window”是一个动态更新的整数,表示在检查图形是否保持连接之前要进行的交换尝试次数。它是一种优化方法,用于减少算法的运行时间,以提高实现的复杂性。

如果窗口大小低于此阈值,则算法会在每次交换后检查图形是否保持连接,方法是检查是否存在连接刚删除边缘的两个节点的路径。如果窗口大小高于此阈值,则算法执行窗口中的所有交换,然后检查图形是否仍然连接。

seed整数、随机状态或无(默认)

随机数生成状态的指示器。见 Randomness .

返回
集成

成功交换的数量

加薪
NetworkXError

如果输入图形未连接,或者图形的节点少于四个。

笔记

初始图形 G 必须连接,并连接结果图。图 G 已就地修改。

工具书类

1

C.Gkantsidis和M.Mihail和E.Zegura,《产生连接幂律随机图的马尔可夫链模拟方法》,2003年。http://citeseer.ist.psu.edu/gkantsidis03markov.html