形式陈述
对函数 s : N → N ,NSPACE ( s ( n ) ) 包含能由非确定性图灵机 公理库 非确定性图灵机 Nondeterministic Turing machine 每个配置可有多个后继并在存在接受分支时接受的图灵机。 N 在 O ( s ( n ) ) 工作空间内判定的语言。具体地,对每个输入 x :
每条计算分支都在工作格预算内并最终停机;
x 属于语言,当且仅当至少一条分支接受;
x 不属于语言时,所有分支都拒绝。
空间按空间复杂度 公理库 空间复杂度 Space complexity 计算在输入长度函数下使用的工作存储单元数量。 逐分支计量,再取最大值。分支数量、所有分支累计使用的格子数和运行总步数都不进入 s ( n ) 。
当 s ( n ) ≥ log n 时,一个 O ( s ( n ) ) 空间机器在固定长度 n 的输入上至多有
n ⋅ s ( n ) O ( 1 ) ⋅ 2 O ( s ( n ) ) = 2 O ( s ( n ) ) 个配置。输入头位置贡献 n ,有限状态、工作头位置和工作带内容贡献其余因子。若一条接受路径重复配置,删去两次出现之间的回路仍是接受路径,所以最短接受路径短于配置数。对空间可构造的标准预算,可以用 O ( s ( n ) ) 位计数器给每条分支加时钟;clocked decider 约定因而与配置图可达性视角相容。
直觉
非确定空间把计算看成有限配置图上的路径搜索。机器不保存整棵分支树,只在一条候选路径上维护当前配置;成员输入只需某条路径到达接受配置。即使图有指数多个节点,一份配置仍只有 O ( s ( n ) ) 位,这为后续用空间换时间的确定性模拟留下了余地。
与确定性空间类 公理库 确定性空间复杂性类 Deterministic space class · DSPACE 由确定性图灵机在给定工作空间界内判定的语言集合。 相比,计费单位没有变化,变化的是配置图的出度和接受量词。确定机器每个配置至多一个后继,非确定机器则可以选择后继,但不存在“把所有分支内存加总”的共享机器。
例子与边界
有向可达性的对数空间算法
设图的顶点为 { s , a , b , t } ,边为
s → a , a → t , s → b , b → b . 机器保存当前顶点和一个不超过 | V | − 1 的步数计数器,非确定地选择一条出边。分支 s → a → t 接受;分支 s → b → b → ⋯ 在计数器到达 3 后拒绝。一般 n 顶点图中,若存在路径就存在不重复顶点、长度至多 n − 1 的路径,当前位置与计数器各需 O ( log n ) 位;检查所猜边时只需扫描只读输入。因此有向 STCON 属于 NL。
分支与停机边界
一条分支使用 10 个格、另一条使用 20 个格时,本次输入的空间是 20 ,不是 30 。分支可能运行指数步而不增加工作区域;NSPACE 不是并行内存或时间复杂度。
若只给 recognizer,允许非成员输入上某些分支永不停止,就不能直接把它当作 NSPACE 判定机。必须先在 s ( n ) ≥ log n 、预算可构造等标准条件下利用配置去环和时钟,让每条分支停机,再调用本页的类与闭包结论。
推论与应用
确定机器是非确定机器的特例,故
DSPACE ( s ( n ) ) ⊆ NSPACE ( s ( n ) ) . 常用并集类为
NL = NSPACE ( log n ) , NPSPACE = ⋃ k ≥ 1 NSPACE ( n k ) . Savitch 定理 公理库 Savitch 定理 Savitch's theorem 对适当空间函数 s,NSPACE(s) 包含于 DSPACE(s²)。 以平方空间确定化配置可达性,推出 NPSPACE = PSPACE 。模拟时间可以很大,不能据此推出 P=NP。
Immerman–Szelepcsényi 定理 公理库 Immerman–Szelepcsényi 定理 Immerman–Szelepcsényi theorem · NL equals coNL 非确定性空间类在补运算下封闭,特别地 NL 等于 coNL。 证明 s ( n ) ≥ log n 时 NSPACE 对补封闭;它使用更精细的计数式可达性方法,并非定义的直接改写。
参考资料
Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach , Cambridge University Press, 2009, §§4.1–4.2.
Michael Sipser, Introduction to the Theory of Computation , 3rd ed., Cengage, 2013, §8.1.