这在我看来非常明显,没有,但我可能会留下一个特例。 我认为1SAT(每个子句只有一个文字)和2SAT可以很容易地转换成3SAT。 已经证明任何超过3个文字的子句都可以转换为3SAT。 所以也许应该问这个问题: 是否所有布尔代数都可以放入SAT?要么 我们可以用ony这些运算符定义布尔代数吗? AND OR而不是
答案 0 :(得分:2)
不,没有。
我不会给出完整的证据,但这是主要的想法:以正常形式写出给定的公式,即析取的结合。对表达式上的变量数量使用归纳法。选择带有n + 1个变量的最长子表达式,为子表达式的某些部分引入一个新变量,留下n个变量的表达式,将新变量的约束添加到公式中,根据需要重复该过程多次以获得公式其中最长的子表达式有n个变量。