跳转至

Boolean Satisfiability via Imitation Learning

会议: ICLR2026
arXiv: 2509.25411
代码: https://github.com/zewei-Zhang/ImitSAT
领域: model_compression
关键词: SAT, 模仿学习, CDCL, 分支策略, 自回归, Transformer

一句话总结

提出 ImitSAT,首个基于模仿学习的 CDCL 求解器分支策略:通过将求解器运行压缩为无冲突的 KeyTrace 专家序列,将分支决策建模为前缀条件的自回归预测任务,以少量查询预算显著减少传播次数和求解时间,并在结构化 SAT 问题上展现良好泛化能力。

研究背景与动机

  1. 领域现状:布尔可满足性问题 (SAT) 是理论 CS 和 AI 的基石。现代求解器以 CDCL 框架为主,其中分支(branching)决策决定搜索轨迹,而单元传播 (unit propagation) 占运行时间的 80%-90%。
  2. 现有痛点
  3. 经典分支启发式(如 VSIDS)是手动设计的,适应性有限
  4. SATformer 仅在初始化时调整变量活跃度,搜索开始后无法影响分支
  5. Graph-Q-SAT 使用强化学习在线代理,但 RL 需要大量探索、奖励稀疏不稳定,且仅基于当前状态快照,不利用完整历史
  6. 核心洞察:传播占 CDCL 运行时间约 88.9%(MiniSAT 实测),因此减少传播次数是加速求解的主要路径。高质量的分支决策能直接减少传播。
  7. 切入角度:用模仿学习替代强化学习——从专家轨迹中直接学习,获得密集的决策级监督信号,避免探索开销。

核心问题

如何从 CDCL 求解器的运行轨迹中提取高质量的专家信号,并训练一个可即插即用的分支策略来减少传播次数?

方法详解

整体框架

ImitSAT 由两个核心组件构成:(1) KeyTrace 构建——将完整求解器运行压缩为仅保留存活决策的紧凑序列;(2) 自回归模仿学习器——基于前缀条件预测下一个分支决策。

关键设计

  1. KeyTrace 专家轨迹提取:
  2. 做什么:从 CDCL 完整运行轨迹 \(\mathcal{T}_t\) 中提取仅包含存活决策和传播的紧凑序列 \(\mathcal{K}_t\)
  3. 核心思路:从左到右扫描轨迹,维护工作序列 \(\mathcal{K}\)。遇到决策/传播事件直接追加;遇到回溯事件,用 \(\text{trim}_{\leq h}\) 移除所有高于回溯层级的后缀事件,再追加新决策。重启视为裁剪到层级0
  4. 关键效果:重放 KeyTrace 几乎无冲突——仅需原始 MiniSAT 运行 0.2% 的冲突、19.6% 的决策、4.3% 的传播

  5. 序列化与自回归学习器:

  6. 做什么:将 CNF 公式和 KeyTrace 前缀序列化为统一输入,训练自回归模型预测下一个签名变量
  7. 输入格式:[CNF] || F_DIMACS || [SEP] || enc(K_t) || [D],其中 [D] 是决策探针标记
  8. 训练目标:行为克隆,最小化专家决策的负对数似然(即交叉熵)
  9. 架构:Perceiver AR(Hawthorne et al., 2022),输出潜在数组长度为1,每次查询复杂度 \(O(N)\) 而非 \(O(N^2)\)。16头注意力、12个 Transformer 块

  10. CDCL 在线集成:

  11. 做什么:在每个决策点以小预算查询学习器,不确定时回退到 VSIDS
  12. 核心策略:前置查询调度(front-loaded)——早期决策对搜索影响最大,因此在求解初期集中使用查询预算
  13. 完备性保证:所有其他 CDCL 组件(传播、冲突分析、子句学习)不变

训练技巧

  • 变量置换增强:随机置换变量 ID 来构造训练样本,有效缓解过拟合(无增强时验证损失先降后升)
  • 分阶段课程学习:从小规模变量逐步扩展到大规模,加速在简单实例上的收敛

实验关键数据

主实验:随机 3-SAT 测试集 (MRPP \(\tilde{r}\)↓, 越低越好)

方法 5-15 16-30 31-60 61-100 50 100
Graph-Q-SAT (3calls) 1.00 0.94 0.89 1.15 0.71 0.85
SATformer 1.00 0.89 0.84 0.78 0.88 0.81
ImitSAT (3calls) 0.75 0.83 0.75 0.78 0.74 0.76

ImitSAT 在几乎所有变量范围上取得最低 MRPP,且 1% 胜率 \(W_{1\%}\) 也是最高的(3calls 下所有范围最佳)。

泛化:结构化 SAT 家族 (MRPP \(\tilde{r}\)↓)

方法 JNH AIM PARITY PHOLE PRET
Graph-Q-SAT (5calls) 1.11 1.18 0.56 0.82 0.92
SATformer 1.36 1.01 0.73 1.00 1.00
ImitSAT (5calls) 0.85 0.81 0.30 0.82 0.42

仅在随机 3-SAT 上训练,无需微调即可泛化到结构化问题,在 PARITY 和 PRET 上优势尤为明显。

墙钟时间

  • 在较难的 61-100 变量范围,ImitSAT 达到最低墙钟时间(传播节省超过查询开销)
  • 在较易的 16-30、31-60 范围,纯 MiniSAT 仍更快,但 ImitSAT 是最强的学习方法且差距很小

亮点与洞察

  • 首个基于模仿学习的 CDCL 分支策略:避免了 RL 的探索不稳定性,提供密集的决策级监督信号
  • KeyTrace 设计精巧:将冗长的求解器轨迹压缩到极致(4.3% 传播),且重放几乎无冲突,是理想的专家信号
  • 前缀条件建模与序列预测的自然契合:分支决策本质上依赖前缀历史,自回归模型完美匹配这一结构
  • 即插即用:不改变 CDCL 其他组件,保持完备性,仅需少量查询(3-5次/实例)

局限性 / 可改进方向

  • 受限于上下文窗口,仅在 ≤100 变量的实例上训练和评估,未扩展到工业级大规模实例
  • 在简单实例(16-30 变量)上,模型推理开销无法被传播节省覆盖,墙钟时间不如纯 MiniSAT
  • 当前使用 Python 版 MiniSAT,C++ 实现可能进一步扩大效率差距
  • 未探索混合模仿-强化学习方案(论文自身提到的 future work)
  • 课程学习和查询预算调度的最优策略尚需更系统的研究

与相关工作的对比

  • vs SATformer:SATformer 仅在初始化时影响 VSIDS 分数,搜索中不再干预;ImitSAT 在搜索过程中直接指导分支,更直接
  • vs Graph-Q-SAT:GQSAT 用 RL + 当前状态快照,奖励稀疏且不利用历史;ImitSAT 用 IL + 完整前缀历史,训练更稳定
  • vs MIP branch-and-bound 的 IL 方法:MIP 的 B&B 是单调树搜索;SAT 的 CDCL 有非单调搜索、重启和子句学习,动态更复杂。ImitSAT 训练全序列的自回归策略而非局部排序模型

评分

  • 新颖性: ⭐⭐⭐⭐ 首次将模仿学习引入 CDCL 分支,KeyTrace 专家构造方法新颖
  • 实验充分度: ⭐⭐⭐⭐ 多种 SAT 家族、消融、墙钟时间评估全面,但变量规模受限
  • 写作质量: ⭐⭐⭐⭐ 动机到方法的推导连贯清晰,KeyTrace 的可视化直观
  • 价值: ⭐⭐⭐⭐ 为学习增强 SAT 求解开辟了新方向,但实际工业应用仍需突破规模瓶颈