如果为您提供了部分订单的集合,则拓扑排序将告诉您集合是否存在扩展到总订单的情况(在这种情况下,扩展名是与每个部分订单一致的总订单)。
我遇到了一个变化:
修正了一个集。你给出的序列σ 1,... σ ķ从绘制的元素的V没有重复(序列是长度在1个之间| V |)。
是否有一种方法可以固定每个序列的方向(正向或反向),以使所得到的链集合(视为部分顺序)允许扩展?
这个问题众所周知吗?
注意:方向是为整个序列选择的。因此,如果顺序是,你可以保持这种状态,或将其翻转到5 - 4 - 2 - 1,但你不能做任何事情。
1
如果每个序列的长度为则可以将每个序列视为无向边,并且我们要问的是,如果没有循环,则无向图是否可以定向为DAG。但是贪婪算法也可以。从边缘开始,任意调整方向,并尽可能地继续前进,如果卡住,就会知道这是不可能的。您是否尝试过这种变化?似乎可以正常工作。
—
Chandra Chekuri 2012年
嗯,每个无向图都可以定向为DAG。只需选择顶点的顺序并使用该顺序来定向边缘即可。
—
David Eppstein 2012年
你当然是对的,我不是在想。
—
Chandra Chekuri 2012年
在我的变体中,每个子序列的长度都正好为4,因此Yury的答案就开始了。我现在唯一的希望是,这些子序列具有非常特殊的结构并且彼此相关,所以也许特定于问题的东西会有所帮助。但是没有一般的锤子。
—
Suresh Venkat 2012年