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 在原地修改。