SAT的特殊情况和相应的#SAT,复杂度最高为O(n ^ 2)并且具有生成实例的有效算法?

时间:2011-09-12 01:36:45

标签: logic enumeration time-complexity counting satisfiability

我有兴趣了解已知为多项式(或更现实地,O(N ^ 2))的布尔可满足性问题的特殊情况。这些情况也应该有实际生成所有令人满意的实例的有效算法,其中有效的意思是需要O(N #SAT)来生成所有实例的序列。第二个条件可能意味着第一个,但我不清楚。

琐碎的例子:1SAT:)

琐碎的例子:2SAT带有子句的“链”,因此用子句连接变量的图是一条线。

是否有更多地方的清单?感谢。

1 个答案:

答案 0 :(得分:3)

来自Schaefer的The Complexity of Satisfiability Problems

  

我们证明(假设P!= NP)SAT(S)只有在满足下列条件中的至少一个条件时才可判定为多项式时间:

     

(a)当所有变量都为0时,满足S中的每个关系。

     

(b)当所有变量均为1时,满足S中的每个关系。

     

(c)S中的每个关系都可以通过CNF公式来定义,其中每个合取最多只有一个否定变量。

     

(d)S中的每个关系都可以通过CNF公式来定义,其中每个合取最多只有一个不需要的变量。

     

(e)S中的每个关系都可以通过CNF公式来定义,每个联合体最多有2个文字。

     

(f)S中的每个关系都是两元素场{0,1}上线性方程组的解集。

前两个是可解的O(1),接下来的三个O(n)和最后一个O(n ^ 3)(我认为)。所以你想要的SAT实例是前五个类中的一个。