DSPACE(f)的NTIME(f)子集


9

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

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


4
我想这里有很多。隐藏在那里的常量。您可以证明。只需列举该算法的所有可能的不确定性猜测,然后使用这些猜测运行您的算法。如果其中一种猜测导致接受状态,请接受。NTIME(f(n))DSPACE(2f(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)=Ω(logn)

正如Igor所提到的,通常,资源受限的类仅在“大O之前”定义,因此使用空间的结果仍在。D S P A C Ef 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.