计算复杂性第八章——空间复杂性

\quad 本章使用图灵机模型来度量算法消耗的空间。
\quad 定义:令M是一个在所有输入上都停机的确定型图灵机,M的空间复杂度 f ( n ) f(n) f(n)是M在任何长度为n的输入上扫描带子方格的最大数。若M的空间复杂度为 f ( n ) f(n) f(n),则称M在空间 f ( n ) f(n) f(n)内运行。
\quad 两个空间复杂性类:

  • S P A C E ( f ( n ) ) = { L ∣ L 是 被 O ( f ( n ) ) 空 间 的 确 定 型 图 灵 机 判 定 的 语 言 } SPACE(f(n))=\{L|L是被O(f(n))空间的确定型图灵机判定的语言\} SPACE(f(n))={LLO(f(n))}
  • N S P A C E ( f ( n ) ) = { L ∣ L 是 被 O ( f ( n ) ) 空 间 的 非 确 定 型 图 灵 机 判 定 的 语 言 } NSPACE(f(n))=\{L|L是被O(f(n))空间的非确定型图灵机判定的语言\} NSPACE(f(n))={LLO(f(n))}

一、萨维奇定理

\quad 萨维奇定理:任何消耗 f ( n ) f(n) f(n)空间的非确定型图灵机都可以转变为仅消耗 f 2 ( n ) f^2(n) f2(n)空间的确定型图灵机。对于任何函数 f f f,其中 f ( n ) ≥ n f(n)\geq n f(n)n N S P A C E ( f ( n ) ) ⊆ S P A C E ( f ( n ) ) NSPACE(f(n))\subseteq SPACE(f(n)) NSPACE(f(n))SPACE(f(n))
\quad 该定理表明确定型机器可以用非常少的空间模拟非确定型机器。对于时间复杂性,这种模拟似乎需要指数倍地增加时间。

二、PSPACE

定义:PSPACE是在确定型图灵机上、在多项式空间内可判定地语言类,即 P S P A C E = U k S P A C E ( n k ) PSPACE=U_kSPACE(n^k) PSPACE=UkSPACE(nk)。任意多项式的平方仍是多项式,根据萨维奇定理, N P S P A C E = P S P A C E NPSPACE=PSPACE NPSPACE=PSPACE
\quad t ( n ) ≥ n t(n)\geq n t(n)n时,由于在每个计算步上最多能访问一个新单元,因此,任何在时间 t ( n ) t(n) t(n)内运行的机器最多能消耗 t ( n ) t(n) t(n)的空间。因此, N P ⊆ N P S P A C E NP \subseteq NPSPACE NPNPSPACE,故而 N P ⊆ P S P A C E NP \subseteq PSPACE NPPSPACE
\quad 根据图灵机的空间复杂性也能界定它的时间复杂性。对于 f ( n ) ≥ n f(n)\geq n f(n)n,一个消耗 f ( n ) f(n) f(n)空间的图灵机必定在时间 f ( n ) 2 O ( f ( n ) ) f(n)2^{O(f(n))} f(n)2O(f(n))内运行,故而得到 P S P A C E ⊆ E X P T I M E = U k E X P T I M E PSPACE \subseteq EXPTIME = U_k EXPTIME PSPACEEXPTIME=UkEXPTIME
\quad P ⊆ N P ⊆ P S P A C E = N P S P A C E ⊆ E X P T I M E P\subseteq NP \subseteq PSPACE = NPSPACE \subseteq EXPTIME PNPPSPACE=NPSPACEEXPTIME。在第九章将证明 P ≠ E X P T I M E P \neq EXPTIME P=EXPTIME,所以上面式子中至少有一个是真包含,但还不能确定是哪一个。

三、PSAPCE完全性

定义:若语言B满足下面两个条件,则它是PSAPCE完全的:

  • 1.B属于PSPACE
  • 2.PSPACE中每一个语言A多项式时间可规约到B

若B只满足条件2,则它为PSPACE难的。
两个PSAPCE问题:

  • 1.TQBF就是要判断一个全量词化的布尔公式是真还是假: T Q B F = { < ϕ > ∣ ϕ 是 真 的 全 量 词 化 的 布 尔 公 式 } TQBF=\{<\phi>|\phi 是真的全量词化的布尔公式\} TQBF={<ϕ>ϕ}
  • 2.FORMULA-GAME即为公式博弈: F O R M U L A − G A M E = { < ϕ > ∣ 与 ϕ 相 关 联 的 公 式 博 弈 中 选 手 E 有 必 胜 策 略 } FORMULA-GAME=\{<\phi>|与\phi 相关联的公式博弈中选手E有必胜策略\} FORMULAGAME={<ϕ>ϕE}

四、L类和NL类

\quad 到目前为止,我们考虑的时间和空间复杂性至少是线性的情况,即界限 f ( n ) f(n) f(n)至少是 n n n,现考虑更小的亚线性空间界限 l o g n logn logn。在时间复杂性中还不够读完输入,因此只在空间复杂性中考虑它们。定义:

  • 1.L是确定型图灵机在对数空间内可判定的语言类,即 L = S P A C E ( l o g n ) L=SPACE(logn) L=SPACE(logn)
  • 2.NL是非确定型图灵机在对数空间内可判定的语言类,即 N L = S P A C E ( l o g n ) NL=SPACE(logn) NL=SPACE(logn)

举例:语言 A = { 0 k 1 k ∣ k ≥ 0 } A=\{0^k1^k|k\geq 0\} A={0k1kk0}是L的成员。这里计算模型是双带图灵机,唯一的空间只需要用来记录两个计数器的位置。语言 P A T H = { < G , s , t > ∣ G 是 包 含 从 s 到 t 的 有 向 路 径 的 有 向 图 } PATH=\{|G是包含从s到t的有向路径的有向图\} PATH={<G,s,t>Gst}是属于NL的,我们可以记录当前的是哪个点,进而通过暴力搜索得到答案。

之前得到结论: f ( n ) f(n) f(n)空间限制的图灵机一定能在 2 O ( f ( n ) ) 2^{O(f(n))} 2O(f(n))时间复杂度内运行,在 f ( n ) < n f(n)f(n)<n时不一定成立。比如语言 P A T H PATH PATH问题,空间复杂度为 f ( n ) = O ( l o g n ) f(n)=O(logn) f(n)=O(logn),但与之时间复杂度为 O ( 2 n ) O(2^n) O(2n)

五、NL完全性

\quad 类似于 P = N P P=NP P=NP是否成立的问题,也有 L = N L L=NL L=NL是否成立的问题。为了解决这个问题,我们找出某些NL中最困难的一类问题——NL完全问题,我们只需要证明NL完全语言不属于L语言,就可以证明L与NL不等。
\quad NL完全性定义如下:如果语言B满足下面两个条件:

  • 1. B ∈ N L B\in NL BNL
  • 2.NL中每个A对数空间内可规约到B

\quad 注意这里是对数空间可规约,因为不同于多项式时间可归约性,这是因为所有的NL问题都在多项式时间内可解。NL问题中任何两个问题都是互相多项式时间内可解,所以多项式时间可归约性太强,不能把NL中的问题彼此分开,故而引入对数空间可归约性。如果语言A通过对数空间可计算函数 f f f映射可规约到语言B,则称A对数空间可归约到B,记为 A ≤ L B A\le_LB ALB
定理: A ≤ L B 且 B ∈ L A\le_LB且B\in L ALBBL,则 A ∈ L A\in L AL
定理:PATH是NL完全的。
推论: N L ⊆ P NL \subseteq P NLP
证明:消耗空间 f ( n ) f(n) f(n)的图灵机在时间 n 2 O ( f ( n ) ) n2^{O(f(n))} n2O(f(n))内运行,所以对数空间内运行的规约器也在多项式时间内运行。因此,NL中任何语言多项式时间可归约到PATH,PATH又属于P,因此NL属于P。
了解: N L = c o N L NL=coNL NL=coNL

你可能感兴趣的:(计算复杂性)