计算复杂性理论基础概述
1. 集合与复杂性类
对于任意布尔公式 $\phi(x_1, x_2, \ldots, x_n)$ 以及对其变量的任意(部分)赋值 $t = (a_1, a_2, \ldots, a_k)$,设 $\phi_t$ 是将 $a_i$ 代入 $\phi$ 后得到的公式,它仅依赖于剩余变量。定义集合 $\hat{B}$ 如下:
$\hat{B} = { \langle \phi, t \rangle \mid \phi \in B, t 是对 \phi 的(部分)赋值,且 \phi_t 有唯一满足赋值 }$
显然,$\hat{B}$ 属于 UP。若 $\hat{B}$ 也属于 P,那么利用 $\hat{B}$ 和 SAT 的自归约性,可以为 B 中的每个公式构造一个满足赋值,这与 B 满足的第三个条件矛盾,所以 $\hat{B} \notin P$。
为了说明 $\hat{B} \in coUP$,注意到:
$\langle \phi, t \rangle \notin \hat{B} \Leftrightarrow \phi \notin B \vee (\phi \in B \wedge \overline{\phi_t} 有唯一满足赋值)$
其中,$\overline{\phi_t}$ 是通过选取与 $t$ 矛盾的所有赋值从 $\phi$ 得到的公式。例如,若 $t = (a_1, a_2, \ldots, a_k)$,则:
$\overline{\phi_t} = \phi(\neg a_1) \vee \phi(a_1, \neg a_2) \vee \cdots \vee \phi(a_1, a_2, \ldots, a
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



