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