如何将无向图转换为无循环的有向图(定向非循环图)

时间:2017-08-18 08:44:32

标签: algorithm graph language-agnostic graph-algorithm

我有一个无向图,我希望将其转换为有向图。我几乎没有约束,比如已经有了一些有针对性的关系。

1 个答案:

答案 0 :(得分:1)

您实际上是在尝试从基础架构图中构建DAG。请注意,有向图是DAG,当且仅当它可以是topologically sorted

所以,让我们从结束到开始。首先创建拓扑排序,然后以遵循排序的方式连接节点。

  • 首先,删除所有“未确定”的边缘,并仅保留已有指示的边缘。
  • 然后,在图表上进行拓扑排序并找到一些拓扑排序(如果没有,则在给定限制下无法解决问题)。
  • 基于它,从头到尾设置每个边的方向,使源节点具有较低的拓扑排序。

算法的时间复杂度在节点数和边数上是线性的。