double_edge_swap#
- double_edge_swap(G, nswap=1, max_tries=100, seed=None)[source]#
在保持节点度数不变的情况下交换图中的两条边。
双边交换移除两条随机选择的边 u-v 和 x-y,并创建新边 u-x 和 v-y
u--v u v becomes | | x--y x y
如果边 u-x 或 v-y 已经存在,则不执行交换,并尝试另找合适的边对。
- 参数:
- G图
一个无向图
- nswap整数 (可选,默认为 1)
要执行的双边交换次数
- max_tries整数 (可选)
尝试交换边的最大次数
- seed整数, random_state 或 None (默认)
随机数生成状态的指示器。参见 随机性。
- 返回值:
- G图
执行双边交换后的图。
- 抛出异常:
- NetworkXError
如果
G
是有向图,或如果nswap
>max_tries
,或如果G
中的节点少于 4 个或边少于 2 条。- NetworkXAlgorithmError
如果在完成
nswap
次交换之前,尝试交换的次数超过max_tries
注释
不强制执行任何连通性约束。
图 G 被原地修改。