如何在Python和Networkx中找到图形中的循环关系?

时间:2012-02-21 18:00:31

标签: python algorithm graph-theory networkx

考虑我有以下图表:

A -> B
B -> C
C -> D
C -> A

找到A - >的最简单方法是什么? B - > C - > A是循环关系?是否已经在NetworkX或其他易于使用的Python库中内置了这样的功能?

2 个答案:

答案 0 :(得分:9)

networkx.simple_cycles为你做这件事。

>>> import networkx as nx
>>> G = nx.DiGraph()
>>> G.add_edge('A', 'B')
>>> G.add_edge('B', 'C')
>>> G.add_edge('C', 'D')
>>> G.add_edge('C', 'A')
>>> nx.simple_cycles(G)
[['A', 'B', 'C', 'A']]

答案 1 :(得分:5)

使用Depth-First Search检测图表中的周期。