非确定性时间层次定理

层次定理是计算复杂性中很基础但却很重要的内容,用通俗语言来概括的话就是更多的运行时间或者更大的运行空间带来的是更大的能力。层次定理主要分为三个部分:确定性时间层次定理(Deterministic Time Hierarchy Theorem, DTHT)、非确定性时间层次定理(Nondeterministic Time Hierarchy Theorem, NTHT)、空间层次定理(Space Hierarchy Theorem, SHT)。为什么没有非确定性空间层次定理呢?这是因为空间复杂性对非确定性是封闭的,具体来说有\mathbf{NSPACE}(f(n))\subset \mathbf{SPACE}(f(n)^2),因此空间层次定理只需要有确定性即可。DTHT和SHT都很容易证明,主要就是利用了通用图灵机在模拟图灵机的运算时最多有一个对数的时间加倍和常数的空间加倍这个性质以及对角化思想。定理叙述如下:

定理1(DTHT):如果fg都是时间可构造函数并且满足f(n)\log f(n)=o(g(n)),那么\mathbf{DTIME}(f(n))\subsetneq \mathbf{DTIME}(g(n))

定理2(SHT):如果fg都是空间可构造函数并且满足f(n)=o(g(n)),那么\mathbf{SPACE}(f(n))\subsetneq \mathbf{SPACE}(g(n))

NTHT的证明则要困难一些,主要是因为如果用类似于DTHT的证明方式即对角化思路进行证明的话需要对图灵机在某个输入上的结果取反,但是非确定性时间类对补却很可能是不封闭的(假设\mathbf{NP}\ne \mathbf{coNP})!因此不能简单的用对角化来进行证明,需要一些额外的技巧。下面的证明是Donnell在他的高级计算复杂性课上的证明思路,这儿只是转述。定理叙述如下:

定理3(NTHT):如果fg都是时间可构造函数并且满足f(n+1)=o(g(n)),那么\mathbf{NTIME}(f(n))\subsetneq \mathbf{NTIME}(g(n))

证明:前面说过NTHT不能简单地用对角化思想来证明,这里用到的是一种称为惰性对角化的思想。我们令M_n表示由一元串1^n进行编码的非确定性图灵机(NTM),它接受的输入也用一元表示(为了方便,这里的一元表示直接写为了正整数)。

然后我们定义另外一个NTM D(1^n):首先找到j满足l_j\le n\le u_j,其中[l_j,u_j]代表一个正整数区间,即正整数被划分为[l_1,u_1],[l_2=u_1+1,u_2],[l_3=u_2+1,u_3],\cdots无穷多个区间,这一步就是找到n属于哪个区间;然后如果n\ne u_j,则在g(n)内模拟M_j(n+1)的执行,输出就是M_j(n+1)的输出,如果M_j(n+1)g(n)步内没有停机,则接受;如果n=u_j,则对M_j(l_j)\log_2g(n)步内的结果取反,注意这一步实际上执行的是确定性步骤,因为只有遍历M_j(l_j)\log_2g(n)步内的所有计算分支才能确定D(1^n)的输出。

L表示D接受的语言,容易看出L\in \mathbf{NTIME}(g(n)),现在我们证明L\notin \mathbf{NTIME}(f(n))。用反证法,假设L\in \mathbf{NTIME}(f(n)),则说明存在NTM M使得L=L(M)。因为图灵机可以有无限多表示(只需添加无用文字即可),因此一定存在正整数j使得M=M_j。然后我们观察D(l_j)的执行,由于l_j\in[l_j,u_j]l_j<u_j,因此D模拟M_j(l_j+1)的执行,而且根据定理中的条件f(n+1)=o(g(n))可知M_j可在g(n)内执行完毕,从而有D(l_j)=M_j(l_j+1)=D(l_j+1)。然后观察D(l_j+1)的执行,还是一样的思路可知D(l_j+1)=D(l_j+2),最后可得M_j(l_j)=D(l_j)=\cdots=D(u_j-1)=D(u_j)=M_j(u_j)。这个时候就可以用对角化的思想了,因为根据D的定义可以看出D(u_j)\ne M_j(l_j),产生了矛盾,定理得证。

可以看出,这个证明和传统的对角化证明不同之处在于,它不是一开始就在一个输入上取反,而是利用一个在右端点处“绕回”的操作才进行对角化,这也是称为“惰性对角化”的原因。                                                                     \blacksquare

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值