循环的拓扑排序

时间:2015-07-02 18:14:50

标签: algorithm graph

我从不同的来源研究如果存在哈密尔顿路径,拓扑排序顺序是唯一的;没有其他顺序尊重路径的边缘。 如果我们考虑有向图的简单循环,则存在哈密顿路径,但不存在拓扑排序,因为每个节点都要求在其之前访问另一个节点。我在这里错过了什么,或者它是一个例外还是其他任何东西。提前致谢 。

2 个答案:

答案 0 :(得分:3)

正确的定理陈述是,如果存在哈密顿路径且存在拓扑顺序,则该拓扑顺序是唯一的。这可以通过汉密尔顿路径上相对于其他每个拓扑顺序存在的反向弧来证明。

答案 1 :(得分:3)

IIUC,你引用了部分内容。以此为例Wiki entry

  

如果拓扑排序具有排序顺序中所有连续顶点对通过边连接的属性,则这些边在DAG中形成有向哈密顿路径。如果存在哈密尔顿路径,则拓扑排序顺序是唯一的;没有其他顺序尊重路径的边缘。相反,如果拓扑排序不形成哈密顿路径,则DAG将具有两个或更多有效的拓扑排序,因为在这种情况下,总是可以通过交换两个未通过边连接的连续顶点来形成第二个有效排序彼此。

所以你的引用

  

如果存在哈密尔顿路径

表示“如果在拓扑排序中存在哈密顿路径”。

因此,您的示例条件在此上下文中无效,因为图形不是DAG,并且拓扑排序根本不存在