directed_edge_swap#

directed_edge_swap(G, *, nswap=1, max_tries=100, seed=None)[source]#

在有向图中交换三条边,同时保持节点的度数不变。

有向边交换通过交换三条边,使得 a -> b -> c -> d 变为 a -> c -> b -> d。这种交换模式允许在有向图中达到所有可能的状态,同时保持入度和出度分布不变。

如果交换会创建平行边(例如,如果在前面的例子中 a -> c 已经存在),则会尝试找到另一组合适的三条边。

Parameters:
GDiGraph

一个有向图

nswap整数(可选,默认=1)

要执行的三条边(有向)交换的次数

max_tries整数(可选,默认=100)

尝试交换边的最大次数

seed整数,random_state,或 None(默认)

随机数生成状态的指示器。 参见 Randomness

Returns:
GDiGraph

交换边后的图。

Raises:
NetworkXError

如果 G 不是有向图,或者 如果 nswap > max_tries,或者 如果 G 中节点数少于 4 个或边数少于 3 条。

NetworkXAlgorithmError

如果在执行 nswap 次交换之前,交换尝试次数超过 max_tries

Notes

不强制任何连通性约束。

图 G 是就地修改的。

后续的交换允许撤销之前的交换。

References

[1]

Erdős, Péter L., 等人。“一个简单的 Havel-Hakimi 类型算法,用于实现有向图的图形度序列。” ArXiv:0905.4913 [Math], 2010 年 1 月。https://doi.org/10.48550/arXiv.0905.4913. 2010 年发表于 Elec. J. Combinatorics (17(1)). R66. http://www.combinatorics.org/Volume_17/PDF/v17i1r66.pdf

[2]

“组合学 - 通过 2-边交换达到给定度序列的所有可能简单有向图。” Mathematics Stack Exchange, https://math.stackexchange.com/questions/22272/. 访问于 2022 年 5 月 30 日。