空间复杂性
同时间复杂性,我们定义非确定图灵机的空间复杂度,为空间使用最多分支所使用的空间大小。
概念定义
S
P
A
C
E
(
f
(
n
)
)
SPACE(f(n))
SPACE(f(n)):确定性图灵机在
O
(
f
(
n
)
)
O(f(n))
O(f(n))空间能进行判定的语言(问题)集合
N
S
P
A
C
E
(
f
(
n
)
)
NSPACE(f(n))
NSPACE(f(n)):非确定性图灵机在
O
(
f
(
n
)
)
O(f(n))
O(f(n))空间能进行判定的语言(问题)集合
P
S
P
A
C
E
PSPACE
PSPACE:确定性图灵机在多项式空间可以判定的语言(问题)集合,由于萨维奇定理,
P
S
P
A
C
E
=
N
P
S
P
A
C
E
PSPACE= NPSPACE
PSPACE=NPSPACE
空间复杂度分类
1. S P A C E ( n ) SPACE(n) SPACE(n):确定性图灵机在线性空间可解决的问题
S A T SAT SAT问题:判决过程中,只需给每个文字变量分配空间,因此 S A T ∈ S P A C E ( n ) SAT\in SPACE(n) SAT∈SPACE(n)
2.
N
S
P
A
C
E
(
n
)
NSPACE(n)
NSPACE(n):非确定图灵机在线性空间可解决的问题
NFA: 对每个状态和输入符号对可以有多个可能的下一个状态的有限状态自动机
A
L
L
N
F
A
ALL_{NFA}
ALLNFA问题:测试一个非确定性有限自动机是否能接受所有的字符串
A
L
L
N
F
A
‾
\overline{ALL_{NFA}}
ALLNFA问题:测试一个非确定性有限自动机是否拒绝某个字符串
核心思想:用非确定图灵机猜测一个被拒绝的字符串,需要用线性空间记录NFA在特定时间处于什么状态。
一共有
2
q
2^q
2q种标记状态组合,字符是随机选取的。随机找到一种标记状态(只用q的空间,但是要指数的时间),并随机找到一个字符,如果此时未落在M的接收状态,则拒绝之前累积形成的字符串,接受该问题属于
A
L
L
N
F
A
‾
\overline{ALL_{NFA}}
ALLNFA。标记状态和字符都是随机的,因此结束都没有拒绝的话,那就说明能接受所有字符串。最多
2
q
2^q
2q长度产生重复标记状态,删除该段字符串,不影响结果。状态标记用来记录该状态是否访问过。
萨维奇定理
任何使用
f
(
n
)
f(n)
f(n)空间的非确定图灵机可以转化为使用
f
2
(
n
)
f^2(n)
f2(n)空间的确定图灵机
即使是co-NSPACE(n)但是空间仍为NSPACE(n)。
由于每一步计算至多访问一个新的存储单元,因此
简单想:每个空间可以存k个值,因此最多k^n可以完全访问完所有状态,所以
总结:
PSPACE完全问题
PSPACE中最难的问题,由于萨维奇定理,也可以看做NPSPACE中最难的问题。
证明一个问题是PSPACE完全的: 首先该问题属于PSPACE,其次PSPACE中每一个问题都可以多项式时间规约到该问题,多项式时间规约保证它就是最难的一类问题。如果只满足第二个条件,则说该问题是PSPACE-hard。
1.TQBF问题:
量词:存在量词和全称量词
量词的范围:可以不限制在某个变量中,也可以是个句子
量化布尔公式:带有存在和全称量词前缀的命题逻辑公式
完全量化布尔公式:每个变量都被量词限定,导致始终为true或false的句子
prenex normal form:量词出现在公式最前的标准
表达式从左到右理解,顺序很重要,如:
2.Formula Game(公式博弈问题)
描述: 在某个量化布尔公式中,玩家A从全称量词中取变量并赋值,玩家B从存在量词中取变量并赋值。
E必胜:
A必胜:
实际上:Formula Game与TQBF等价,两种表述方式而已
3. The Generalized Geography Problem(广义地理问题)
描述:以城市名称为载体的接龙游戏,不能重复城市名
建模过程:状态跳转图
求解过程:在状态跳转图中找一条简单路径
次线性空间边界
次线性时间复杂度: 次线性时间复杂度中的输入没有读完,因此暂时不考虑,有序二分就是一种次线性时间复杂度。
次线性空间复杂度: 机器能够读取完整的输入,但是没有足够的空间存储整个输入
在研究次线性空间时,我们用双带模型作为研究对象(线性空间以上时,用标准的单带模型就可以了)
L和NL问题(同样不知道L和NL是否相等)
L问题: 确定图灵机在对数空间可以判决的问题集合。
NL问题: 非确定图灵机在对数空间可以判决的问题集合。
A语言问题
要记录每一个被删除的位置的话,需要使用线性空间;但是我们可以维护两个计数器,分别记录当前带子上0和1的个数,删除相当于做自减操作,在二进制中,每个计数器只使用了对数空间,上述问题可以用对数空间解决。即,
A
∈
L
A\in L
A∈L
PATH问题
我们使用非确定图灵机猜测一条从
s
s
s到
t
t
t的路径,只记录最近一次在工作带上的节点位置,而不是路径上所有节点编号(会不满足对数空间要求)。根据该节点编号,来确定下一个节点编号,直到接受或拒绝。一个节点位置在二进制中也是对应对数空间。
P
A
T
H
∈
N
L
PATH \in NL
PATH∈NL
空间上界对应运行时间的上界
最大的时间上界是指数上界,蛮力搜索
扩展结论:
扩展萨维奇定理:
NL完全问题
由上述扩展理论可知,NL中任意一个问题都可以多项式时间规约到另一个,因此在NL完全问题中,我们不使用多项式时间规约概念,而使用对数空间规约。
问题A可以通过对数空间可计算函数规约到语言B,记作 A ≤ L B A\leq_L B A≤LB
类比:证明存在一种算法
N
N
N可以在多项式时间判决
A
A
A
对于对数空间规约,我们需要修改上述的证明思路,因为存储对数空间可计算函数
f
f
f可能会超过对数存储空间的上界。A机器只计算B机器需要用到的一个字符(B机器输入头指向的位置),这样只需要存储一个字符位置,保证不超过对数空间上界。一些中间结果可能会重新计算,是一种牺牲时间节约空间的做法。
证明:PATH问题属于NL完全问题
- 首先PATH问题属于NL问题
- 再证明PATH问题属于NL-hard即可
即:存在一个非确定性图灵机M,能够在对数空间判定任意NL问题A。然后根据M的输入w进行等价构图。构图的空间是对数空间的,构图原则是M接受 w w w,当且仅当图G中存在 s s s到 t t t的路径(巧妙设计状态跳转,与w构成保持一致)。
证明:
N
L
⊂
P
NL\subset P
NL⊂P
简单的想: 因为PATH问题是NL中最难的一类问题,所有NL中的问题都可以对数空间规约到PATH问题,又PATH问题可以多项式时间规约到P,所以
N
L
⊂
P
NL\subset P
NL⊂P.
标准证明: 所有NL中的问题都可以对数空间规约到PATH问题,又所有空间复杂度为
f
(
n
)
f(n)
f(n)的图灵机,可以在
n
2
O
(
f
(
n
)
)
n2^{O(f(n))}
n2O(f(n))时间内判决。因此对数空间复杂度的图灵机可以在多项式时间判决。
证明:
N
L
=
c
o
N
L
NL=coNL
NL=coNL
略
证明:
N
L
⊊
P
S
P
A
C
E
NL\subsetneq PSPACE
NL⊊PSPACE
空间层次定理证明
结论: