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 已经存在,则不执行交换,并尝试寻找另一对合适的边。
- Parameters:
- G图
一个无向图
- nswap整数(可选,默认=1)
要执行的双边交换次数
- max_tries整数(可选)
最大尝试交换边的次数
- seed整数,random_state,或 None(默认)
随机数生成状态的指示器。 参见 Randomness 。
- Returns:
- G图
经过双边交换后的图。
- Raises:
- NetworkXError
如果
G
是有向的,或者 如果nswap
>max_tries
,或者 如果G
中节点少于 4 个或边少于 2 条。- NetworkXAlgorithmError
如果在执行
nswap
次交换之前,交换尝试次数超过max_tries
Notes
不强制执行任何连通性约束。
图 G 在原地修改。