“高性能实现常用双监视文字维护传播队列,用VSIDS选择下一决策变量,并按SAT 重启策略周期性清空非根 trail。这三者分别改变索引、搜索顺序和搜索阶段,不参与学习子句可靠性的证明;换掉其…”
形式陈述 ​
一次 SAT restart 把当前CDCL trail 回退到决策层零,并重新开始变量决策;输入子句、仍被保留的 learned clauses 以及通常的变量活动度、phase cache 和监视结构继续存在。它不返回 SAT/UNSAT,也不是重新创建空求解器。触发规则可以按本轮冲突数、传播数、时间或 learned-clause 质量统计定义,但必须明确预算何时重置。
固定 schedule 的代表是 Luby 序列
给定基础预算
Restart 保持可靠性,因为撤销赋值不会制造模型,而保留下来的学习子句仍由原式蕴涵。完备性还需进展条件:例如阶段预算无界增长,使任意需要有限冲突数的完整底层搜索最终获得足够长的不间断阶段;或有其他公平性证明。若策略每次都在关键决策前重启,算法可能无限循环,所以“重启不影响完备性”必须附带调度假设。
直觉
非时序回跳只撤销到当前 learned clause 指定的层,restart 则主动放弃整段非根上下文。它之所以不是白费工作,是因为冲突留下的子句与活动度仍在:下一阶段面对的是更强的公式和改变后的决策排序。短阶段广泛试探不同区域,长阶段则保证有机会完成需要深搜索的证明。
这种机制针对 SAT 搜索常见的重尾行为:某个分支顺序可能很快成功,也可能在巨大局部区域里耗尽资源,而事前难以识别。Restart 用可控预算限制一次坏选择的损失;它不能弥补错误编码、无效学习或永久不公平的分支规则。
例子与边界
若基础预算为 100 次冲突,前七轮 Luby 预算是
这些是各轮独立上限,不是从启动起的累计阈值。设上一轮从冲突中学到
重启后
无界序列是重要但并非孤立的充分条件。若每次长阶段开始后,分支启发式仍以一种不公平方式反复选择同样前缀,长预算也可能被浪费;相反,某些保留子句的 CDCL 状态机会凭持续学习证明终止,不必等待一次完整无重启搜索。动态策略常以经验阈值触发,它们在基准上有效不等于对所有公式支配 Luby 或几何 schedule。
推论与应用
Restart 与 phase saving 常配合:求解器回到根层,却在重新遇到变量时先尝试上轮极性,得到“保留局部赋值方向、重新排列决策次序”的效果。活动度衰减、子句删除和 restart 周期共同决定跨阶段保留多少记忆,因此调参不能只看一个旋钮。
增量 SAT 还需区分内部 restart 与查询边界。撤销 assumptions 后开始下一次查询会改变有效前提集合;含局部 assumption 的学习子句必须通过显式 assumption literal 保持条件化。可复现实验应报告 schedule、基础预算、动态触发统计及随机种子,并以多次运行分布评价重尾波动。
参考资料
- Michael Luby, Alistair Sinclair, and David Zuckerman, “Optimal Speedup of Las Vegas Algorithms,” Information Processing Letters 47(4), 1993, pp. 173–180。
- Carla P. Gomes, Bart Selman, and Henry Kautz, “Boosting Combinatorial Search Through Randomization,” AAAI, 1998, pp. 431–437。
- Jasmin Christian Blanchette, Mathias Fleury, Peter Lammich, and Christoph Weidenbach, “A Verified SAT Solver Framework with Learn, Forget, Restart, and Incrementality,” Journal of Automated Reasoning 61, 2018, pp. 333–365。