directed_edge_swap#
- directed_edge_swap(G, *, nswap=1, max_tries=100, seed=None)[源码]#
在有向图中交换三条边,同时保持节点度不变。
有向边交换会交换三条边,使得 a -> b -> c -> d 变成 a -> c -> b -> d。这种交换模式可以使有向图中所有具有相同入度和出度分布的状态都可达。
如果交换会创建平行边(例如,如果之前的例子中已经存在 a -> c),则会再次尝试寻找合适的三条边组。
- 参数:
- GDiGraph
一个有向图
- nswap整数 (可选,默认值=1)
要执行的三边(有向)交换次数
- max_tries整数 (可选,默认值=100)
尝试交换边的最大次数
- seed整数、random_state 或 None (默认值)
随机数生成状态的指示器。参阅 随机性。
- 返回:
- GDiGraph
交换边后的图。
- 引发:
- NetworkXError
如果
G
不是有向图,或者如果 nswap > max_tries,或者如果G
中的节点少于 4 个或边少于 3 条。- NetworkXAlgorithmError
如果在达到
nswap
次交换之前,交换尝试次数超过了max_tries
注意
不强制执行任何连通性约束。
图 G 在原地修改。
后来的交换允许撤销先前的交换。
参考文献
[1]Erdős, Péter L., et al. “A Simple Havel-Hakimi Type Algorithm to Realize Graphical Degree Sequences of Directed Graphs.” ArXiv:0905.4913 [Math], Jan. 2010. 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]“Combinatorics - Reaching All Possible Simple Directed Graphs with a given Degree Sequence with 2-Edge Swaps.” Mathematics Stack Exchange, https://math.stackexchange.com/questions/22272/。访问日期:2022 年 5 月 30 日。