1.
Cadical 求解器propagate.cpp传播函数代码注释: We are using the address of 'decision_reason' as pseudo reason for decisions to distinguish assignment decisions from other assignments. Before we added chronological backtracking all learned units were assigned at decision level zero ('Solver.level == 0') and we just used a zero pointer as reason. After allowing chronological backtracking units were also assigned at higher decision level (but with assignment level zero), and it was not possible anymore to just distinguish the case Both had a zero pointer as reason. Now only units have a zero reason and decisions need to use the pseudo reason 'decision_reason'.
——Cache Conscious Data Structures for Boolean Satisfiability Solvers
Finally, for long clauses we save the position of the last watch replacement in 'pos', which in turn reduces certain quadratic accumulated propagation costs (2013 JAIR article by Ian Gent) at the expense of four more bytes for each clause. |
|
2.
Cache Conscious Data Structures for Boolean Satisfiability Solvers
Chu, Geoffrey, Harwood, Aaron, and Stuckey, Peter J. ‘Cache Conscious Data Structures for Boolean Satisfiability Solvers’. 1 Jan. 2010 : 99 – 120.
3.
Ian P. Gent:
Optimal Implementation of Watched Literals and More General Techniques. J. Artif. Intell. Res. 48: 231-251 (2013)
4.
Martin Bromberger, Tobias Gehl, Lorenz Leutgeb, Christoph Weidenbach:
A Two-Watched Literal Scheme for First-Order Logic. PAAR@IJCAR 2022
标签:level,decision,Conscious,zero,reason,文献,二值,观察,Structures From: https://www.cnblogs.com/yuweng1689/p/17109490.html