python - 遍历代表真实操作的图

标签 python graph diagram

问候,

任何人都可以告诉我什么算法用于遍历这样的有向无环图/图:

Ex. Diagram nodes : A, B, C, D1, D2, D3, E
Diagram edges : A → B, B → C, C → D1, C → D2, C → D3, D1 → E, D2 → E, D3 → E

遍历是这样的:

A → B → C → D1, then C → D2, then C → D3,
And after that, they join : D1 → E, D2 → E, D3 → E

我的图表代表实时操作。大多数操作是线性的,但是当操作按条件拆分时,每个拆分(例如节点 C 拆分为 D1、D2 和 D3)在它们再次加入之前等待所有操作完成(例如节点 D1、D2 和 D3 在节点 E 处加入) )

我需要遍历我的节点并按照这个确切的顺序调用每个操作。

我使用 Python 和 pygraph,但如果你想发布一些算法,你可以使用任何语言。

也许这是这个算法的标准名称,比如深度优先搜索、Dijkstra 算法、爬山算法,我不知道?...

非常非常感谢!

最佳答案

A topological sort将为您提供在给定边上执行操作所需的顺序。

关于python - 遍历代表真实操作的图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6156392/

相关文章:

python - Scikit 学习线性回归预测标签

python - Tkinter 网格布局不会扩展

functional-programming - 功能编程-标准符号,图表等

sql - 在 ER 图中,我怎么知道您何时使用一个或多个?

diagram - 是否有用于以编程方式创建图表的好工具?

python - 我的 if 和 else 语句不会互相绕过

python - 在 python 中使用 drawContours OpenCV 函数

algorithm - 边缘可以被障碍物阻挡的图搜索算法

java - 树节点之间的路径,边缘之间的成本在遍历方向上不同

R 直方图缩减 y 范围