SAT oracle可以帮助多少加速多项式时间算法?


23

访问 oracle将为N P - P中的所有内容提供主要的超多项式加速(假定集合不为空)。但是,尚不清楚P从此oracle访问中可受益多少。当然,P中的加速不能是超多项式,但仍然可以是多项式。例如,是否可以使用S A T oracle来比不使用它来更快地找到最短路径?如何处理一些更复杂的任务,例如子模块函数最小化或线性编程?他们(或P中的其他自然问题)是否将从S A T中受益SATNPPPPSATPSAT 甲骨文?

更笼统地说,如果我们可以选择任何问题并为其使用预言,那么P中的哪些问题可以看到提速?NPPP


2
甲骨文有多快?如果花费的时间为,则比花费的时间为O s 5可以加快更多的问题,其中s是SAT公式的大小。O(s)O(s5)s
彼得·索尔

2
@PeterShor我假设,oracle在收到SAT公式作为查询后,会在一个步骤(固定时间)内返回YES或NO答案,表示该公式是否令人满意。这与配方大小无关。当然,必须构造公式以便查询。该构造时间与公式大小无关,并且还取决于问题,需要查询哪些公式。但是,一旦公式构建完毕,对于任何公式,接收答案就被视为一个步骤。
Andras Farago

3
如果不是你所允许的一个SAT甲骨文的Oracle,那么它可以用来找到任何问题最少的电路。这将使一个接近最优的摊余成本对任何问题(这只是摊销的原因是,如果你只使用这一次,则大小Σ 2小号一个牛逼你写下公式本质上是你原来多时间的运行时间算法-但是,这一步后,你再有大小的所有实例中的最佳电路ñ)。Σ2SATΣ2SATn
Joshua Grochow 2015年

@JoshuaGrochow您的评论很有趣!很高兴将其作为答案,并提供更多详细信息。
Andras Farago

Answers:


15

实际上,非确定性图灵机在时间接受时间是O t log t -可以归结为SAT的时间(构造是通过遗忘的模拟,请参阅Arora-Barak),因此通常在任何时候,非确定性图灵机比确定性图灵机快得多,我们将至少看到SAT oracle的加速。tO(tlogt)

为了更具体,素性测试想到,作为AKS的最佳变型算法出现到的测试素性时刻比特数ø Ñ 6n。但是如果我们去“老派”,普拉特给出了一个不确定的TM来确定时间 O n 3O(n6polylogn)。可以(确定地)以 O n 3O(n3polylogn)到SAT实例的时间。O(n3polylogn)

3SUM问题可能是另一个例子,因为似乎可以猜出一个解并在二次时间内检查它,然后可以在二次时间内将这种机器的接受程度降低为SAT。


7

更一般而言,如果我们可以选择NP-P中的任何问题并为其使用预言,那么P中的哪些问题可以看到提速?

这个问题更直接地体现在将一个问题简化为另一个问题所需的表示形式和时间上。

我想到的主要答案是一个整数/线性编程Oracle。该问题的决策版本是NP完全的。线性编程有一个微不足道的“减少”,因为它是一种特殊情况。但是,仅针对线性编程的Oracle(更不用说ILP)加快了许多可以通过线性编程立即解决的问题。通过将问题重写为LP,可以在线性时间内将它们简化为它。例如,最短路径和其他流动问题,匹配。

但是我不认为ILP绝对不是唯一的一种,人们可能并没有考虑太多,例如减少通往TSP的最短路径等等。


3

在一个相关的说明(更多,张贴由请求回答的评论),如果不是一个的Oracle一个允许Σ 2小号一个牛逼的Oracle,那么它可以用来寻找最小的电路中的任何问题P(这遵循与Karp-Lipton证明相同的思想)。这将为任何问题提供接近最佳的摊销成本;它只是摊销的原因是,如果你只使用这一次,则大小Σ 2小号一个牛逼你写下公式基本上是原来的聚时间算法的运行时间,但是这一步之后,你再有一个最佳的电路对于大小的所有实例ñSATΣ2SATPΣ2SATn


我发现这个答案非常有趣,因为它表明 oracle比N P -oracle 更有用/更强大,即使对于P中的实际问题!当然,我们知道, ň P ñ Pñ P(假设P ^ h不垮下面的第二级),但它似乎像没有任何一个相当晦涩的理论其实P。但是这种看法是错误的,即使对于P中的实际问题,差异也可能是必不可少的。(太可惜我们没有N P N PNPNPNPPNPNPNPPHPPNP,也没有甲骨文...)NPNP
安德拉斯·法拉戈

1
@AndrasFarago:有趣的一点!我想知道,如果甲骨文在P H较高,那么“ 实践问题”是否会产生有趣且自然的结果。我最初的猜测是我们不太了解,这与以下事实有关:我们不太了解如何很好地使用多个量词替换:cstheory.stackexchange.com/a/11403/129PPH
Joshua Grochow

@ JoshuaGrochow使用来自PH的高级oracle的问题可能看起来像这样。找到可以正确解决原始问题的最小尺寸电路。在最小尺寸的电路(可能成倍增加)中,找到具有最高能量效率的电路(对能量效率有一定定义)。在结果电路中(可能仍然是指数级地增加),找到深度最小的电路。依此类推,交替最小化/最大化各种目标函数,可能有许多目标函数。我认为,对于嵌套的最小/最大优化,我们需要PH 级别的k + 2 oracle。kk+2
安德拉斯·法拉戈
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.