topological_generations#

topological_generations(G)[源码]#

将有向无环图(DAG)分层为世代。

拓扑世代是一组节点的集合,其中每个世代中节点的祖先保证属于前一个世代,而任何后代都保证属于后一个世代。节点被保证属于它们可能属于的最早世代。

参数:
GNetworkX 有向图

一个有向无环图 (DAG)

生成值:
节点集合

生成表示每个世代的节点集合。

抛出异常:
NetworkXError

世代仅定义于有向图。如果图 G 是无向的,则抛出 NetworkXError

NetworkXUnfeasible

如果 G 不是有向无环图 (DAG),则不存在拓扑世代,并抛出 NetworkXUnfeasible 异常。如果在处理返回的迭代器时 G 发生改变,也可能抛出此异常。

RuntimeError

如果在处理返回的迭代器时 G 发生改变。

另请参阅

topological_sort

备注

节点所在的世代也可以通过计算该节点到最远叶节点的路径最大距离来确定。使用 enumerate(topological_generations(G)) 调用此函数可以获得该值。

示例

>>> DG = nx.DiGraph([(2, 1), (3, 1)])
>>> [sorted(generation) for generation in nx.topological_generations(DG)]
[[2, 3], [1]]