本章主要证明某些问题的确是难解的
1.空间层次定理
1. 空间可构造
空间可构造函数
f
f
f:如果存在一个图灵机M,使对M输入任何字W时,其总停机,且停机时纸带上至多有f(n)个单元非空,同时在整个计算过程中没有用到f(n)之外的其他单元。
f
f
f至少是O(logn)级别的,可以是
l
o
g
2
(
n
)
,
n
l
o
g
2
(
n
)
,
n
2
log_2(n),nlog_2(n),n^2
log2(n),nlog2(n),n2.
输入
n
n
n个1,在
O
(
f
(
n
)
)
O(f(n))
O(f(n))空间内,计算出
f
(
n
)
f(n)
f(n)的结果,以二进制表示在输出带子上。
n
2
n^2
n2的话可能需要三个
O
(
n
)
O(n)
O(n)的空间做自乘运算。
2. 空间层次定理
对于任何空间可构造函数
f
f
f,存在一个语言(问题)A,可以在
O
(
f
(
n
)
)
O(f(n))
O(f(n))空间复杂度内判定,却不能在
o
(
f
(
n
)
)
o(f(n))
o(f(n))空间复杂度内判定。
通俗的讲,在空间可构造的前提下,空间越大,可以解决更多的问题。
另一种叙述方式:
3. 重要结论
由萨维奇定理,
P
S
P
A
C
E
=
N
P
S
P
A
C
E
PSPACE = NPSPACE
PSPACE=NPSPACE,因此我们只需要证明
N
L
⊊
N
P
S
P
A
C
E
NL\subsetneq NPSPACE
NL⊊NPSPACE即可。又对数空间是严格小于多项式空间的,由空间层次定理,
N
L
⊊
P
S
P
A
C
E
NL\subsetneq PSPACE
NL⊊PSPACE。
2. 时间层次定理
1. 时间可构造
输入
n
n
n个1,在
O
(
t
(
n
)
)
O(t(n))
O(t(n))空间内,计算出
t
(
n
)
t(n)
t(n)的结果,以二进制表示在输出带子上。即对于输入
n
n
n,输出
t
(
n
)
t(n)
t(n),至多执行
t
(
n
)
t(n)
t(n)步。至少为
n
l
o
g
n
nlogn
nlogn的所有常见函数都是时间可构造的。
2. 时间层次定理
对于任何空间可构造函数
f
f
f,存在一个语言(问题)A,可以在
O
(
t
(
n
)
)
O(t(n))
O(t(n))空间复杂度内判定,却不能在
o
(
t
(
n
)
/
l
o
g
(
t
(
n
)
)
)
o(t(n)/log(t(n)))
o(t(n)/log(t(n)))空间复杂度内判定。可能存在更紧的界,但是目前我们无法证明。
要严格的小于下界,才能够说明真包含关系。
相当于除以多项式,给出了一个更松的下界,因此结论成立。
3. E X P S P A C E EXPSPACE EXPSPACE完全
- 广义(可以带求幂操作)正则表达式等效问题(
E
Q
R
E
X
↑
EQ_{REX\uparrow}
EQREX↑)
由于是 E X P S P A C E EXPSPACE EXPSPACE完全的,在 E X P S P A C E EXPSPACE EXPSPACE中最难的问题,因此不能再多项式时间判定,也不能在多项式空间判定(空间层次定理),只能在指数空间内判定。
Note: 正则表达式等效问题(
E
Q
R
E
X
∈
P
S
P
A
C
E
EQ_{REX} \in PSPACE
EQREX∈PSPACE)
2. 判定一个语言是
E
X
P
S
P
A
C
E
EXPSPACE
EXPSPACE完全的
4. 相对化
可以使用对角化方法证明 E Q R E X ↑ EQ_{REX\uparrow} EQREX↑是难解的
- 运用相对化方法说明对角化方法不能证明P和NP的关系
核心思想是: 找到两个oracle A、B, P A P^A PA和 N P A NP^A NPA是不同的,但是 P B P^B PB和 N P B NP^B NPB是相等的。如果对于任意oracle, P A P^A PA和 N P A NP^A NPA都是相同的,则可以说明 P = N P P=NP P=NP;如果对于任意oracle, P B P^B PB和 N P B NP^B NPB都是相同的,则可以说明 P = N P P=NP P=NP。因此,通过模拟无法分开 P P P和 N P NP NP,必须通过分析的方法。
在相对化中,假设存在一个黑盒(oracle,神谕),可以一步解决可满足性问题。这样的假设是针对于特殊问题提出的,因此叫相对化(相对于某个特殊问题)。
语言A的oracle是一种能够报告任何字符串
w
w
w是否是A的成员的设备。具有查询
A
A
A语言功能的图灵机。
具有多项式时间查询
A
A
A语言功能的确定性图灵机和非确定性图灵机。
由
N
P
⊆
P
S
A
T
NP\subseteq P^{SAT}
NP⊆PSAT,进一步
c
o
N
P
⊆
P
S
A
T
coNP\subseteq P^{SAT}
coNP⊆PSAT
假设:
P
S
A
T
P^{SAT}
PSAT中包含除
P
P
P之外的语言,同理
N
P
S
A
T
NP^{SAT}
NPSAT中包含除
N
P
NP
NP之外的语言
两个布尔公式是等价的:
- 两个布尔公式拥有相同的变量集合
- 相同赋值集上,结果结果相同
M
I
N
−
F
O
R
M
U
L
A
‾
\overline{MIN-FORMULA}
MIN−FORMULA似乎不属于
N
P
NP
NP,尽管我们无法证明。但是,
M
I
N
−
F
O
R
M
U
L
A
‾
⊆
N
P
S
A
T
\overline{MIN-FORMULA}\subseteq NP^{SAT}
MIN−FORMULA⊆NPSAT
证明:
先利用非确定图灵机找出长度更小的公式,然后利用SAT oracle进行问题转化后,检查是否真的相等。
5. 电路复杂性
为什么要建立图灵机和布尔电路之间的联系
- 布尔电路可能为解决P和NP问题,提供了简便的计算模型
- 布尔电路可以提供SAT是NPC问题的另一种证明
想法:通过电路来测试语言的成员资格,但是电路的输入长度一般是固定的,而输入成员的长度一般都是不固定的,因此我们用电路族来检验。电路组中的某个电路,负责固定长度成员的检验。
电路的大小: 电路中包含的门的数量
电路的深度: 电路中从输入到输出最长路径中的边数
电路等效: 如果两个电路的输入变量相同,且对任意相同的输入赋值,得到的输出相同
一个电路的最小尺寸电路: 找不到大小更小的电路与它等效
一个电路的最小深度电路: 找不到深度更小的电路与它等效
最小尺寸电路族: 电路族中的每一个电路都是最小尺寸电路
最小深度电路族: 电路族中的每一个电路都是最小深度电路
电路尺寸复杂度: 用电路尺寸函数
f
f
f来刻画
最小化电路问题是难解的,甚至检测一个电路是不是最小电路也不属于 P P P或 N P NP NP。
一个语言的电路(尺寸)复杂度:该语言对应的最小尺寸电路族的尺寸复杂度
一个语言的电路(深度)复杂度:该语言对应的最小深度电路族的尺寸复杂度
一个语言拥有较小的时间复杂度,同样则会有较小的电路复杂度。
上述定理提供了一种
P
≠
N
P
P\neq NP
P=NP的解决:
布尔电路可满足的:某些输入的设置让电路的输出为1,即可以满足的。
是NPC问题,且3SAT问题也是NPC问题。