Norbert Manthey
nmanthey@conp-solutions.com
Dresden, Germany
Proceedings of SAT Competition 2022: Solver and Benchmark Descriptions, volume B-2022-1 of Department of Computer Science Series of Publications
B, University of Helsinki 2022.
I. UNIT PROPAGATION IMPROVEMENTS
A. Watching Clauses in Propagation
The two watched literals scheme has been implemented first in [7]. The next major improvement to skip processing clauses early was to move literals, so called blocking literals, from the clause into the watch list data structure.
双观察字面值方案在[7]中首先实现。尽早跳过处理子句的下一个主要改进是将字面量(所谓的阻塞字面量)从子句移动到观察列表数据结构中。
B. How to Handle Satisfied Clauses
One difference between CADICAL and MINISAT 2.2 based solvers is the way how they treat these satisfied clauses.
Not processing a satisfied clause during propagation soon again can result in a different order of propagated literals, as well as different conflicts, and consequently in different heuristic updates and many different follow-up search steps of the solver.
在传播过程中没有很快处理一个满意的子句,可能会导致传播文字的顺序不同,以及不同的冲突,从而导致不同的启发式更新和求解器的许多不同的后续搜索步骤。
(1) MINISAT 2.2-based SAT solvers
In MINISAT 2.2, the blocking literal of a clause is typically the other watched literal.
When propagating a clause, first the truth value of the blocking literal is checked. In case the blocking literal is satisfied, the related clause is known to be satisfied. Therefore, the clause does not have to be processed further.
在传播子句时,首先检查阻塞字面值的真值。如果阻塞字面值被满足,则已知相关子句被满足。因此,该子句不需要进一步处理。
MIN-ISAT 2.2 based solvers watch the satisfied literal.
(2) CADICAL
CADICAL implements further extensions, like memorizing the literal in a clause that was tested when last processing the clause [4].
a) Always Watching the Satisfied Literal:
在传播字本时,在子句中检测到满意的文字时,该子句将从当前监视列表中删除。同时,将子句附加到满足的文字的观察列表中。
这两个操作都是常量时间,但需要访问另一个监视列表 (这可能导致缓存丢失[6]和TLB丢失[3] )。
在搜索树中,其他文字的观察列表可以放在更高的位置,这样在搜索的剩余部分中,就不会频繁地接触到该子句。
b) Just Update the Blocking Literal:
作为替代方案,CADICAL继续观察当前的字面量,它现在是falsified的,但更新阻塞字面量到满意的字面量.虽然这打破了伪字面量只监视冲突从句或单元从句的假设,但我们仍然知道该从句是满足的。因此,打破这个假设不会有什么后果。
积极的影响是,该条款不必从当前的观察名单中删除。这不会导致缓存丢失,也不会导致TLB丢失。但是,当搜索继续进行时,在回溯之后,可能需要再次处理相同的子句。如果满足的文字仍然满足,则只需要处理阻塞文字。否则,回溯也删除了阻塞字字面量的赋值,因此需要重新处理整个子句。
c) Watching the Satisfied Literal in CADICAL and KISSAT:
在用MERGESAT进行初步测试时,如果只是更新子句的阻塞文字,就会导致性能下降。求解器CADICAL-WATCH-SAT和KISSAT-WATCH-SAT实现了这一修改.
(3)MERGESAT
In MERGESAT, when watching a satisfied literal during unit propagation, the clause is moved to the watch list of that literal.在MERGESAT中,当在单元传播期间观察一个满意的文字时,子句被移动到该文字的观察列表中。
In 2021, KISSAT and CADICAL just update the blocking literal of the clause and keep the clause in the current watch list.
II. GENERIC IMPROVEMENTS
Besides modifying the algorithm directly, other parameters of the environment can be influenced as well. 除了直接修改算法外,环境的其他参数也会受到影响。
这个编译时标志已经被添加到KISSAT和CADICAL的构建文件中.This compile time flag has been added to the build files for
both KISSAT and CADICAL
REFERENCES
[1] A. Biere, M. Heule, H. van Maaren, and T. Walsh, Eds., Handbook of
Satisfiability.
Amsterdam: IOS Press, 2009.
[2] N. E´en and N. S¨orensson, “An extensible SAT-solver,” in SAT 2003, ser.
LNCS, E. Giunchiglia and A. Tacchella, Eds., vol. 2919.
Heidelberg:
Springer, 2004, pp. 502–518.
[3] J. K. Fichte, N. Manthey, J. Stecklina, and A. Schidler, “Towards faster
reasoners by using transparent huge pages,” in Principles and Practice of
Constraint Programming, H. Simonis, Ed.
Cham: Springer International
Publishing, 2020, pp. 304–322.
[4] I. P. Gent, “Optimal implementation of watched literals and more general
techniques,” J. Artif. Intell. Res., vol. 48, pp. 231–251, 2013. [Online].
Available: https://doi.org/10.1613/jair.4016
[5] R. Hickey and F. Bacchus, “Trail saving on backtrack,” in Theory and
Applications of Satisfiability Testing – SAT 2020, L. Pulina and M. Seidl,
Eds.
Cham: Springer International Publishing, 2020, pp. 46–61.
[6] S. H¨olldobler, N. Manthey, and A. Saptawijaya, “Improving resource-
unaware SAT solvers,” ser. LNCS, C. G. Ferm¨uller and A. Voronkov,
Eds., vol. 6397.
Heidelberg: Springer, 2010, pp. 519–534.
[7] M. W. Moskewicz, C. F. Madigan, Y. Zhao, L. Zhang, and S. Malik,
“Chaff: Engineering an efficient SAT solver,” in DAC 2001.
New York:
ACM, 2001, pp. 530–535.
[8] A. Nadel and V. Ryvchin, “Chronological backtracking,” in Theory and
Applications of Satisfiability Testing – SAT 2018, O. Beyersdorff and
C. M. Wintersteiger, Eds. Cham: Springer International Publishing, 2018,
pp. 111–121.
[9] P. van der Tak, A. Ramos, and M. Heule, “Reusing the assignment trail
in cdcl solvers,” JSAT, vol. 7, no. 4, pp. 133–138, 2011.
手机扫一扫
移动阅读更方便
你可能感兴趣的文章