参考资料:《计算复杂性 现代方法》, 中文版
文章目录
- 第一章 计算模型
- 第二章 NP和NP完全性
- 第三章 对角线方法
- 第四章 空间复杂性
- Theorem 4.2 DTIME ( S ( n ) ) ⊆ SPACE ( S ( n ) ) ⊆ NSPACE ( S ( n ) ) ⊆ DTIME ( 2 O ( S ( n ) ) ) \text{DTIME}(S(n)) \subseteq \text{SPACE}(S(n)) \subseteq \text{NSPACE}(S(n)) \subseteq \text{DTIME}(2^{O(S(n))}) DTIME(S(n))⊆SPACE(S(n))⊆NSPACE(S(n))⊆DTIME(2O(S(n)))
- Theorem 4.3 空间分层定理
- Theorem 4.13 量化SAT(TQBF)是PSAPCE完全
- Theorem 4.14 塞维奇定理
- Def. 4.16 对数空间规约
- Theorem 4.18 PATH是NL-完全的
- Def. 4.19 NL的另一种定义:L+只能读一次的纸带
- Theorem 4.20 NL = coNL
- 第5章 多项式分层与交错
- Theorem 5.4 多项式坍塌定理
- Theorem 5.10 AP = PSPACE \text{AP}=\text{PSPACE} AP=PSPACE
- Theorem: APSPACE = EXP \text{APSPACE} = \text{EXP} APSPACE=EXP
- Theorem 5.11: SAT ∉ TISP ( n 1.1 , n 0.1 ) \text{SAT} \notin \text{TISP}(n^{1.1},n^{0.1}) SAT∈/TISP(n1.1,n0.1)
- Theorem 5.12: ∑ 2 p = NP SAT \sum_2^p=\text{NP}^{\text{SAT}} ∑2p=NPSAT
- 第六章 布尔线路
第一章 计算模型
Theorem 1.9 高效通用图灵机
存在图灵机 U \mathcal{U} U使得 U ( x , α ) = M α ( x ) \mathcal{U}(x,\alpha)=M_{\alpha}(x) U(x,α)=Mα(x)对于任意 x , α ∈ { 0 , 1 } ∗ x,\alpha \in \{0,1\} ^* x,α∈{0,1}∗成立. 并且如果 M α M_{\alpha} Mα在输入 x x x上至多运行 T T T步后停机, 则 U ( x , α ) \mathcal{U}(x, \alpha) U(x,α)将在 C T log T CT\log T CTlogT步内停机。 C C C仅依赖于 α \alpha α所表示的图灵机。
Proof. 关键是如何处理多带的情形,只需将记录在纸带上的字符改为序对 Γ k \Gamma^k Γk . 其次要处理不同的带移动的情况不同的情况,利用缓冲区的想法可以在额外 log T \log T logT的时间内处理。(P21)
Theorem 1.10 不可计算函数的存在性
存在不能被任意图灵机计算的函数 U C : { 0 , 1 } ∗ ↦ { 0 , 1 } UC: \{0,1\}^* \mapsto \{0,1\} UC:{0,1}∗↦{0,1}。
Proof. 采用对角线方法即可,将函数表的对角线取反,如果该对角线可被图灵机 M M M计算,则在第 M M M行出现矛盾.
Theorem 1.11 HALT不可计算
HALT以序对 ( α , x ) (\alpha,x) (α,x)为输入,它输出1当且仅当 M α M_\alpha Mα输入 x x x后在有限步停机,则HALT不可计算。
Proof. 如果可以计算,则可利用HALT计算 U C UC UC, 产生矛盾.
哥德尔定理
任何包含算数公理的逻辑系统不可能同时完备且可靠。完备指能证明所有正确的结论,可靠指不会证明出错误的结论。能证明是指存在有限长的字符串可推导出该结论。
Proof. 图灵机的运算可看做是在格局图对应的整数上进行简单的算数操作(具有局部性,每次只对几位操作),由于逻辑系统包含算数公理体系,故输入 ( α , x ) (\alpha,x) (α,x),HALT ( α , x ) (\alpha,x) (α,x)可表示为逻辑算式 φ \varphi φ,如果该逻辑系统能证明 φ \varphi φ或者 ¬ φ \neg \varphi ¬φ,则图灵机也可通过枚举所有字符串在有限步证明,故HALT是可计算的,产生矛盾。
第二章 NP和NP完全性
Theorem 2.6 NP两种定义的等价性
NP = ⋃ c ∈ N NTIME ( n c ) \text{NP}=\bigcup_{c \in \mathbb{N}} \text{NTIME}(n^c) NP=⋃c∈NNTIME(nc), NTIME ( n c ) \text{NTIME}(n^c) NTIME(nc)指非确定性图灵机能在 T ( n c ) T(n^c) T(nc)内停机或者进入 q a c c e p t q_{accept} qaccept, NP \text{NP} NP指存在一个验证器 M \mathcal{M} M, 任意可被接受的字符串 x x x都存在一个多项式长度的证据 u u u,使得 M ( x , u ) = 1 \mathcal{M}(x,u)=1 M(x,u)=1。
Proof.
NP ⇒ NTIME ( n c ) \text{NP} \Rightarrow \text{NTIME}(n^c) NP⇒NTIME(nc):用非确定图灵机枚举所有证据。
NTIME ( n c ) ⇒ NP \text{NTIME}(n^c) \Rightarrow \text{NP} NTIME(nc)⇒NP:证据即为状态转移序列。
Theorem 2.8 规约的传递性
L ≤ p L ′ , L ′ ≤ p L ′ ′ ⇒ L ≤ p L ′ ′ L \le_p L', L' \le_p L'' \Rightarrow L \le_p L'' L≤pL′,L′≤pL′′⇒L≤pL′′
Theorem 2.10 库克勒维定理(SAT是NPC的)
SAT问题是NPC的,3SAT问题是NPC的。
Proof.
SAT ∈ NP \in \text{NP} ∈NP: 枚举变量赋值
SAT ∈ NPC \in \text{NPC} ∈NPC: 散漫图灵机的运行过程可表示为一系列逻辑等式
3SAT ∈ NPC \in \text{NPC} ∈NPC: SAT可多项式规约到3SAT
Theorem 2.15 独立集是NPC的
INDEST是NPC的
Proof.
只需证明3SAT ≤ p \le_p ≤p INDEST, 具体构造见P40.
Theorem 2.16 0/1 IPROG是NPC的
令0/1IPROG是所有可满足0/1整数规划构成的集合。即是变量 u 1 , ⋯ , u n u_1,\cdots,u_n u1,⋯,un的一组有理系数线性不等式,如果存在 u i u_i ui的 { 0 , 1 } \{0,1\} {0,1}赋值使给定的不等式均被满足,则该0/1整数规划属于IPROG.
Proof.
3SAT ≤ p \le_p ≤p 0/1 IPROG: 将 u 1 ∨ u 2 ∨ ¬ u 3 u_1\lor u_2 \lor \neg u_3 u1∨u2∨¬u3表示为 u 1 + u 2 + ( 1 − u 3 ) ≥ 1 u_1+u_2+(1-u_3)\ge 1 u1+u2+(1−u3)≥1
Theorem 2.17 dHAMPATH是NPC的
Proof.
同样将3SAT问题规约到dHAMPATH,构造见P41.
Theorem 2.18 P=NP 使得证明可高效计算
假定 P = NP \text{P}=\text{NP} P=NP。那么,对于任意 NP \text{NP} NP语言 L L L和 L L L的一个验证器图灵机 M M M,存在多项式时间图灵机 B B B为任意输入 x ∈ L x \in L x∈L计算它的证明。
Def. 2.20 coNP的两种定义
定义1.
coNP
=
{
L
:
L
ˉ
∈
NP
}
\text{coNP}=\{L: \bar{L}\in \text{NP}\}
coNP={L:Lˉ∈NP}
定义2.
∀
L
⊂
{
0
,
1
}
∗
\forall L \subset\{0,1\}^*
∀L⊂{0,1}∗, 如果存在多项式
p
:
N
↦
N
p:\text{N} \mapsto \text{N}
p:N↦N和一个多项式时间图灵机
M
M
M使得对任意
x
∈
{
0
,
1
}
∗
x \in \{0,1\}^*
x∈{0,1}∗有:
x
∈
L
⇔
∀
u
∈
{
0
,
1
}
p
(
x
)
,
M
(
x
,
u
)
=
1
x\in L \Leftrightarrow\forall u \in \{0,1\}^{p(x)}, M(x,u)=1
x∈L⇔∀u∈{0,1}p(x),M(x,u)=1
则称
L
∈
coNP
L \in \text{coNP}
L∈coNP.
Theorem 2.22 如果 EXP ≠ NEXP \text{EXP}\neq \text{NEXP} EXP=NEXP,则 P ≠ NP \text{P} \neq \text{NP} P=NP
Proof.
证明其逆否命题:如果 P = NP \text{P}=\text{NP} P=NP,则 NEXP = EXP \text{NEXP}=\text{EXP} NEXP=EXP。 ∀ L ∈ NEXP \forall L \in \text{NEXP} ∀L∈NEXP, L p a d ∈ NP ⇒ L p a d ∈ P ⇒ L ∈ EXP L_{pad} \in \text{NP} \Rightarrow L_{pad} \in \text{P} \Rightarrow L \in \text{EXP} Lpad∈NP⇒Lpad∈P⇒L∈EXP.
第三章 对角线方法
Theorem3.1 时间分层定理
如果 f , g f,g f,g是满足 f ( n ) log f ( n ) = o ( g ( n ) ) f(n)\log f(n)=o(g(n)) f(n)logf(n)=o(g(n))的时间可构造函数,则 DTIME ( f ( n ) ) ⊊ DTIME ( g ( n ) ) \text{DTIME}(f(n))\subsetneq \text{DTIME}(g(n)) DTIME(f(n))⊊DTIME(g(n)).
Proof.
采用对角线方法,将函数表中第 x x x行 x x x列取反(使用通用图灵机 M \mathcal{M} M模拟,如果不能在 g ( n ) g(n) g(n)的时间内算出来则停机并输出0),则:该函数不可在 f ( n ) log f ( n ) f(n)\log f(n) f(n)logf(n)的时间内计算,但可在 g ( n ) g(n) g(n)的时间内计算。
采用反证法,如果存在 f ( n ) log f ( n ) f(n)\log f(n) f(n)logf(n)时间内计算上述函数的机器,设该机器为 M a M_a Ma,则 M a M_a Ma输入 a a a如果能在 f ( a ) log a < g ( a ) f(a)\log a < g(a) f(a)loga<g(a)的时间内停机,则与取反的条件矛盾,否则不能在 f ( a ) log a f(a)\log a f(a)loga步内停机,产生矛盾。
Theorem3.2 非确定性时间分层定理
如果 f , g f,g f,g是满足 f ( n + 1 ) = o ( g ( n ) ) f(n+1)=o(g(n)) f(n+1)=o(g(n))的时间可构造函数,则 NTIME ( f ( n ) ) ⊆ NTIME ( g ( n ) ) \text{NTIME}(f(n))\subseteq \text{NTIME} (g(n)) NTIME(f(n))⊆NTIME(g(n)).
Proof.
注意题目的条件非常弱,这是由于非确定性图灵机的强大能力决定的。证明还不能同定理3.1完全等价,因为一个语言的补集不一定还是能由非确定性自动机在相同时间内计算。于是证明该定理需要巧妙的对角线方法。
首先找函数 h h h,使得 f ( n + 1 ) = o ( h ( n + 1 ) ) , h ( n + 1 ) = o ( g ( n ) ) f(n+1)=o(h(n+1)), h(n+1)=o(g(n)) f(n+1)=o(h(n+1)),h(n+1)=o(g(n))(比如 h ( n + 1 ) = f ( n + 1 ) log g ( n ) f ( n + 1 ) h(n+1)=f(n+1)\log\frac{g(n)}{f(n+1)} h(n+1)=f(n+1)logf(n+1)g(n)),然后令 T ( 1 ) = 1 , T ( n ) = 2 h ( T ( n − 1 ) ) T(1)=1, T(n)=2^{h(T(n-1))} T(1)=1,T(n)=2h(T(n−1)). 将函数表第 i i i行的 [ T ( i ) + 1 , T ( i + 1 ) ] [T(i)+1,T(i+1)] [T(i)+1,T(i+1)]标记,考虑如下函数:
∀ n \forall n ∀n,找到标记第 n n n列的行 i i i,在 g ( n ) g(n) g(n)的时间内计算 M i ( n + 1 ) M_i(n+1) Mi(n+1),如果输出1,则 f ( n ) = 1 f(n)=1 f(n)=1,如果输出0或没有停机,则输出0. 如果 n = T ( i + 1 ) n=T(i+1) n=T(i+1),则指数时间对 M i ( T ( i ) ) M_i(T(i)) Mi(T(i))取反,则该函数可 g ( n ) g(n) g(n)时间内计算,但不能在 f ( n ) f(n) f(n)时间内计算,否则假设该图灵机为 M M M,在第 i i i行可得出矛盾(见P55图)。没有 log \log log的是因为通用非确定性图灵机可在常数倍时间内模拟其他机器。
Theorem 3.3 拉德纳尔定理:如果 P ≠ NP \text{P}\neq \text{NP} P=NP,则 NPC ≠ NP \text{NPC} \neq \text{NP} NPC=NP
如果 P ≠ NP \text{P}\neq \text{NP} P=NP,则 NPC ≠ NP \text{NPC} \neq \text{NP} NPC=NP
Proof.
这个定理的证明构造非常神奇,就不重复叙述了,见P56.
Theorem 3.7 只使用对角线定理不能证明 P \text{P} P与 NP \text{NP} NP的关系
Proof.
这是因为可构造 A , B A,B A,B使得 P A = NP A \text{P}^A=\text{NP}^A PA=NPA,同时 P B ≠ NP B \text{P}^B\neq \text{NP}^B PB=NPB。因此用对角线方法得不出其中任意一个结论。
A的构造: EXPCOM
B的构造:见P58. 构造B,U_B.
第四章 空间复杂性
Theorem 4.2 DTIME ( S ( n ) ) ⊆ SPACE ( S ( n ) ) ⊆ NSPACE ( S ( n ) ) ⊆ DTIME ( 2 O ( S ( n ) ) ) \text{DTIME}(S(n)) \subseteq \text{SPACE}(S(n)) \subseteq \text{NSPACE}(S(n)) \subseteq \text{DTIME}(2^{O(S(n))}) DTIME(S(n))⊆SPACE(S(n))⊆NSPACE(S(n))⊆DTIME(2O(S(n)))
Proof.
只有最后一个subset是non trival的,考虑格局图+BFS即可.
Theorem 4.3 空间分层定理
如果 f , g f,g f,g满足 f ( n ) = o ( g ( n ) ) f(n)=o(g(n)) f(n)=o(g(n)),则 SPACE ( f ( n ) ) ⊊ SPACE ( g ( n ) ) \text{SPACE}(f(n)) \subsetneq \text{SPACE}(g(n)) SPACE(f(n))⊊SPACE(g(n)).
Proof.
同时间分层定理的证明,因为通用图灵机是空间常数倍,所以可去掉 log \log log.
Theorem 4.13 量化SAT(TQBF)是PSAPCE完全
Proof.
TQBF ∈ PSPACE \in \text{PSPACE} ∈PSPACE: 枚举所有变量
TQBF是 PSPACE \text{PSPACE} PSPACE完全: 格局图的路径 ( s , t , i ) (s,t,i) (s,t,i)递归为 ( s , m i d , i − 1 ) , ( m i d , t , i − 1 ) (s,mid,i-1),(mid,t,i-1) (s,mid,i−1),(mid,t,i−1)可 ( S ( n ) 2 ) (S(n)^2) (S(n)2)空间解决。
Theorem 4.14 塞维奇定理
NPSPACE ( S ( n ) ) ⊆ SPACE ( S ( n ) 2 ) \text{NPSPACE}(S(n)) \subseteq \text{SPACE}(S(n)^2) NPSPACE(S(n))⊆SPACE(S(n)2)
Proof. 类似4.13
Def. 4.16 对数空间规约
通过隐式对数空间可计算函数(可对数计算某一位)规约。
Theorem 4.18 PATH是NL-完全的
Proof.
PATH ∈ NL \in \text{NL} ∈NL: 存当前点编号以及步数.
L ∈ NL L \in \text{NL} L∈NL ⇒ \Rightarrow ⇒格局图的邻接矩阵可 O ( log n ) O(\log n) O(logn)计算 ⇒ \Rightarrow ⇒可对数空间规约到PATH.
Def. 4.19 NL的另一种定义:L+只能读一次的纸带
只能读一次的纸带等价于不确定性的选择方式
Theorem 4.20 NL = coNL
PATH的补集NPATH是coNL完全的,同时也是NL完全的.
Proof.
即证明可在对数空间内证明不存在一条路径连通s,t. 也等价于给出多项式的只读一次的证明。具体证明的构造方法可见P72,也很直观。
第5章 多项式分层与交错
Theorem 5.4 多项式坍塌定理
1.对任意
i
≥
1
i \ge 1
i≥1, 如果
∑
i
p
=
∏
i
p
\sum_i^p=\prod_i^p
∑ip=∏ip,则
PH
=
∑
i
p
\text{PH}=\sum_i^p
PH=∑ip.
2.如果
P
=
NP
\text{P}=\text{NP}
P=NP,则
PH
=
P
\text{PH}=P
PH=P.
Proof.
思路:P=NP相当于可以直接一层一层的拿掉 ∀ , ∃ \forall,\exist ∀,∃.
Theorem 5.10 AP = PSPACE \text{AP}=\text{PSPACE} AP=PSPACE
Proof.
PSAPCE ⊆ \subseteq ⊆ AP: TQBF可以通过交错图灵机解决
AP ⊆ \subseteq ⊆ PSAPCE: 递归搜索
Theorem: APSPACE = EXP \text{APSPACE} = \text{EXP} APSPACE=EXP
Proof.
ASPACE ⊆ \subseteq ⊆ EXP: 递归搜索
EXP ⊆ \subseteq ⊆ APSPACE: 指数电路上利用交错图灵机(?) Proof of APSPACE = EXP
Theorem 5.11: SAT ∉ TISP ( n 1.1 , n 0.1 ) \text{SAT} \notin \text{TISP}(n^{1.1},n^{0.1}) SAT∈/TISP(n1.1,n0.1)
Proof. 只需证明 NP ∉ TISP ( n 1.2 , n 0.2 ) \text{NP}\notin \text{TISP}(n^{1.2},n^{0.2}) NP∈/TISP(n1.2,n0.2).
1. TISP ( n 12 , n 2 ) ⊆ ∑ 2 ( n 8 ) \text{TISP}(n^{12},n^2) \subseteq \sum_2(n^8) TISP(n12,n2)⊆∑2(n8):用格局图来暴力枚举前者
2.若 NTIME ( n ) ⊆ DTIME ( n 1.2 ) \text{NTIME}(n) \subseteq \text{DTIME}(n^{1.2}) NTIME(n)⊆DTIME(n1.2),则 ∑ 2 ( n 8 ) ⊆ NTIME ( n 9.6 ) \sum_2(n^8) \subseteq \text{NTIME}(n^{9.6}) ∑2(n8)⊆NTIME(n9.6): 同样把后半部分提出来
Theorem 5.12: ∑ 2 p = NP SAT \sum_2^p=\text{NP}^{\text{SAT}} ∑2p=NPSAT
Proof.
类似5.11的证明,具体见p81.
第六章 布尔线路
Theorem 6.6 P ⊆ P /poly \text{P} \subseteq \text{P}_{\text{/poly}} P⊆P/poly
Proof. 散漫图灵机
Theorem 6.13 语言 L L L可被 P \text{P} P一致线路族计算 ⇔ L i n P \Leftrightarrow L in \text{P} ⇔LinP
Proof.多项式时间内构造线路即可