Skip to content

First-UIP 子句学习

First-UIP clause learning · First unique implication point · 1-UIP learning

在冲突图中选取离冲突最近的唯一蕴含点,归结得到 asserting clause 并确定回跳层。

条目类型
方法

形式陈述

在一次CDCL冲突的当前决策层 d,若顶点 u 位于当前决策文字到冲突节点的每条有向路径上,则 u 是唯一蕴含点(UIP)。当前决策文字本身总是 UIP;沿冲突方向遇到的第一个 UIP,亦即离冲突最近者,称 first UIP。这个定义属于当前蕴含图,不是变量在原 CNF 中的永久性质。

First-UIP 分析从 conflict clause 开始。只要当前工作子句含两个或更多层 d 文字,就选 trail 中最后赋值的一个传播文字 ,用它的 reason clause 在 上作一次归结。逆序重复,直到工作子句恰含一个层 d 文字。所得 learned clause L 由输入蕴涵;唯一当前层文字的补文字对应 first UIP。

bL 中除唯一层 d 文字外所有文字的最高决策层;若没有其他文字,取 b=0。撤销至 b 后,其他文字仍为假而当前层文字已经撤销,所以 L 成为单位子句并传播。这既定义 backjump level,也解释了为何 First-UIP clause 被称为 asserting clause。若冲突发生在根层,则没有决策可撤销,直接得到 UNSAT。

直觉

冲突附近可能有多条传播支路,First-UIP 寻找这些支路汇合后、尚未抵达冲突的最后一道闸门。把闸门之后的具体传播全部归结消去,学习子句只保留闸门和较早层条件。于是回跳后,较早条件会立刻把这道闸门推向避免冲突的一侧,而不是重新走完原来的长链。

按 trail 逆序归结是一种无需显式枚举所有 cut 的实现。最近赋值的当前层文字必然是已经发生的传播节点;用其 reason 替换它,相当于把 cut 向前推过该节点。当前层文字数降到一时,cut 正好停在 first UIP 前沿。

例子与边界

设冲突层为 3,较早层已有 q=1@1,当前层传播了 d,e,f。三个相关子句为

C6=(¬q¬de),C7=(¬q¬df),C8=(¬e¬f).

C8 含两个层 3 文字的否定。先用 e 的 reason C6 归结:

rese(C8,C6)=(¬q¬d¬f).

它仍含层 3 的 d,f;再用 f 的 reason C7

resf(¬q¬d¬f,C7)=(¬q¬d).

现在仅 d 属于冲突层,first UIP 是 d。其余文字只涉及层 1 的 q,故从层 3 回跳到层 1,并在 q=1 下传播 d=0。若误回到层 2,子句同样会传播,却保留了无关决策;若回到层 0,虽然仍可靠,却丢掉了本可保留的搜索上下文。

First-UIP 不是可靠性的来源:可靠性来自每次归结的父子句有效。它也不保证 learned clause 在文字数、蕴涵强度或未来运行时间上全局最优。若 reason 含理论 lemma,归结仍可使用,但该 lemma 本身必须带可靠理论解释。多个传播顺序还可能产生不同 implication graph 和不同 First-UIP 子句。

推论与应用

First-UIP 子句天然支持非时序回跳,并常具有较少的 decision-level blocks,因此成为现代 SAT 求解器的主流冲突分析方案。LBD 等指标统计子句跨越的决策层数,用于数据库保留或 restart 判断;它们是对未来用途的启发式预测,不改变 asserting clause 的证明。

从证明复杂度看,每份学习记录都可展开成一段归结推导;保留 learned clause 让后续冲突共享这段证明。若最终需要可认证 UNSAT,求解器可输出 resolution-like、DRAT 或 LRAT 日志,使 checker 不必重建当时的 UIP 图,只验证子句加入与删除步骤是否合法。

参考资料
  • 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。
  • 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。
  • 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。
关系图谱8 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系

使用的工具

被这些条目使用