CaDiCaL Modification – Watch Sat
Norbert Manthey
nmanthey@conp-solutions.com
Dresden, Germany
CaDiCaL Modification – Watch Sat | |
Abstract—The solver CADICAL is different from other partic- 译文:因此,这个求解器修改使CADICAL的行为再次接近其他求解器:当在单位传播期间观察一个满意的文字时,子句被移动到该文字的观察列表中。
I. UNIT PROPAGATION IMPROVEMENTS SAT solvers are used in many fields. Hence, some solvers 译文:算法组件之间的总体运行时分布仍然没有显著变化:单元传播仍然占用绝大多数的总体运行时. A. Watching Clauses in Propagation This modification alters an implementation detail of unit 译文:早期跳过处理子句的下一个主要改进是将字面值从子句移到观察列表数据结构中,称为阻塞字面值。 译文:如果满足了阻塞字面量,则已知相关子句也满足了。因此,不需要进一步处理子句。该技术有助于提高SAT求解器[6]的性能。 B. How to Handle Satisfied Clauses When a blocking literal is not satisfied, the clause has to be 译文:对于每个子句,必须检查所有字面量的真值,以防我们发现冲突子句或单元子句强制扩展当前的真值赋值。 One difference between CADICAL and MINISAT 2.2 based 译文:CADICAL实现了进一步的扩展,比如记住上次处理子句[4]时测试的子句中的文字。
a) Always Watching the Satisfied Literal: When a satisfied literal is detected in a clause during propagating a literal,the clause is removed from the current watch list. As a next step, solvers append the clauses to the watch list of the satisfied literal. Both operations are constant time, but require accessing the other watch list, which can lead to a cache miss [6] and TLB miss [3]. The watch list of the other literal can be higher in the search tree, so that the clause will be touched less frequent in the remainder of the search. Restart might reduce the saving, on the other hand solver today use partial restarts [9], chronological backtracking [8] as well as trail saving [5]. All these technique give this saving back partially. 译文:当在传播文字的过程中在子句中检测到满足条件的文字时,子句将从当前观察列表中移除。 译文:下一步,解算器将子句附加到所满足的字面量的观察列表中。这两个操作都是常量时间,但需要访问另一个观察列表,这可能会导致缓存错过[6]和TLB错过[3]。
b) Just Update the Blocking Literal: As an alternative,
译文:作为一种替代方法,CADICAL继续观察当前的字面量(它现在被伪造了),但是将阻塞字面量更新为满意的字面量。 虽然这打破了伪字面只被用于冲突子句或单位子句的假设,但我们仍然知道子句是满足的。 译文:因此,打破这一假设不会产生任何后果。积极的效果是,子句不必从当前观察列表中删除。 译文:但是,当搜索进行时,在回溯之后,可能需要再次处理相同的子句。 译文:如果满足的字面量仍然满足,则只需要处理阻塞字面量。 否则,回溯还删除了对阻塞字面量的赋值,因此需要重新处理整个子句。
c) Watching the Satisfied Literal in CADICAL: Prelimi- 译文:在仅仅更新子句的阻塞文字时,使用MERGESAT进行的初步测试会导致性能下降。 译文:因此,取消CADICAL的这种技术可能会提高性能。规划求解CADICAL-WATCH -SAT实现了这一修改。
译文:如果在传播过程中不处理满足条件的子句,可能会导致传播字面量的顺序不同,以及不同的冲突,从而导致求解器的不同启发式更新和许多不同的后续搜索步骤。译文:因此,性能差异不仅可以归因于计算资源利用率的减少或增加。
II. AVAILABILITY REFERENCES [1] A. Biere, M. Heule, H. van Maaren, and T. Walsh, Eds., Handbook of |
|
HKIS, HCAD, PAKIS andPAINLESS EXMAPLELCMDISTCHRONOBT inthe SC21Rodrigue Konan Tchinda
Department of Mathematics and Computer Science
University of Dschang
Dschang, Cameroon
rodriguekonanktr@gmail.com
Abstract—This document describes the sequential solvers I. INTRODUCTION The results of the latest SAT competition showed very
II. HKIS AND HCAD HKIS and HCAD are both “hacks” of KISSAT and CAD- • HCAD is submitted with two configurations: The default configuration of HCAD is submitted to the
III. PAINLESS EXMAPLELCMDISTCHRONOBT
译文:在连续SAT求解器中,不太可能找到在给定集合的所有基准上最有效的单一配置。
There are instances that can be easily solved by 译文:有些实例可以通过给定求解器的特定配置轻松解决,但不一定是最佳配置。
Hence, running multiple configurations 译文:因此,并行运行一个求解器的多个配置可能有助于加快求解时间。
The goal of PAKIS is to select a number of configurations in 译文:PAKIS的目标是选择一些配置,以便接近“最佳虚拟”的性能解算器KISSAT的配置。
To achieve this, we used a test set consisting of the new instances submitted to the SAT Race 2019 and selected among a large number of possible configurations those that had the best results for SAT, UNSAT 译文:为此,我们使用了一个包含提交给SAT的新实例的测试集在2019年的比赛中,从大量可能的配置中选择那些在SAT, UNSAT和SAT+UNSAT中有最好的结果。
Table I gives the configurations for the 24
译文:与许多并行的SAT求解器相比,PAKIS不允许任何信息共享。这有一些优点,例如求解器的决定论和DRAT证明的产生。
REFERENCES
[1] A. Biere, K. Fazekas, M. Fleury, and M. Heisinger, “CaDiCaL, Kissat,
Paracooba, Plingeling and Treengeling entering the SAT Competition
2020,” in Proc. of SAT Competition 2020 – Solver and Benchmark
Descriptions, ser. Department of Computer Science Report Series B,
T. Balyo, N. Froleyks, M. Heule, M. Iser, M. J
¨
arvisalo, and M. Suda,
Eds., vol. B-2020-1. University of Helsinki, 2020, pp. 51–53.
[2] A. Biere, “CaDiCaL at the SAT Race 2019,” in Proc. of SAT Race 20219
– Solver and Benchmark Descriptions, ser. Department of Computer
Science Report Series B, M. Heule, M. J
¨
arvisalo, and M. Suda, Eds.,
vol. B-2019-1. University of Helsinki, 2019, pp. 8–9.
[3] R. K. Tchinda and C. T. Djamegni, “Padc maplelcmdistchronobt, padc
maple lcm dist and psids maplelcmdistchronobt in the sr19,” SAT RACE
2019, p. 33.
[4] L. Le Frioux, S. Baarir, J. Sopena, and F. Kordon, “Painless: a framework
for parallel sat solving,” in International Conference on Theory and
Applications of Satisfifiability Testing. Springer, 2017, pp. 233–250.
[5] R. Konan Tchinda and C. Tayou Djamegni, “Exmaplelcmdistchronobt,
upglucose-3.0 padc and painless exmaplelcmdistchronobt in the sc20,” in
Proc. of SAT Competition 2020 – Solver and Benchmark Descriptions, ser.
Department of Computer Science Report Series B, T. Balyo, N. Froleyks,
M. Heule, M. Iser, M. J
¨
arvisalo, and M. Suda, Eds., vol. B-2020-1.
University of Helsinki, 2020, pp. 17–18.
[6] V. Ryvchin and A. Nadel, “Maple lcm dist chronobt: Featuring chrono
logical backtracking,” SAT COMPETITION 2018, p. 29, 2018.
[7] S. Kochemazov, O. Zaikin, V. Kondratiev, and A. Semenov,
“Maplelcmdistchronobt-dl, duplicate learnts heuristic-aided solvers at the
sat race 2019,” SAT RACE 2019, p. 24.
|
|
PADC MapleLCMDistChronoBT, PADC Maple LCM Dist and
PSIDS MapleLCMDistChronoBT in the SR19
Abstract—This document describes the solvers
PADC MapleLCMDistChronoBT, PADC Maple LCM Dist
and PSIDS MapleLCMDistChronoBT which integrate the
PADC (periodic aggressive learned clause database cleaning)
strategy and the PSIDS (Polarity State Independent Decaying
Sum) heuristic.
I. INTRODUCTION
The boolean satisfifiability problem (SAT) has seen tremen
dous progresses in its resolution these last years thanks to
the integration of several features within the so-called CDCL
(Conflflict-Driven Clause Learning) [1]–[4] SAT solvers which
made them capable of effectively solving several previously
intractable instances. These features include clause learning,
effificient unit propagation through watched literals, effec
tive learned clause database management, dynamic branching
heuristics, restarts etc. SAT solvers nowadays implement many
heuristics and are highly sensible to slight modififications in
their source codes. That is, a simple change in the source
code can result in a solver with completely different perfor
mances. A typical example is the great number of solvers
that participated in the last SAT competitions, which are the
result of very simple modififications of Minisat [5]/Glucose [6],
[7] and which showed important performances improvement.
The methods we use in this document follows the same
idea, i.e. improving performances with slight modififications.
The fifirst is the PADC (periodic aggressive learned clause
database cleaning) strategy [8] and the second is the PSIDS
(Polarity State Independent Decaying Sum) polarity heuristic.
They have been integrated into the winners of the last two
SAT competitions namely MapleLCMDistChronoBT [9] and
Maple LCM Dist [10] in order to participate in the 2019 SAT
Race. The PADC strategy showed good performances in the
2018 SAT competition when integrated within Glucose-3.01
and its current integration into the winners of the previous
SAT Competitions revealed signifificant improvements during
preliminary experiments conducted on the latest competi
tions’ benchmarks. We are impatient this year to see how
our integration of PADC into MapleLCMDistChronoBT and
Maple
LCM Dist will perform on the new benchmark set.
PSIDS (Polarity State Independent Decaying Sum) as far as it
is concerned is a polarity heuristic which closely follows the
principle of the VSIDS branching heuristic [11].
II. PADC
The PADC (periodic aggressive learned clause database
cleaning) strategy [8] is an aggressive learned clause database
cleaning strategy which periodically deletes a large amount
of clauses in the learned clause database. This technique
allows the solver to periodically perform a deep cleaning of the
learned clause database. Concretely, after every
K − 1
executions of the cleaning procedure (i.e. at the Kth execu
tion after the previous deep cleaning step), all the learned
clauses are removed, except those of very high quality —
such as clauses with LBD ≤ 2 — and those that are
involved in the construction of the implication graph. This
aggressive learned clause database reduction has some posi
tive impact on the solver’s performances such as increasing
diversifification, reducing memory consumption and speeding
up unit propagations. We integrated this technique within
MapleLCMDistChronoBT and Maple LCM Dist and called
the resulting solvers PADC MapleLCMDistChronoBT and
PADC Maple LCM Dist respectively. Note that these solvers
use a three-tiered learned clauses database where the learned
clauses are divided into the following three sets : CORE,
TIER2 and LOCAL. CORE and TIER2 store clauses with
LBD ≤ 6, the best of which being stored in CORE while
LOCAL stores the others. We introduced in them a parameter
called ClearType in order to control which learned clause
database to clear during deep cleaning steps.
ClearType can
take three values :
0, 1 or 2 indicating respectively to clean the
LOCAL learned clause database only, the LOCAL and TIER2
databases and all databases.
III. PSIDS HEURISTIC
Branching and polarity heuristics are known to be determi
nant for the performances of SAT solvers. Once the branching
heuristic has chosen the next variable to branch on, the polarity
heuristic comes into play to determine which polarity to set
for the latter.
译文:分支和极性启发式被认为是决定了SAT求解器的性能。一旦分支启发式选择了下一个要分支的变量,极性启发式就开始发挥作用,以确定为后者设置哪个极性。
The de facto standard branching and polarity
heuristics today are VSIDS (Variable State Independent Decaying
Sum) [11] and progress saving [12] (also known as
phase saving) respectively.
译文:如今,事实上的标准分支和极性启发式方法是vsid(可变状态独立衰减)Sum)分别为[11]和进度保存[12](也称阶段保存)。
Although there have been several
attempts to replace it, VSIDS still remains a widely used
branching heuristic in modern SAT solvers. It operates by
choosing for branching, the most active unassigned variable
in the solver.
译文:虽然已经有很多尝试来取代它,但vsid仍然是现代SAT求解中广泛使用的一种分支启发式算法。它通过选择解算器中最活跃的未赋值变量进行分支操作。
Progress saving as for it was introduced to
prevent repeated work in solvers since upon non chronological
backtracking there can be some redundant rediscovery of some
sub-problems’ solutions lost while unassigning variables.
译文:进度保存的引入是为了防止求解器的重复工作,因为在非时间回溯的情况下,取消变量赋值时可能会丢失一些子问题的解,从而导致一些重复的重新发现。
The
limitation with progress saving is that it takes into account
only the saved polarities of the assignment preceding the
backjumping. 译文:进度保存的局限性在于,它只考虑回跳之前被保存的分配极性。
This can still lead to the rediscovery of some
sub-problems’ solutions as some polarities may change after
setting the asserting literal. The polarity that is frequently used
might be a good choice at this level since it might more
likely be the one which make the sub-problem satisfified: this
is the intuition behind the PSIDS (Polarity State Independent
Decaying Sum) heuristic.
译文:这仍然可能导致重新发现一些子问题的解决方案,因为在设置断言文字之后,一些极性可能会改变。在这个层次上,经常使用的极性可能是一个很好的选择,因为它更有可能使子问题得到满足:这是PSIDS(极性状态独立)背后的直觉腐烂的总和)启发式。
The PSIDS heuristic is similar to the
VSIDS heuristic but is used for polarities instead of variables.
译文:PSIDS启发式类似于VSIDS启发式,但用于极性而不是变量。
Concretely, we keep for each variable in the solver two scores
for its positive and negative polarities respectively. Each time
a polarity — of a variable — is set in the solver, the activity of
the latter is increased, and when a decision is made using the
branching heuristic, then the most active polarity is chosen. As
with VSIDS, we decrease from time to time the activities of all
polarities (of all variables) in order to favor most recent ones.
译文:具体地说,我们在求解器中为每个变量分别保留其正极性和负极性的两个分数。每次在求解器中设置一个变量的极性时,后者的活动就会增加,而当使用分支启发式决策时,则会选择最活跃的极性。与vsid一样,我们不时地减少所有极性(所有变量)的活动,以支持最近的极性。
This heuristic unlike progress saving [12] takes into account
the agility of the polarity of a variable in a longer period.
译文:与进度保存[12]不同,这种启发式方法考虑了较长时间内变量极性的敏捷性。
IV. SAT RACE 2019 SPECIFICS
We submitted two confifigurations of
PADC MapleLCMDistChronoBT : the fifirst with parameter
K set to 10 and with ClearType set to 0, and the second
with K set to 5 and ClearType set to 0 as well. As far as
PADC Maple LCM Dist is concerned, we set its parameter
K to 10 and ClearType to 0. We also integrated the PSIDS
heuristic within MapleLCMDistChronoBT and submitted
the resulting solver PSIDS MapleLCMDistChronoBT to the
2019 SAT Race.
V. ACKNOWLEDGMENTS
Many thanks to the authors of MapleLCMDistChronoBT
[9] and Maple LCM Dist [10].
REFERENCES
[1] J. Marques-Silva and K. Sakallah, “Grasp-a new search algorithm for
satisfifiability. iccad,” 1996.
[2] H. Zhang, “Sato: An effificient prepositional prover,” in Automated
DeductionCADE-14. Springer, 1997, pp. 272–275.
[3] L. Zhang, C. F. Madigan, M. H. Moskewicz, and S. Malik, “Effificient
conflflict driven learning in a boolean satisfifiability solver,” in Proceedings
of the 2001 IEEE/ACM international conference on Computer-aided
design. IEEE Press, 2001, pp. 279–285.
[4] C. P. Gomes, B. Selman, H. Kautz et al., “Boosting combinatorial search
through randomization,” AAAI/IAAI, vol. 98, pp. 431–437, 1998.
[5] N. E
´
en and N. S
¨
orensson, “An extensible sat-solver,” in
International
conference on theory and applications of satisfifiability testing. Springer,
2003, pp. 502–518.
[6] G. Audemard and L. Simon, “Glucose in the sat 2014 competition,” SAT
COMPETITION 2014, p. 31, 2014.
[7] ——, “On the glucose sat solver,” International Journal on Artifificial
Intelligence Tools, vol. 27, no. 01, p. 1840001, 2018.
[8] R. K. Tchinda and C. T. Djamegni, “Scalope, penelope mdlc and
glucose-3.0 padc in sc18,” SAT COMPETITION 2018, p. 42, 2018.
[9] V. Ryvchin and A. Nadel, “Maple lcm dist chronobt: Featuring chrono
logical backtracking,” SAT COMPETITION 2018, p. 29, 2018.
[10] F. Xiao, M. Luo, C.-M. Li, F. Manya, and Z. L
¨
u, “Maplelrb lcm, maple
lcm, maple lcm dist, maplelrb lcmoccrestart and glucose-3.0+ width in
sat competition 2017,” Proc. of SAT Competition, pp. 22–23, 2017.
[11] M. W. Moskewicz, C. F. Madigan, Y. Zhao, L. Zhang, and S. Malik,
“Chaff: Engineering an effificient sat solver,” in Proceedings of the 38th
annual Design Automation Conference. ACM, 2001, pp. 530–535.
[12] K. Pipatsrisawat and A. Darwiche, “A lightweight component caching
scheme for satisfifiability solvers,” in International conference on theory
and applications of satisfifiability testing. Springer, 2007, pp. 294–299.
|
|