cycle_basis#

cycle_basis(G, root=None)[source]#

返回一个由图 G 的循环基组成的列表。

一个网络的循环基是一个最小集合的循环,使得网络中的任何循环都可以表示为基中循环的和。这里循环的和定义为边的“异或”。循环基在某些应用中非常有用,例如在使用基尔霍夫定律推导电路方程时。

Parameters:
GNetworkX 图
root节点, 可选

指定基的起始节点。

Returns:
一个循环列表的列表。每个循环列表是一个节点列表,这些节点在 G 中形成一个循环(回路)。

Notes

这是从算法 CACM 491 [1] 改编而来的。

References

[1]

Paton, K. 一种寻找图的基本循环集的算法。Comm. ACM 12, 9 (1969年9月), 514-518.

Examples

>>> G = nx.Graph()
>>> nx.add_cycle(G, [0, 1, 2, 3])
>>> nx.add_cycle(G, [0, 3, 4, 5])
>>> nx.cycle_basis(G, 0)
[[3, 4, 5, 0], [1, 2, 3, 0]]