“先由非确定性时间类取得判定 $L$ 的多项式时间机器,再用多带到单带的编码模拟将它正规化为单带非确定机器 $N$。模拟时只在原机的一步选择处分支,其余编码扫描确定执行,所以逐分支仍只有多项式…”
形式陈述
固定与 DTIME 相同的非平凡有限输入字母表及有限多带、逐步读写模型,只把确定转移改为有限选择:每步读取各带头的符号后,按非确定性图灵机的存在接受分支语义选择后继。机器的带数和最大分支度均为固定常数。对
当
当
直觉
非确定时间把“存在一串成功选择”放进计算语义。每个分支仍是一段普通的、按步计费的局部计算;区别只在于成员输入只需有一条分支接受,而非成员输入必须让所有分支失败。它不为现实机器提供指数数量的免费处理器,也不是给分支随机分配概率。
与确定性时间类相比,确定机器是每个配置最多一个后继的特例,因此相同预算下确定性计算自动也是非确定性计算。反向模拟通常要遍历整棵分支树,时间可能指数增长。
例子与边界
合数的猜测—验证
把正整数用二进制编码,定义
若输入长度为
为什么所有分支都要有时钟
设机器先分成两支:第一支立即接受,第二支永远向右移动。即使成员输入上存在很短的接受分支,第二支仍使机器不属于任何有限 NTIME 界。标准构造会给所有分支装上同一时钟;到期未接受就拒绝。
穷举模拟的代价
取固定常数
推论与应用
每台确定机器都可视为从不真正分支的非确定机器,所以
把所有多项式预算取并得到NP:
类似地,NEXP 使用
参考资料
- Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach, Cambridge University Press, 2009, §§1.2 and 2.1.
- Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013, §§7.1–7.3.