“3 SAT 建立在命题逻辑上,并由Cook–Levin 定理后的宽度约化得到 NP 完全性;许多图问题归约从三文字子句构造常数规模 gadget。精确时间主线固定 $n$ 为变量数:ETH排…”
形式陈述 ​
Cook–Levin 定理断言 SAT 是 NP-complete:
成员性很直接:证书给每个变量一个真值,逐门或逐符号求值即可在公式长度的多项式时间内检查可满足性。困难性要求对每个
这里
直觉
把一条计算分支排成时间向下、纸带位置向右的 tableau。第
对每个时间
- 单值约束:每个格子恰有一个标记。
- 初始约束:第
行精确编码输入、空白区、初始状态和头位置。 - 转移约束:相邻两行的每个常数宽窗口符合
的某条转移。 - 接受约束:第
行包含接受状态;接受自循环保证较短计算也能填满表格。
一次转移只改动头附近的常数个格子,远处格子保持不变。因此合法的相邻行关系可由有限种局部窗口描述;在所有重叠窗口上同时满足局部约束,就拼出一条全局一致的计算历史。非确定选择由满足赋值选择某个合法窗口序列,归约算法本身不需要猜中它。
例子与边界
单值约束怎样工作 ​
若某格允许标记集
标记表对固定机器是常数大小,所以每格只增加常数个变量与子句。
双向正确性 ​
若
容易漏掉的边界 ​
表格两侧需要端标记或足够的空白边界,较早停机的分支需要吸收式停机配置。若省略两两互斥子句,一个格子可以同时宣称多个标记;若只验证每行“像配置”而不检查相邻行,初始行与接受行可以被任意拼接。
定理首先得到一般 SAT。借助新变量对电路门或长子公式作 Tseitin 编码,可以在线性或多项式膨胀下得到与原公式等可满足的 3-CNF,从而导向3-SAT;新公式不必在原变量上的每个赋值都与旧公式等价。这一步也不会让 2-SAT 变得困难,2-SAT 已知属于 P。除非证明
推论与应用
Cook–Levin 为NP 完全性网络提供第一个通用起点。后续证明不必再次编码任意机器,只需从 SAT 或 3-SAT 出发,用局部构件把变量选择和约束传给图、集合、调度等目标。
tableau 还把NP的抽象证书解释成一件具体对象:一份局部可核验的接受计算历史。多项式时间归约保存这份历史“存在或不存在”的答案,而不是保存解的数量、搜索顺序或某个求解器的运行轨迹。
参考资料
- Stephen A. Cook, “The Complexity of Theorem-Proving Procedures,” Proceedings of the Third Annual ACM Symposium on Theory of Computing, 1971, pp. 151–158.
- Leonid A. Levin, “Universal Sequential Search Problems,” Problems of Information Transmission 9(3), 1973, pp. 265–266.
- Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach, Cambridge University Press, 2009, §2.3.
- Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013, §7.4.