“CDCL 延续DPLL 的 trail 与单位传播,却在冲突后不只翻转最近决策。Trail 中每个文字带决策层;传播文字还带 reason clause。若子句 $C$ 的所有文字都被当前…”
形式陈述 ​
DPLL 接收 CNF
算法的核心分解恒等式是
单位传播只加入
这里的 DPLL 不等于早期 Davis–Putnam 消元法。后者按变量生成 resolvent 再删除含该变量的子句;DPLL 用决策树和回溯避免显式产生全部消元子句。两者有共同历史,却有不同的状态与空间行为。
直觉
DPLL 是带可靠剪枝的二叉搜索。一次决策提出临时假设,单位传播把这项假设的全部显然代价结清;若账目出现矛盾,就回到最近尚有另一选择的岔路。算法不是随意试值:每个被剪分支都有一条被全部证伪的子句作为局部证明,而最终 UNSAT 表示两种极性递归形成的整棵有限树都已关闭。
它是回溯法在命题约束上的具体化。撤销必须覆盖该决策层之后的所有传播赋值,却不能删除更早层的事实。变量选择与先试极性可以极大改变树大小,但只要两个分支最终都能被探索,它们不改变判定结果。
例子与边界
令
根层没有单位子句。先决策
纯文字消去有时列入 DPLL:若变量只以
推论与应用
DPLL 的搜索树与树形归结有紧密对应:无学习回溯反复证明各分支冲突,不能跨分支复用已导出的子句。这一对应可把某些证明大小下界转成特定 DPLL 模型的运行时间下界,但不能约束拥有学习、预处理或专用理论推理的所有求解器。
CDCL保留 DPLL 的决策与传播骨架,却分析冲突、学习由原式蕴涵的子句并非时序回跳。工程上还会加入增量求解、assumption literals 和模型重构;这些机制都必须维持同一搜索不变量:任何被永久排除的赋值都已由输入及有效学习子句证明不可能。
参考资料
- Martin Davis, George Logemann, and Donald Loveland, “A Machine Program for Theorem-Proving,” Communications of the ACM 5(7), 1962, pp. 394–397。
- Martin Davis and Hilary Putnam, “A Computing Procedure for Quantification Theory,” Journal of the ACM 7(3), 1960, pp. 201–215。
- Armin Biere, Marijn Heule, Hans van Maaren, and Toby Walsh, eds., Handbook of Satisfiability, 2nd ed., IOS Press, 2021, Chapters 3–4。