我有兴趣了解已知为多项式(或更现实地,O(N ^ 2))的布尔可满足性问题的特殊情况。这些情况也应该有实际生成所有令人满意的实例的有效算法,其中有效的意思是需要O(N #SAT)来生成所有实例的序列。第二个条件可能意味着第一个,但我不清楚。
琐碎的例子:1SAT:)
琐碎的例子:2SAT带有子句的“链”,因此用子句连接变量的图是一条线。
是否有更多地方的清单?感谢。
答案 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实例是前五个类中的一个。