算法设计 第九章 PSPACE:一个超出NP的问题类
1 PSACE 多项式空间问题
1.1 PSPACE
P:多项式时间内可以求解的decision peoblem(判断是否)
PSPACE:多项式空间内可以解决的decision problem
时间可以不可以重用,空间可以重用。
判断时间复杂度,需要等到算法求解完成的最后一刻,计算用时。
判断空间复杂度,只需要计算需要的最大空间。
P
⊂
\subset
⊂NP
- 一个算法在多项式时间内只能占用多项式数量的空间。
NP ⊂ \subset ⊂ PSPACE
- 0到 2 n − 1 2^n-1 2n−1n位计数器
- 3-SAT NPC问题
- 尝试所有真值赋值,计数器代表每一位的数值,多项式时间内验证每个解。空间复杂度:计数器空间+多项式时间的验证算法。
P ⊂ \subset ⊂NP ⊂ \subset ⊂PSPACE
1.1 planning problem :二进制计算器
条件:
C
1
,
.
.
.
,
C
n
C_1,...,C_n
C1,...,Cn
初识状态:
c
0
c_0
c0
目标状态:
c
∗
=
{
C
1
.
.
.
C
n
}
c^*=\{C_1...C_n\}
c∗={C1...Cn}
操作:
O
1
.
.
.
O
n
O_1...O_n
O1...On
2 PSPACE-Complete 多项式空间完全问题
2.1 QSAT
电路可满足性是天然的NPC问题,QSAT是天然的PSPACE-C问题。
Φ
(
x
1
,
…
,
x
n
)
=
C
1
∧
C
2
⋯
∧
C
n
\Phi(x_1,\dots,x_n)=C_1\wedge C_2\dots \wedge C_n
Φ(x1,…,xn)=C1∧C2⋯∧Cn
我们问:
∃
x
1
∀
x
2
…
∃
x
n
−
2
∀
x
n
−
1
∃
x
n
Φ
(
x
1
,
…
,
x
n
)
\exists x_1\forall x_2\dots \exists x_{n-2}\forall x_{n-1}\exists x_n\Phi(x_1,\dots,x_n)
∃x1∀x2…∃xn−2∀xn−1∃xnΦ(x1,…,xn)
是否存在这样的真值赋值是的字句为真? 我们将该问题记做量化的3-SAT (Q-SAT)
普通的SAT问题可以记做
∃
x
1
∃
x
2
…
∃
x
n
−
2
∃
x
n
−
1
∃
x
n
Φ
(
x
1
,
…
,
x
n
)
\exists x_1\exists x_2\dots \exists x_{n-2}\exists x_{n-1}\exists x_n\Phi(x_1,\dots,x_n)
∃x1∃x2…∃xn−2∃xn−1∃xnΦ(x1,…,xn)
该问题的复杂度如下图所示
S
(
n
)
≤
S
(
n
−
1
)
+
p
(
n
)
S
(
n
)
≤
n
∗
p
(
n
)
S(n)\leq S(n-1)+p(n)\\ S(n)\leq n*p(n)
S(n)≤S(n−1)+p(n)S(n)≤n∗p(n)
Stockmeyer 和Meyer 在1973年证明了 QSAT是PSPACE完全问题。
QSAT可以等价的定义为竞争3-SAT必胜问题。
第一个人挑选
x
1
x_1
x1的值,第二个人挑选
x
2
x_2
x2的值,如此进行下去,如果
Φ
(
x
1
,
.
.
.
,
x
n
)
=
1
\Phi(x_1,...,x_n)=1
Φ(x1,...,xn)=1则第一个获胜,等于0第二个人获胜。
第一个人能否必胜?QSAT问题。
2.2 Competitive facility location 竞争便利店选址问题
输入:G(V,E),每个节点权重
w
i
w_i
wi,目标B
游戏:两个竞争者轮流选择节点,不允许邻居节点被选择。
问题:能保证第二个人至少有
B
B
B的权重。
证明便利店选址问题为PSACPE-complete。将Q-SAT规约为该问题。
将竞争的SAT问题的instance转为竞争便利店选址问题的instance:
Φ
(
x
1
,
.
.
.
,
x
n
)
=
C
1
∧
C
2
.
.
.
∧
C
k
\Phi(x_1,...,x_n)=C_1\wedge C_2...\wedge C_k
Φ(x1,...,xn)=C1∧C2...∧Ck
x
i
x_i
xi与
x
ˉ
i
\bar{x}_i
xˉi的权重
1
0
i
10^i
10i,
x
i
x_i
xi与
x
ˉ
i
\bar{x}_i
xˉi连结,
C
i
C_i
Ci与其变量连结。
B=
1
0
n
−
1
+
1
0
n
−
3
.
.
.
+
1
0
2
+
1
10^{n-1}+10^{n-3}...+10^{2}+1
10n−1+10n−3...+102+1
两个用户轮流选点,选择的点为真。选择的子句节点为假。
如果第二个人可以选择到一个子句节点,则第二个人获胜,反之则否。
因为权重的原因,两人的选择顺序固定,只有在最后一步才能决出胜负,最后一步是第二个人选,如果有子句可以选,则他获胜。
如果在QSAT问题中,第一个人必胜,则所有子句可以满足,在竞争便利店问题中第一个人也获胜。
如果在竞争便利店问题在,第二人输,即不能保证最少的权重B,则在QSAT中第一个人必胜。
因此竞争的便利店选址问题为Pspace-complete问题。