“决策 $p=1@1$ 传播 $q=1@1$;决策 $r=1@2$ 只满足 $C 2$;决策 $a=1@3$ 依次传播 $b,c,d,e,f$,最后 $C 8$ 冲突。对应的CDCL 蕴含图显…”
形式陈述 ​
对一份CNF 和当前 trail
则
Reason 的其他文字在传播发生前已经为假,故所有普通边都从 trail 中较早位置指向较晚位置,冲突边最后到达
给定一个把当前层决策置于 reason side、把
沿 conflict side 反向消去内部传播顶点即可用 reason clauses 归结出它,所以该子句由输入蕴涵。图只是组织证明依赖的表示,蕴涵性仍来自每个 reason 和归结规则。
直觉
Trail 告诉我们“先后发生了什么”,蕴含图进一步说明“后一个赋值为什么不得不发生”。一个传播节点可能有多个父节点,因为只有若干前提同时为真时,reason clause 才只剩它一个出口。冲突节点则把一条被完全关闭的子句变成共同终点。
Cut 像在因果网络上截取边界。边界内的传播细节可以通过归结消去,边界外只保留足以再次触发同类冲突的条件。选择不同 cut 会得到不同学习子句;因此图不自动指定“最好”的学习结果,它只使候选结果与原始原因之间的证明路径可见。
例子与边界
沿一次 CDCL 轨迹,设
传播
“蕴含图”一名也用于 2-SAT 中由每个二元子句静态建立的图;那张图的顶点是正负文字、边表达材料蕴含,并用于强连通分量判定。这里的图只描述一次动态 trail,含决策层、reason 和冲突节点,二者不能共享未限定的结论。理论传播还可能引入来自理论解释的超边式原因,必须先将解释写成有效子句再接入此图。
推论与应用
CDCL用蕴含图定位非时序依赖:若冲突只依赖层 1 与层 3 的前沿,层 2 决策就不应阻止算法直接回到层 1。图也支持可视化诊断,显示哪些原子句和传播链真正参与了失败,而不是把整条 trail 都误报为核心。
唯一蕴含点是 cut 的一种结构化选择。First-UIP 让学习子句恰含一个当前层文字,从而在回跳后立即传播;其他 cut 仍可可靠,却可能不具 asserting 性。证书生成器不必保存整张图,只要记录每个学习子句的父子句与 pivot,独立检查器就能重放同一消去过程。
参考资料
- João P. Marques-Silva and Karem A. Sakallah, “GRASP: A Search Algorithm for Propositional Satisfiability,” IEEE Transactions on Computers 48(5), 1999, pp. 506–521。
- Lintao Zhang, Conor F. Madigan, Matthew W. Moskewicz, and Sharad Malik, “Efficient Conflict Driven Learning in a Boolean Satisfiability Solver,” ICCAD, 2001, pp. 279–285。
- Paul Beame, Henry Kautz, and Ashish Sabharwal, “Towards Understanding and Harnessing the Potential of Clause Learning,” Journal of Artificial Intelligence Research 22, 2004, pp. 319–351。