Armin Biere
Institute for Formal Models and Verification Johannes Kepler University Linz

作者Armin Biere是求解器业界大牛,CaDiCal全面透彻地汇集sat求解的技术发展方向,不但集采众家之长不断将最新的技术环节比较累积,而且创新改进后不断提出阶段性总结。

2018年的版本在求解UNSAT方面有优势,2019年保持了UNSAT方面的领先优势的同时追上来求解SAT样例的最先进水平。


1.对sat和unsat采用分开的决策队列(SEPARATE  DECISION  QUEUE)

The “default” configuration alternates stable and unstable phases, while the “unsat” configuration remains in the unstable search phase and the “sat” configuration vice versa only in the “stable” phase.

译文:“默认”配置将交替出现稳定和不稳定阶段:“unsat”配置将保留在不稳定搜索阶段;“sat”配置将只保留在“稳定”阶段。

    

The earlier versions of CADICAL already partially followed
the advice given by Chanseok Oh in [5] to interleave (what
we call) stable search phases focusing on satisfiable instances
with almost no restarts and (again in our terminology) unstable
search phases with the usual frequent but limited restarts
schedule. In our new version we use a reluctant doubling
scheme with base conflict interval 1024 for the stable phase.

    稳定的搜索阶段,主要关注满足的实例,几乎不需要重新启动;不稳定的搜索阶段,通常是频繁但有限的重新启动计划。

    译文:在我们的新版本中,我们使用了一种不情愿的倍增方案,在稳定阶段使用基础冲突间隔1024

              -------------------------------------------------------------------------------------------------------------------------------------------------------------------------

However, the results of [5] also suggest to use a smoother
increase of scores for the stable phase using a separate decision
queue. We have integrated this idea. It required to add the usual
exponential VSIDS scoring mechanism using a binary heap as
in M INI SAT [6]. Thus this new version relies on its previous
VMTF queue [7] only for the unstable search phases and on
the exponential VSIDS for the stable search phase.

译文:然而,[5]的结果也建议在稳定阶段使用单独的决策队列平稳地增加分数。

译文:我们已经整合了这个想法。

译文:它需要使用一个二进制堆添加通常的指数VSIDS评分机制,如MINISAT[6]。

因此,这个新版本依赖于以前的版本VMTF仅在不稳定搜索阶段对[7]进行排队,稳定搜索阶段对指数vsid进行排队

              --------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2.组合了SLS求解器YalSAT

We already had YALSAT hooked up to LINGELING , which was successfully used in TREENGELING in parallel solver threads.

译文:我们已经把YALSAT连接到LINGELING,它成功地用于TREENGELING中的并行求解线程。

However controlling the amount of time allocated to YALSAT is difficult. It also requires to copy all clauses.

译文:然而,控制分配给YALSAT的时间是很困难的。它还需要复制所有的子句。

                ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Therefore we added a simple local search component to CaDiCal.

因此,我们在CaDical之中添加了一个简单的本地搜索求解器组件.

In contrast to YALSAT and ProbSAT, we watch one literal in each clause instead of using counters. The
broken (unsatisfiable) clauses are kept on a stack and traversed completely during each step (flipping a literal).

译文:与YALSAT和ProbSAT不同,我们在每个子句中只看一个字面值,而不使用计数器。破碎的(不可满足的)子句保存在堆栈上,并在每个步骤中完全遍历(翻转文本)。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Local search is called from the rephase procedure [3], [4] which is scheduled in regular intervals.

译文:从定期调度的rephase过程[3]、[4]中调用局部搜索。

It can also be executed as preprocessing step for an arbitrary number of rounds, which in essence turns the solver into a local search solver (disabled by default).

译文:它还可以作为任意轮数的预处理步骤执行,这实际上将求解器转换为本地搜索求解器(默认情况下禁用)。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

As initial assignment for local search we use the same assignments that would be selected in the CDCL loop
for decision variables (actually the target phases are always preferred, even for local search during unstable phases).

译文:我们使用与决策变量在CDCL循环中选择的相同的赋值作为局部搜索的初始赋值。

译文:实际上,目标阶段总是首选的,即使对于不稳定阶段的局部搜索也是如此。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

The best assignment (falsifying the smallest number of clauses) determined during each local search round is exported back to the CDCL loop as saved phases.

译文:在每个本地搜索轮中确定的最佳分配(伪造最小数量的子句)作为保存的阶段导出到CDCL循环。

 

3.目标阶段的最佳相位 TARGET AND BEST PHASES——简称目标相位:相位保留技术在CDCL向SLS传递最佳初值时推广

Probably the most important new technique is the use of target phases, which can be seen as a generalization of phase saving [10].

译文:可能最重要的新技术是目标相位的使用,这可以看作是相位保留[10]的推广。

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    相位保留技术的解释 

The best assignment (falsifying the smallest number of clauses) determined during each local search round is exported back to the CDCL loop as saved phases.

译文:这个众所周知的技术保存最后分配给一个变量的值(其保存的阶段),并在选择一个变量作为决策时将其用作分配值。

注释1:

Unfortunately there are now two uses of the word “phase” here, one for stable and unstable search phases, as well as for the values assigned to
variables. We hope it is clear from the context which of the two interpretation is meant whenever we use “phase”.

译文:不幸的是,“phase”这个词现在有两种用法,一种表示稳定和不稳定的搜索阶段,另一种表示分配给变量的值。我们希望从上下文可以清楚地看出,

这两种解释中的哪一种是我们在使用“阶段”时的意思。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

In addition to these saved phases our new approach now also maintains an array of target and another array of best phases.

译文:除了这些保存的阶段,我们的新方法现在还维护一个目标数组和另一个最佳阶段数组

The idea is to maximize the size of the trail without conflicts.

译文:这样做的目的是在不产生冲突的情况下最大化trail的长度。

Thus during backtracking the prefix of the trail is determined which did not (yet) lead to a conflict previous propagations.

译文:因此,在回溯过程中,可以确定哪一个跟踪的前缀没有(尚未)导致先前传播的冲突。


The values of the literals on the prefix are then saved as new target phases if this prefix is larger than the previously saved one. In stable search phases these target phases are preferred
over saved phases [10] for decisions.

译文:如果前缀比先前保存的前缀大,则前缀上的文字值将作为新的目标阶段保存。在稳定搜索阶段,这些目标阶段比保存阶段[10]更适合用于决策

 -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

During rephasing [3], [4] saved phases are reset as before, except, that beside the new local search rephasing discussed above we have further a new best rephasing, which sets saved phases to the values of the largest previously reached trail without conflict and then resets these best phases.

译文:在重相中,[3],[4]保存的阶段像以前一样被重置,除了,除了上面讨论的新的本地搜索重相中,我们还有一个新的最佳重相中,它将保存的阶段设置为最大的先前到达的没有冲突的步道的值,然后重新设置这些最佳阶段。

By default best rephasing is only performed during stable search phases.   译文:默认情况下,最好的重新调整只在稳定的搜索阶段执行。

 

4.LUCKY PHASE 

Occasionally applications produce trivial formulas in the sense that they can be satisfied by for instance assigning
all variables to false.

译文:有时,应用程序会产生一些琐碎的公式,例如,可以通过将所有变量赋值为false来满足这些公式。

Some of them also made it into the competition and therefore we implemented in L INGELING [11] a “lucky phase” detector.

译文:他们中的一些变量也进入了竞争,因此我们实现了在L INGELING[11]一个“幸运相位”探测器

This has been ported to CADICAL and extended to detect horn clause benchmarks, which can be satisfied by assigning in forward or backward order all variables to the same constant (interleaved with propagation).

译文:这已被移植到CADICAL并扩展到检测horn子句基准,它可以通过将所有变量按向前或向后的顺序分配到相同的常量(与传播交叉)来满足。

For instance satisfiable multiplier miters [12] comparing correct and buggy multipliers can be satisfied by this new lucky phase procedure instantly if the inputs either appear consecutively at the beginning or at the end of the variable range.

译文:例如,比较正确的乘数和错误的乘数[12]可以满足这个新的幸运阶段如果输入在变量范围的开始或结束连续出现,则立即执行。

 

5.IMPROVEMENTS TO PREPROCESSING预处理的改进

Since (bounded) variable elimination [13] remains the most important pre- and inprocessing technique, we tried to improve its effectiveness even further.

译文:由于(有界)变量消除[13]仍然是最重要的预处理和预处理技术,我们试图进一步提高其有效性。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

First, if variable elimination completed, the bound on the number of allowed zero additional clauses (difference between non-tautological resolvents and
clauses with a candidate variable) is increased (exponentially from the default zero to 1,2,4,8,16) and all variables are again considered as candidates for elimination attempts.

译文:首先,如果完成了变量消除,则允许的零个附加子句(非重言式解决方案与带有候选变量的子句之间的差异)的数量界限将增加(从默认的0以指数形式增加到1、2、4、8、16),所有变量将再次被视为尝试消除的候选项。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

We further perform variable elimination by substitution [13] if we are able to extract AND or XOR gates.

译文:如果能够提取和或异或门,我们还可以通过替换[13]来进一步执行变量消除。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

We also added eager backward subsumption and strengthening after each successful variable elimination, in addition to our fast forward subsumption algorithm [3] which is continued to be applied
to redundant clauses too.

译文:除了我们的快速前向包容算法[3]继续应用于冗余子句之外,我们还在每个成功消去的变量之后增加了热切的后向包容和增强。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Last we added a resolution limit, to reduce the time spent in variable elimination for large but easy to solve formulas. In the same spirit we limit the number of subsumption checks during forward subsumption.

译文:最后,我们增加了一个分辨率限制,以减少时间花在消除变量大,但容易解决的公式。本着同样的精神,我们限制了前向包容期间的包容检查次数。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

As in previous versions the solver triggers failed literal probing (including hyper binary resolution and equivalent literal substitutions) independently from both subsumption (on redundant and irredundant clauses followed by vivification) and variable elimination (elimination rounds are interleaved with subsumption and optionally, but disabled by default, with blocked and covered clause elimination).

译文:在以前的版本中解决触发失败的文字探测(包括超级二进制分辨率和等价的文字替换)独立于两个包容(冗余和irredundant条款其次是苏醒)和变量消除(消除轮交叉与包容和可选,但默认情况下禁用,阻止和消灭条款)。

These preprocessors can also be called for multiple rounds initially.

译文:这些预处理程序最初也可以被多次调用。

Using a conflict limit this allows the solver to be used as a CNF preprocessor (the extension stack needed for solution reconstruction can be extracted as well).

译文:使用冲突限制,这允许将求解程序用作CNF预处理器(也可以提取用于解决方案重构的扩展堆栈)。

 

6.CHRONOLOGICAL BACKTRACKING  时序回溯

The winner MAPLELCMDISTCHRONOBT [14] of the
main track in the SAT Competition 2018 implemented a
combination of chronological backtracking with CDCL [15].
We have ported this idea to CADICAL and as in the original
work backtrack chronologically if backjumping would jump
over more than 100 levels, but otherwise do not limit its
application. We further combine it with the idea of reusing
the trail [16]. More details will appear in [17].

 

7.INCREMENTAL SOLVING AND MODEL BASED TESTING  增量求解和基于模型的测试

Finally we added a new approach [18] to incremental SAT solving which does not require to freeze variables (as in MINISAT and LINGELING ) in order to be combined with inprocessing.

译文:最后,我们在增量SAT求解中加入了一个新的方法[18],它不需要冻结变量(如MINISAT和LINGELING中的变量),以便与inprocessing相结合。

To implement such a combination correctly requires sophisticated API testing and accordingly we implemented a tightly integrated model based tester called MOBICAL following the principles reported in [19].

要正确地实现这样的组合需要复杂的API测试,因此我们根据[19]中报告的原则实现了一个紧密集成的基于模型的测试,称为M OBICAL。


 

参考文献

References:

[1] J. P. M. Silva, I. Lynce, and S. Malik, “Conflict-driven clause learning
SAT solvers,” in Handbook of Satisfiability, ser. Frontiers in Artificial
Intelligence and Applications. IOS Press, 2009, vol. 185, pp. 131–153.
[2] M. Järvisalo, M. Heule, and A. Biere, “Inprocessing rules,” in IJCAR,
ser. Lecture Notes in Computer Science, vol. 7364. Springer, 2012, pp.
355–370.
[3] A. Biere, “CaDiCaL, Lingeling, Plingeling, Treengeling, YalSAT Enter-
ing the SAT Competition 2017,” in Proc. of SAT Competition 2017 –
Solver and Benchmark Descriptions, ser. Dept. of Comp. Science Series
of Publications B, vol. B-2017-1. Univ. of Helsinki, 2017, pp. 14–15.
[4] ——, “CaDiCaL, Lingeling, Plingeling, Treengeling and YalSAT Enter-
ing the SAT Competition 2018,” in Proc. of SAT Competition 2018 –
Solver and Benchmark Descriptions, ser. Dept. of Comp. Science Series
of Publications B, vol. B-2018-1. Univ. of Helsinki, 2018, pp. 13–14.
[5] C. Oh, “Between SAT and UNSAT: the fundamental difference in CDCL
SAT,” in SAT, ser. Lecture Notes in Computer Science, vol. 9340.
Springer, 2015, pp. 307–323.
[6] N. Eén and N. Sörensson, “An extensible sat-solver,” in SAT, ser. Lecture
Notes in Computer Science, vol. 2919. Springer, 2003, pp. 502–518.
[7] A. Biere and A. Fröhlich, “Evaluating CDCL variable scoring schemes,”
in SAT, ser. Lecture Notes in Computer Science, vol. 9340. Springer,
2015, pp. 405–422.
[8] A. Biere, “Yet another local search solver and Lingeling and friends
entering the SAT Competition 2014,” in Proc. SAT Competition 2014,
Solver and Benchmark Descriptions, ser. Dept. of Comp. Science Series
of Publications B, vol. B-2014-2. Univ. of Helsinki, 2014, pp. 39–40.
[9] A. Balint and U. Schöning, “Choosing probability distributions for
stochastic local search and the role of make versus break,” in SAT, ser.
Lecture Notes in Comp. Science, vol. 7317. Springer, 2012, pp. 16–29.
[10] K. Pipatsrisawat and A. Darwiche, “A lightweight component caching
scheme for satisfiability solvers,” in SAT, ser. Lecture Notes in Computer
Science, vol. 4501. Springer, 2007, pp. 294–299.
[11] “ Lingeling and Friends Entering the SAT Race 2015,” FMV Reports
Series, Institute for Formal Models and Verification, Johannes Kepler
University, Altenbergerstr. 69, 4040 Linz, Austria, Tech. Rep., 2015.
[12] A. Biere, “Collection of Combinational Arithmetic Miters Submitted to
the SAT Competition 2016,” in Proc. of SAT Competition 2016 – Solver
and Benchmark Descriptions, ser. Dept. of Computer Science Series of
Publications B, vol. B-2016-1. Univ. of Helsinki, 2016, pp. 65–66.
[13] N. Eén and A. Biere, “Effective preprocessing in SAT through variable
and clause elimination,” in SAT, ser. Lecture Notes in Computer Science,
vol. 3569. Springer, 2005, pp. 61–75.
[14] A. Nadel and V. Ryvchin, “Maple LCM Dist ChronoBT: Featuring
chronological backtracking,” in Proc. of SAT Competition 2018 – Solver
and Benchmark Descriptions, ser. Dept.Dept. Computer Science Series
of Publications B, vol. B-2018-1. Univ. of Helsinki, 2018, p. 29.
[15] ——, “Chronological backtracking,” in SAT, ser. Lecture Notes in
Computer Science, vol. 10929. Springer, 2018, pp. 111–121.
[16] 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.
[17] S. Möhle and A. Biere, “Backing backtracking,” 2019, submitted.
[18] K. Fazekas, A. Biere, and C. Scholl, “Incremental inprocessing in SAT
solving,” 2019, submitted.
[19] C. Artho, A. Biere, and M. Seidl, “Model-based testing for verification
back-ends,” in TAP, ser. Lecture Notes in Computer Science, vol. 7942.
Springer, 2013, pp. 39–55.

posted on 2020-04-05 10:11  海阔凭鱼跃越  阅读(1000)  评论(0编辑  收藏  举报