Graph 唯一拓扑排序图的前提条件

Graph 唯一拓扑排序图的前提条件,graph,directed-acyclic-graphs,Graph,Directed Acyclic Graphs,让我们假设一个有问题的图是一个DAG(有向无环图) 问题:我能否得出这样的结论:当且仅当该图的一个顶点没有传入边时,该图将具有唯一的拓扑排序 换句话说,只有一个没有传入边的顶点才有必要(但不足以)生成唯一的拓扑排序吗?Haaaaa,好的。对不起,误会了 在这种情况下,我假设你是对的,下面是一个证明的草图: 我们有一个唯一的拓扑排序=>我们只有一个顶点可以放在第一位=>对于每个顶点,除了一个,放在第一位是不合法的=>对于每个顶点,除了一个,我们有传入边 希望现在我回答了你的问题……拓扑排序将是唯一

让我们假设一个有问题的图是一个DAG(有向无环图)

问题:我能否得出这样的结论:当且仅当该图的一个顶点没有传入边时,该图将具有唯一的拓扑排序


换句话说,只有一个没有传入边的顶点才有必要(但不足以)生成唯一的拓扑排序吗?

Haaaaa,好的。对不起,误会了

在这种情况下,我假设你是对的,下面是一个证明的草图:

我们有一个唯一的拓扑排序=>我们只有一个顶点可以放在第一位=>对于每个顶点,除了一个,放在第一位是不合法的=>对于每个顶点,除了一个,我们有传入边


希望现在我回答了你的问题……

拓扑排序将是唯一的,当且仅当拓扑顺序中的每对连续顶点之间存在一条有向边(即,有向图有一条边)

哈密顿路径只意味着两个顶点之间的路径只访问每个顶点一次,并不意味着一个顶点必须没有传入边。你可以得到一个哈密顿路径,它实际上是一个。这仍然会生成一个独特的拓扑排序(当然,如果这对您很重要的话,它也会是一个循环)


希望这有帮助

是的,你可以说,作为一个必要条件,如果有多个节点的阶数=0,那么就不会有哈密顿路径,因此没有唯一的拓扑顺序。只有图的起始节点(度=0)将没有传入边,其余所有顶点都必须具有来自其拓扑祖先的传入边,这意味着节点在拓扑排序中位于当前节点之前。如果拓扑顺序中的每个连续节点都没有边,则DAG将没有唯一的顺序。

否!下图只有一个顶点,没有传入边,并且有两种可能的解决方案

1 -> 2
3 -> 4
3 -> 1
4 -> 2
两种解决方案是:

2 0 3 1
2 3 0 1

有人给出了答案。这里我只想给你们一个反例:G={(1,2),(1,3)}。在这种情况下,有两种有效的拓扑排序:1,2,3和1,3,2

我不是问我的条件是否充分(我知道不是),而是问它是否必要。@DanielScocco:“如果且仅如果”表示必要和充分。有一个顶点没有传入边是一个图成为DAG的必要条件。否则它至少有一个循环,并且它不是DAG,所以它不会有拓扑排序。