topological_generations#

topological_generations(G)[source]#

将DAG分层为代。

拓扑代是节点的集合,其中每个代中的节点的祖先保证在前一代中,并且任何节点的后代保证在后一代中。节点保证在其所属的最早可能代中。

Parameters:
GNetworkX有向图

一个有向无环图(DAG)

Yields:
节点集合

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

Raises:
NetworkXError

代仅针对有向图定义。如果图 G 是无向的,则引发:exc:NetworkXError

NetworkXUnfeasible

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

RuntimeError

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

See also

topological_sort

Notes

一个节点所在的代也可以通过从该节点到最远叶节点的最大路径距离来确定。可以使用 enumerate(topological_generations(G)) 从该函数中获取该值。

Examples

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