如果您具有拓扑排序的图,基于根的最大距离的稳定排序是否可以保留拓扑顺序?

问题描述

DAG的部分顺序应该与从任何给定根可到达的任何子图的最大距离总顺序兼容,对吗?那么稳定排序会保留拓扑顺序吗?另外,是否有一种好的算法可以对拓扑进行排序,同时还考虑子图中的总顺序,该顺序是到根的最大距离的函数,并且与拓扑顺序兼容?

编辑:指定所考虑的距离度量为最大距离。假设根数少,并且存储到每个根的最大距离就很好。

解决方法

具有顶点A,B,C,D且边缘为A-> B-> C,A-> D的树具有有效的拓扑顺序ABCD,但dist(A,D)= 1和dist(A,C )= 2。因此,按距离排序的排序(无论是否稳定)都不会保留此顺序。

具有顶点A,B,C,D且边缘为A-> B A-> C-> D-> B的树没有循环(因为有向图)。 dist(A,B)= 1,dist(A,D)= 2,但D必须以任何拓扑顺序出现在B之前。因此,该图没有按与A的距离排序的顺序保留的拓扑顺序。

,

我可以肯定地回答另一个问题。

给定任何两个偏序,我们可以构造一个新的偏序,其中<>的定义是通过比较第一个,然后打破第二个关系。现在,使用新的偏序进行拓扑排序,并保证保留与第一个相匹配的所有关系,以及与第二个相兼容的所有与第二个关系的关系。

如果两个订单兼容,它将尊重两个订单中的所有关系。