证明RAM机可在T(n)中计算的布尔函数在DTIME(T(n)^ 2)中


10

问题是Arora-Barak的书《计算复杂性-一种现代方法》中的练习1.9 :


将RAM Turing计算机定义为具有随机访问内存的Turing计算机。我们将其形式化如下:机器具有一个初始化为所有空格的无限数组A。它按如下方式访问此数组。机器的工作磁带之一被指定为地址磁带。机器还具有两个用R和W表示的特殊字母符号,以及一个用q_access表示的附加状态。每当机器进入q_access时,如果其地址带包含“ i” R(其中“ i”表示i的二进制表示形式),那么值A [i]就会写入R符号旁边的单元格中。如果其磁带包含“ i” Wa(其中a是机器字母中的某些符号),则将A [i]设置为值a。

证明如果布尔函数可在RAM TM的时间(对于某个时间可构造的)内计算,则它在。fT(n)TDTIME(T(n)2)


使用附加的磁带记录对(地址,值)的简单解决方案结果是,因为该磁带的大小可以为用对,而每对中的地址可以是尺寸的。DTIME(T(n)3)O(T(n)2)O(T(n))O(T(n))


您如何知道地址大小的界限?我不能先写吗?而且,如果可以将其绑定到,那么地址大小为,而不是。22T(n)T(n)log(T(n))T(n)
Xodarap 2012年

1
由于地址应该由图灵机写入磁带中,因此地址的大小(即字符串长度)不能超过,因此可访问的地址空间为。T(n)O(T(n))O(2T(n))
cc

3
请注意,阿罗拉(Arora)和巴拉克(Barak)在其简介中明确要求其他人不要对问题提出答案。另请参阅有关作业问题的政策
卡夫

抱歉 我只是自己读书,在这个问题上感到困惑。我不知道这种模拟是否真的存在,或者仅仅是一个错字。如果您知道答案,请通过私人电子邮件给我ccqmpux@gmail.com,然后我将关闭问题。O(T(n)2)
cc

您可以在理论计算机科学手册的第一章中找到更多信息。
卡夫

Answers:


2

您在评论中写道:

由于地址应该由时间的图灵机写入磁带中,因此地址的大小(即字符串长度)不能超过。T(n)O(T(n))

您可以使用类似的参数来改善界限吗

[]磁带的大小可以为具有对,而每对的地址的大小可以为。O(T(n)2)O(T(n))O(T(n))

您在问题中提到?您可能需要记住在恒定时间内对RAM进行哪些操作,即使用作者使用的精确定义。


我希望这个提示足够模糊,可以尊重本书作者的意愿,同时也有所帮助。(启发式:如果问题是运动,我会告诉学生很多。不过,可能不是在考试中。)
拉斐尔
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.