DSPACE(f)的NTIME(f)子集


9

正如问题所指出的,我们如何证明?NTIME(f(n))⊆DSPACE(f(n))

谁能指出我的观点或在此处概述?谢谢!


4
我想这里有很多。隐藏在那里的常量。您可以证明。只需列举该算法的所有可能的不确定性猜测,然后使用这些猜测运行您的算法。如果其中一种猜测导致接受状态,请接受。NTIME(f(n))⊆DSPACE(2⋅f(n))
— 伊戈尔·欣卡

1
为什么不回答呢?
— Yuval Filmus 2013年

@IgorShinkar有各种结果,例如线性加速定理和磁带压缩定理,它们表明您可以在“大多数”情况下摆脱这些常数。线性加速表示对于任何;磁带压缩表示,对于任何。ε > 0 d 小号P 甲Ç é(˚F (Ñ ))⊆ d 小号P 甲Ç È(ϵ f (n )+ O (1 )DTIME(f(n))⊆DTIME(ϵf(n)+n+2)ϵ>0ϵ > 0DSPACE(f(n))⊆DSPACE(ϵf(n)+O(1))ϵ>0
— David Richerby 2013年

Answers:


4

这是Igor Shinkar的评论的扩展版本。模拟在时间和空间运行的不确定机器的最简单方法是使用空间。我们列举了所有可能的抛硬币情况,模拟了每种情况下的原始机器。这需要用于存储抛硬币的空间和用于模拟实际机器的空间。这里有一点困难:当(原始)机器“读取”抛硬币时,我们需要以某种方式标记抛硬币序列中的位置。我们可以在每次抛硬币时多使用一点。可能有可能进一步优化它。小号(Ñ )≤ ˚F (Ñ )小号(Ñ )+ 2 ˚F (Ñ )+ Ö (1 )˚F (Ñ )小号(Ñ )f(n)s(n)≤f(n)s(n)+2f(n)+O(1)f(n)s(n)

如果我们小心的话,我们可能会得到更好的结果,因为在该程序的每次运行中,抛硬币的总数和所使用的总空间之和最多为。我怀疑可以在空间中运行仿真。也许我们需要为此假设。(1 + o (1 ))f (n )f (n )= Ω (log n )f(n)(1+o(1))f(n)f(n)=Ω(log⁡n)

正如Igor所提到的,通常,资源受限的类仅在“大O之前”定义,因此使用空间的结果仍在。D S P A C E(f (n ))O(f(n))DSPACE(f(n))

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.