Answers:
问题是coNP很难解决。您可以轻松地将UNSAT问题简化为该问题。
一个更精确的特征是问题是C = P -complete。实际上,类C = P的一种定义是问题的类可以通过多项式多次还原到这个问题(通常用GapP函数表示)。但这并不能说明太多,所以让我用另一种方式定义此类。
令C = P为一类问题,该问题可以通过多项式多项式归结为以下问题:给定布尔电路φ和整数K(二进制),确定满足φ的赋值数是否等于K。通过显示#3SAT的#P完全性的标准归约法,我们可以将φ限制为3CNF公式,而不影响类别。C = P类包含一个名为US的类,其中包含UP和coNP。
使用此定义,您的问题是C = P-完全。实际上,从类C = P(使用3CNF公式)的定义中很容易看出C = P硬度。
为了证明在C成员= P,假设我们是决定两个给定的CNF公式是否φ 1和φ 2有相同数量的满足分配与否。不失一般性,我们可以假设两个公式具有相同数量的变量,例如n。构造一个以n +1位为输入的布尔电路φ,以使φ的满足分配数等于c 1 +(2 n - c 2),其中c 1和c 2是满足的分配的数量φ 1和φ 2分别。当且仅当c 1 = c 2时,满足的φ分配数量等于2 n。
这是原始问题的一个小变化。令为一个预言,如果CNF f 1比CNF f 2具有更多的解,则在输入(f 1,f 2)上输出1 。
鉴于此Oracle,我们建立了一个多时间机器可以解决计算给定的CNF解的个数的#P-完全问题φ。注意,φ可以具有指数级的解。
的工作原理如下:它产生的公式与已知的一些解决方案,并使用二进制搜索,并通过询问最多多项式查询 Ø,它找到一个公式 φ 我拥有相同数量的解决方案为 φ。最后,它输出刚刚找到的解决方案的数量。
这表明具有复杂度#P。
看起来这至少是NP难的,因为只需一个解决方案就可以轻松构造SAT公式。然后,通过Valiant-Vazirani定理,从每个SAT公式到一组Unique-SAT问题(确定一个公式是否具有唯一解),然后将这些Unique-SAT问题与构造的SAT公式仅用一个解决方案进行比较,概率就减少了使您能够确定所考虑的SAT公式的可满足性。