词典上标记的DAG的最小拓扑排序


13

考虑以下问题:给定输入有向无环图,从到总阶数(例如整数)的某个集合的标注函数,在哪里被问到计算字典序最小的拓扑排序的来讲。更确切地说,一个拓扑排序的是的枚举作为,使得对于所有,每当有来自路径到在λ V 大号< 大号 ģ λ ģ V v = v 1... v ÑĴ v v Ĵ ģG=(V,E)λVL<LGλGVv=v1,,vnijvivjG,那么我们必须有。这样的拓扑排序的标签是的元素序列,其顺序为。这些序列(都具有长度)的字典顺序被定义为如果存在某个位置使得和对于所有。请注意,可以将中的每个标签分配给多个顶点这一事实(否则问题就不那么容易了)。i<jl = λ v 1λ v n| V | < LEX '< 大号' Ĵ = ' Ĵ Ĵ < š VSl=λ(v1),,λ(vn)|V|l<LEXlili<Llilj=ljj<iSV

可以用计算变体(“按字典顺序计算最小拓扑排序”)或决策变体(“此输入字是最小拓扑排序吗?”)来说明此问题。我的问题是,这个问题的复杂性什么?是在PTIME中(或者在FP中,对于计算变体)还是NP困难的?如果一般问题是NP难题,那么我也对可能的标签集预先固定的版本(即,可能的标签数量恒定)感兴趣。S

备注:

这是一个激发问题的实际小例子。我们可以看到DAG代表了一个项目的任务(它们之间具有依赖关系),标签是代表每个任务花费天数的整数。要完成项目,无论我选择任务的顺序如何,都将花费相同的时间。但是,我想打动我的老板,为此,我希望尽快完成尽可能多的任务(以贪婪的方式进行,即使这意味着最后的速度很慢,因为仍然存在较难的任务)。选择按字典顺序排列的最小顺序可优化以下条件:我要选择一个顺序,以便没有其他顺序和天数在之后ø ' Ñ Ñoonn天,我会用命令完成更多的任务,而不是用命令完成任务(即,如果老板看着时间,我对印象会更好),但是对于所有我完成的命令不少于不是命令。 ø Ñ Ò '< ñ ö ' øoonom<noo

对此问题提供一些见解:我已经从以前的 答案中知道以下相关问题很困难:“是否存在实现以下顺序的拓扑排序”?但是,在这里我想要一个对于该词典顺序最小的序列的事实似乎在很大程度上限制了可能实现该顺序的拓扑顺序(特别是那些其他答案的减少似乎不再起作用)。直观地讲,在更少的情况下我们可以选择。

请注意,就集合覆盖而言,问题似乎有有趣的改写(将问题限制为两部分的DAG,即高度为2的DAG):给定集合,以,按字典顺序最小化序列,,,,。该问题也可以在无向图上重述(按照使未覆盖标签的词典顺序最小化的顺序逐步扩展图的连接区域)。但是,由于该序列具有| S 1 | | S 2S 1 | | 小号3小号1小号2| | 小号ñ小号1小号ñ - 1|S1,,Sn|S1||S2S1||S3(S1S2)||Sn(S1Sn1)| 为了始终按字典顺序的定义贪婪,我无法简化(例如Steiner树)的工作。

预先感谢您的想法!

Answers:


12

在允许使用同一标签的多个副本的情况下,通过减少图表中的集团,问题就变得很棘手。给定要在其中找到 -clique 的图,请为DAG的每个顶点创建一个带有源顶点的DAGk G G x y x G y G 1 G 0GkG,水槽顶点为的每个边缘,和有向边每当是的顶点那形成边的端点。给的顶点标注值,给的边缘标注值。GxyxGyG1G0

然后,当且仅当按字典顺序排列的第一个拓扑顺序形成一个序列时,才会有一个 -cliqueG k 1kGk 1和,且跟随第。例如,六个顶点集团将由序列表示。这是可能可能开始通过该结构(更换任何给定的标记DAG的拓扑排序的字典序最小序列的由(k2) i 1 0 i 1 110100100010000100000 1 0 G0i1 0i111010010001000010000010会产生比具有多个顶点的简单图形中可以找到的边缘更多的序列),并且只有当包含所需的集团时,它才能成为拓扑顺序的开始。G


哦,我没想过派系。这是一个很好的减少,非常感谢!因此,这表明即使使用固定标签字母),计算问题也是NP 难题。这也意味着决策问题“在字典上小于该序列的最小序列”也是NP-hard(您可以使用它来通过二进制搜索来计算最小值)。我看到的唯一另一个问题是,“这个精确的输入序列是最小的输入序列”是否也难于NP。(有了它,您就不能容易地测试最小单词是否以前缀开头。)您对此有任何想法吗?{0,1}
a3nm

1
我怀疑问题“可以实现此确切序列”是NP完全的,但我手头上没有减少的余地。“此精确序列是否为最小序列”应位于多项式层次结构的第二级,因为它需要将存在性量化(可实现)和通用量化(所有可实现的序列至少相同)组合在一起。
大卫·埃普斯坦

实际上,我已经知道通过将Marzio de Biasi的一元3分区简化为NP来测试是否可以实现准确的序列是NP困难的(在带有3个标签的字母上),如下所示cstheory.stackexchange.com/a/19415。但是我认为这并不能说明问题的状态“这是最小的可实现序列”:当询问某个序列是否可实现时,通常,按字典顺序最小化的可能性很小。无论哪种方式,您的减价显示仍然非常有趣,再次感谢!:)
a3nm

2

根据参考文献(1),从字典上看,第一个拓扑顺序问题是NLOG完全的。

您可能希望对文章进行更彻底的研究,以确保它涵盖了您感兴趣的案例。特别是,根据该文章的技术报告版本(pdf),看来它们是将顶点的字典顺序重新对待为严格的(例如:在您的符号中,表示),但是我不确定这是否会影响结果的适用性。u vλ(u)λ(v)uv

  1. 首代,高吉。“按字典顺序排列的第一个拓扑顺序问题是NLOG-complete。 ”信息处理快报 33.3(1989):121-124。

4
NLOG-complete是多项式时间的子集,并且(根据问题第一段中的“关注”句子)使顶点的标签不同可以使问题易于通过多项式时间贪婪算法解决。真正的问题是,当标签不相同时会发生什么。
大卫·埃普斯坦

这是一个公平的观点。从您的答案中可以清楚地看到,重复标签使问题比唯一标签的情况更加困难。
mhum
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.