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