考虑以下问题:给定输入有向无环图,从到总阶数(例如整数)的某个集合的标注函数,在哪里被问到计算字典序最小的拓扑排序的来讲。更确切地说,一个拓扑排序的是的枚举作为,使得对于所有,每当有来自路径到在λ V 大号< 大号 ģ λ ģ V v = v 1,... ,v Ñ我≠ Ĵ v 我v Ĵ ģ,那么我们必须有。这样的拓扑排序的标签是的元素序列,其顺序为。这些序列(都具有长度)的字典顺序被定义为如果存在某个位置使得和对于所有。请注意,可以将中的每个标签分配给多个顶点这一事实(否则问题就不那么容易了)。l = λ (v 1),… ,λ (v n)| V | 升< LEX 升'我升我< 大号升' 我升Ĵ = 升' Ĵ Ĵ < 我š V
可以用计算变体(“按字典顺序计算最小拓扑排序”)或决策变体(“此输入字是最小拓扑排序吗?”)来说明此问题。我的问题是,这个问题的复杂性是什么?是在PTIME中(或者在FP中,对于计算变体)还是NP困难的?如果一般问题是NP难题,那么我也对可能的标签集预先固定的版本(即,可能的标签数量恒定)感兴趣。
备注:
这是一个激发问题的实际小例子。我们可以看到DAG代表了一个项目的任务(它们之间具有依赖关系),标签是代表每个任务花费天数的整数。要完成项目,无论我选择任务的顺序如何,都将花费相同的时间。但是,我想打动我的老板,为此,我希望尽快完成尽可能多的任务(以贪婪的方式进行,即使这意味着最后的速度很慢,因为仍然存在较难的任务)。选择按字典顺序排列的最小顺序可优化以下条件:我要选择一个顺序,以便没有其他顺序和天数在之后ø ' Ñ Ñ天,我会用命令完成更多的任务,而不是用命令完成任务(即,如果老板看着时间,我对印象会更好),但是对于所有我完成的命令不少于不是命令。 ø Ñ Ò '米< ñ ö ' ø
对此问题提供一些见解:我已经从以前的 答案中知道以下相关问题很困难:“是否存在实现以下顺序的拓扑排序”?但是,在这里我想要一个对于该词典顺序最小的序列的事实似乎在很大程度上限制了可能实现该顺序的拓扑顺序(特别是那些其他答案的减少似乎不再起作用)。直观地讲,在更少的情况下我们可以选择。
请注意,就集合覆盖而言,问题似乎有有趣的改写(将问题限制为两部分的DAG,即高度为2的DAG):给定集合,以,按字典顺序最小化序列,,,,。该问题也可以在无向图上重述(按照使未覆盖标签的词典顺序最小化的顺序逐步扩展图的连接区域)。但是,由于该序列具有| S 1 | | S 2 ∖ S 1 | | 小号3 ∖ (小号1 ∪ 小号2)| … | 小号ñ ∖ (小号1 ∪ ⋯ ∪ 小号ñ - 1)| 为了始终按字典顺序的定义贪婪,我无法简化(例如Steiner树)的工作。
预先感谢您的想法!