形式陈述
3-SAT 是布尔可满足性公理库可满足公式Satisfiable formula存在至少一个真值赋值使其为真的命题公式。在合取范式公理库合取范式Conjunctive normal form · CNF由若干析取子句之合取构成且与原公式逻辑等价的标准形。上的宽度限制。它的输入写作
其中每个子句 是三个文字的析取,文字是变量 或其否定 。问题询问是否存在布尔赋值使 为真。
本条采用“每个子句恰有三个文字”的约定;允许重复文字时,含一或两个文字的子句可填充为三个,因此与“至多三个文字”的常见约定多项式等价。
直觉
3-SAT 把一般逻辑约束限制为局部的三元析取,却仍保留 SAT 的全部 NP 困难性,因为许多共享变量的小约束组合起来仍能表达全局选择困难,而困难并不来自某个巨大子句。宽度约束也使归约构件局部而规则,适合作为图、集合和调度问题的起点。把一般长子句拆分时必须引入辅助变量,以保持“存在某个扩展赋值”的等可满足性,而非逐赋值等价。
例子与边界
公式 是合法实例。3-SAT 不应与 2-SAT 混淆:2-SAT 可在线性时间内求解,而 3-SAT 是 NP-complete。若要求三个互异变量且不允许重复,需要额外的等价变换。
四文字子句 可用新变量 替换为
原子句可满足当且仅当存在 使新公式可满足;对长度更长的子句可串联辅助变量。长度为 或 的子句可重复文字补到三个位置。
2-SAT 有线性时间算法,因此“每个子句常数宽”本身不导致 NP 完全;阈值恰在宽度从 到 。拆分保持的是整体可满足性,不能要求原变量每个固定赋值下新公式不经选择辅助变量便同值。
推论与应用
3-SAT 建立在命题逻辑公理库命题逻辑Propositional logic · Propositional calculus研究命题如何通过逻辑联结词组合以及公式在真值赋值下何时成立。上,并由Cook–Levin 定理公理库Cook–Levin 定理Cook–Levin theorem · SAT is NP-complete布尔可满足性问题 SAT 是 NP 完全问题。后的宽度约化得到 NP 完全性;许多图问题归约从三文字子句构造常数规模 gadget。精确时间主线固定 为变量数:ETH公理库指数时间假设 ETHExponential Time Hypothesis · ETH假设以变量数 n 衡量的 3-SAT 不存在 2^{o(n)} 乘多项式因子的算法。排除 ,稀疏化引理公理库稀疏化引理Sparsification lemma · Sparsification lemma for k-SAT将固定宽度 CNF 分解为指数率任意小的线性规模稀疏公式析取,并保持可满足性。把稠密固定宽度公式拆成线性子句分支,SETH公理库强指数时间假设 SETHStrong Exponential Time Hypothesis · SETH假设随着子句宽度增长,k-SAT 的最优指数底数不能被某个统一小于 2 的常数界定。则量化所有 -SAT 的指数底数。三者是条件假设或定理,不属于 3-SAT 问题定义。
参考资料
- Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach, Cambridge University Press, 2009,§2.2。
- Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013,§7.4。