Skip to content

定义Definition

非确定性时间复杂性类

施工中 · 内容逐步修订

Nondeterministic time class · NTIME

由非确定性图灵机在给定时间界内判定的语言集合。

形式陈述 ​

固定与 DTIME 相同的非平凡有限输入字母表及有限多带、逐步读写模型,只把确定转移改为有限选择:每步读取各带头的符号后,按非确定性图灵机的存在接受分支语义选择后继。机器的带数和最大分支度均为固定常数。对 t:N→N,NTIME(t(n)) 由满足下列条件的语言 L 组成:存在非确定机器 N 和常数 c,n0,使 N 判定 L,并且对每个 |x|≥n0,N 在 x 上的每一条计算分支都在 ct(|x|) 步内停机。接受语义是

x∈L⟺N(x) 的计算树中存在接受分支;

当 x∉L 时,没有接受分支,且所有分支都在同一最坏时间界内拒绝。只约束最短接受分支而放任其他分支无限运行,不符合这个定义。

当 t(n)≥n 且采用固定机器编码时,一条长度 O(t(n)) 的分支可由 O(t(n)) 位选择序列描述。确定性验证器读取该序列并重放转移;反过来,非确定机器可以逐位猜证书再运行验证器。精确的时间函数会受模拟模型影响,但在多项式尺度上得到无歧义的“多项式证书加多项式验证”刻画。

直觉

非确定时间把“存在一串成功选择”放进计算语义。每个分支仍是一段普通的、按步计费的局部计算;区别只在于成员输入只需有一条分支接受,而非成员输入必须让所有分支失败。它不为现实机器提供指数数量的免费处理器,也不是给分支随机分配概率。

与确定性时间类相比,确定机器是每个配置最多一个后继的特例,因此相同预算下确定性计算自动也是非确定性计算。反向模拟通常要遍历整棵分支树,时间可能指数增长。

例子与边界

合数的猜测—验证 ​

把正整数用二进制编码,定义

COMPOSITE={⟨N⟩:∃a,b,1<a,b<N 且 ab=N}.

若输入长度为 n,机器猜测两个至多 n 位的整数 a,b,再用逐位乘法和比较验证条件,耗时为 n 的多项式。对 N=91,猜到 (7,13) 的分支接受;对 N=97,每一对候选都会因乘积或范围不符而拒绝。这个例子同时表明证书按二进制长度收费,不能把一次任意精度乘法暗算成常数步骤。

为什么所有分支都要有时钟 ​

设机器先分成两支:第一支立即接受,第二支永远向右移动。即使成员输入上存在很短的接受分支,第二支仍使机器不属于任何有限 NTIME 界。标准构造会给所有分支装上同一时钟;到期未接受就拒绝。

穷举模拟的代价 ​

取固定常数 b≥2 作为机器分支度的上界(即使实际只有一个后继,也可放大到这个上界)。若树深为 O(t(n)),计算树最多有 bO(t(n))=2O(t(n)) 个节点。逐层确定性遍历因此给出粗略指数时间模拟,却没有给出 NTIME(t)⊆DTIME(tO(1))。在多项式尺度上,后者正触及 P 与 NP 的开放问题。

推论与应用

每台确定机器都可视为从不真正分支的非确定机器,所以

DTIME(t(n))⊆NTIME(t(n)).

把所有多项式预算取并得到NP:

NP=⋃k≥1NTIME(nk).

类似地,NEXP 使用 2nO(1) 的非确定时间预算。若把问题从“是否有接受分支”改为“有多少条接受分支”,则进入#P一类计数复杂度;存在性与计数不是同一输出任务。

参考资料
  • 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.
关系图谱22 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系