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 日。