Evaluating CDCL Variable Scoring Schemes
KeywordsDecision Variable Priority Queue Argumentation Framework Decision Heuristic Current Partial Assignment |
|
Abstract
The VSIDS (variable state independent decaying sum) decision heuristic invented in the context of the CDCL (conflict-driven clause learning) SAT solver Chaff, is considered crucial for achieving high efficiency of modern SAT solvers on application benchmarks. This paper proposes ACIDS (average conflict-index decision score), a variant of VSIDS.译文:本文提出了平均冲突指数决策得分(ACIDS, conflict-index decision score),这是VSIDS的一个变种。 The ACIDS heuristics is compared to the original implementation of VSIDS, its popular modern implementation EVSIDS (exponential VSIDS), the VMTF (variable move-to-front) scheme, and other related decision heuristics. They all share the important principle to select those variables as decisions, which recently participated in conflicts. 译文:他们都有一个重要的原则,选择这些变量作为决定,最近参与了冲突。 The main goal of the paper is to provide an empirical evaluation to serve as a starting point for trying to understand the reason for the efficiency of these decision heuristics. 译文:本文的主要目标是提供一个实证评价,作为一个起点,试图了解这些决策启发式效率的原因。 In our experiments, it turns out that EVSIDS, VMTF, ACIDS behave very similarly, if implemented carefully. |
|
1 Introduction
The application track of SAT competitions [1,2] is dominated by conflict-driven clause learning (CDCL) [3] solvers. Beside learning [4], the most important feature of these solvers is the variable state independent decaying sum (VSIDS) decision heuristic [5], actually in its modern variant exponential VSIDS (EVSIDS) [6], as first implemented in the MiniSAT solver [7]. The EVSIDS heuristic allows fast selection of decision variables and adds focus to the search, but also is able to pick up long-term trends due to a “smoothing” component, as argued in [6]. 译文:EVSIDS启发式允许快速选择决策变量,并增加搜索的重点,但由于“平滑”组件,也能够捕捉长期趋势,如[6]中所述。 | |
On the practical side, there have been various attempts to improve on the EVSIDS scheme. These include the variable move-to-front (VMTF) strategy of the Siege SAT solver [8], the BerkMin strategy [9], which is focusing on recently learned clauses, and the clause move-to-front (CMTF) strategies of HaifaSAT [10] and PrecoSAT [11]. In this paper, we suggest another new decision heuristic, called average conflict-index decision score (ACIDS). Our main contribution, however, is to show that EVSIDS, VMTF, and ACIDS empirically perform equally well, if implemented carefully. Beside allowing simpler implementation, these empirical results further shed light on what EVSIDS actually means. They open up new directions for treating practically successful decision heuristics formally, for instance in the context of proof complexity. | |
Regarding alternative decision schemes, we refer to the cube-and-conquer approach [12]. It combines CDCL with classical look-ahead [13] solving, and is particularly effective for solving hard combinatorial benchmarks (in parallel). The rest of the paper will focus on decision heuristics for CDCL solving, related to VSIDS. This paper also complements recent developments which try to relate and explain VSIDS with community structure [14–16]. | |
2 Decision Heuristics
Following the same decision order in every branch of a DPLL [17] search tree amounts to a simple static decision heuristic, as in ordered binary decision diagrams (BDDs) [18], which even with dynamic variable reordering are restricted to one variable order along each path from root to a leaf. The freedom of being able to pick an arbitrary variable in every node “dynamically” is generally considered an advantage of SAT over BDDs, e.g., in the context of bounded model checking [19]. 译文:能够在每个节点中“动态”选择任意变量的自由通常被认为是SAT相对于bdd的优势,例如,在有界模型检查[19]的上下文中。 These dynamic decision heuristics originally only took the current partial assignment in a search node into account when selecting the next decision variable. 译文:这些动态决策启发式算法在选择下一个决策变量时,最初只考虑搜索节点中当前的部分赋值。 They did not consider how the search progressed to reach this point in the search space. We call this set of restricted dynamic heuristics first-order dynamic decision heuristics. 译文:他们没有考虑到搜索是如何进行到现在的。我们称这组受限动态启发式为一阶动态决策启发式。 A typical example is the dynamic literal individual sum heuristic (DLIS). It selects as next decision literal one with the largest DLIS score, which is computed as the number of still unsatisfied clauses in which a literal occurs. A well-known and often applied variant of DLIS is the JeroslowWang heuristic [20], which for instance is discussed in [21], together with other related early decision heuristics, including Bohm’s, MOM’s, etc. 译文:一个典型的例子是动态文字个体和启发式(DLIS)。它选择具有最大DLIS分数的下一个决策文字作为下一个决策文字,该分数计算为出现一个文字的仍然未满足的子句的数量。DLIS的一个著名且经常应用的变体是JeroslowWang启发式[20],例如在[21]中讨论了它,以及其他相关的早期决策启发式,包括Bohm’s、MOM’s等。 |
|
With the introduction of learning in Grasp [4], these first-order heuristics implicitly became second-order dynamic heuristics, since learned clauses were used in computing scores too, and they do capture the history of the search progress. 译文:随着在Grasp[4]中引入学习,这些一阶启发式隐式地变成了二阶动态启发式,因为已学习的子句也用于计算分数,而且它们确实捕获了搜索进程的历史。 An early evaluation [21] of decision heuristics, originally designed as first-order heuristics but then applied as second-order heuristics together with clause learning, showed that variants of DLIS actually perform quite well. 译文:对决策启发式的早期评估[21](最初设计为一阶启发式,但后来作为二阶启发式与子句学习一起应用)表明,各种DLIS实际上表现得相当好。 |
|
In principle, one has to distinguish between selecting a decision variable and selecting a decision phase, i.e., the Boolean constant to which the selected variable is assigned. 译文:原则上,我们必须区分选择一个决策变量和选择一个决策阶段,即选择变量所赋值的布尔常数。 However, almost all modern CDCL solvers implement phase saving [22], which always reassigns the decision variable to the last phase it was previously assigned. 译文:然而,几乎所有现代CDCL求解器都实现了阶段保存[22],它总是将决策变量重新分配到它之前分配的最后一个阶段。 Modulo initialization, typically based on (one-sided) Jeroslow-Wang’s heuristic [20], phase saving turns the decision heuristic into a variable selection heuristic. Accordingly, we focus on variable selection, which in turn will be based on selecting a variable with the highest decision score. 译文:模初始化,通常基于(单方面的)jerslow - wang的启发式[20],阶段节省将决策启发式转变为变量选择启发式。因此,我们将重点放在变量选择上,而变量选择又将基于选择决策得分最高的变量. |
|
Using learned clauses for computing scores is actually quite expensive, since it requires either to traverse the whole clause data base, which is growing fast due to adding learned clauses, or requires expensive book keeping of scores during propagation of assigned variables. The latter became expensive after it was possible to reduce propagation effort through lazy clause watching techniques [5,23], particularly since learned clauses tend to be large [24]. Thus, one of the most important observations in the seminal Chaff paper [5] was that it is possible and even beneficial to replace DLIS by an even more aggressive dynamic scoring scheme, the VSIDS (variable state independent decaying sum) scheme, which does not require to traverse the clause data base at decision variable selection, nor to use expensive full occurrence list traversal for accurate score updates. | |
VSIDS. |
|
The variable state independent decaying sum (VSIDS) of Chaff [5] maintains a variable score for each variable. The basic idea is that variables with large score are preferred decisions. The original VSIDS implementation in Chaff worked as follows. Variables are stored in an array used to search for a decision variable. After learning a clause, the score of its variables is incremented. Further, every 256th conflict, all variable scores are divided by 2, and the array is sorted w.r.t. decreasing score. This process is also called variable rescoring. Moreover, note that the order of decision variables is not changed between rescores. | |
The process of updating scores of variables is also referred to as variable bumping [7]. Note, however, that in modern solvers and also in our experiments we not only bump variables of the learned clause, but all seen variables occurring in antecedents used to derive the learned clause through a regular input resolution chain [25] from existing clauses. | |
The decide procedure selects the next decision variable, by searching for the first unassigned variable in the ordered array, starting at the lower end, e.g., the variable with the highest score during sorting. An essential optimization in Chaff is to cache the position of the last found decision variable with maximum score in the ordered array. This position is used as starting point for the next search. If a variable in the array with a position smaller than the cached maximum score position becomes unassigned then the maximum score position is updated to that position. During rescoring, similar updates might be necessary. | |
The first part of VSIDS, e.g., only incrementing scores, constitutes an approximation of dynamic DLIS. It counts occurrences of variables in clauses, ignoring whether a clause is satisfied or not, or even removed during learned clause deletions [3] (called clause database reduction in the following). This restricted version of VSIDS without smoothing is denoted INC (or inc in the experiments). | |
As an alternative to using frequent rescoring, we propose that the smoothing part of VSIDS can also be approximated by adding the conflict-index to the score instead of just incrementing it. The conflict-index is the total number of conflicts that occurred so far. We call this scheme SUM (or sum in our experiments). | |
At each conflict, a new clause is learned, except for instance if on-the-fly subsumption [26,27] is employed. This might trigger additional conflicts, through strengthening existing clauses, without learning a new clause. Our implementation does not bump variables in this case, nor does it increase the conflict-index. | |
EVSIDS. |
|
If variables are rescored at each conflict, a variant of VSIDS, called normalized VSIDS (NVSIDS) [6], is an exponential moving average on how often a variable occurred in antecedents of learned clauses [6]. For NVSIDS, the score s of a bumped variable is computed as s = f · s + (1 − f), using a damping
factor f with 0 <f< 1. The score of other variables, which are not bumped, |
|
At each conflict, NVSIDS requires to update the score of all variables. A more efficient implementation, which we called exponential VSIDS (EVSIDS) in [6], was originally proposed by the authors of MiniSAT [7]. It updates only scores of (the much smaller set) of bumped variables by adding an exponential increasing score increment gi , with i denoting the conflict-index and g = 1/f, thus g > 1. As the relative order of variables for NVSIDS and EVSIDS is identical [6], the notion of NVSIDS is only of theoretical interest (for the purpose of this paper). | |
Typical values for g are in the range of 1.01 to 1.2. Small values have been shown to be useful for hard satisfiable instances (like cryptographic instances). Large values are useful with very frequent restarts, particularly in combination with the reuse-trail technique [28]. In Glucose 2.3, even without reusing the trail, it was thus suggested to slowly decrease g over time from a large value to a small one.1 In the (new) version of Lingeling used in our experiments, g is kept at 1.2 | |
Instead of rescoring variables explicitly, MiniSAT uses a priority queue, which is implemented as a binary heap. This data structure allows fast insertion and removal of variables and also updating scores, all in logarithmic time. If this priority queue was updated eagerly to contain exactly all the unassigned variables, then searching for an unassigned variable with maximal score would even be possible in constant time. However, the number of propagated variables per decision can be quite large (on average, 323 propagations per decision for 275 benchmarks in the evsids column in Tab. 2). Removing them eagerly is too costly. | |
A lazy alternative, as first implemented in MiniSAT [7] and now being the default implementation of modern CDCL solvers, is to remove variables with maximum score from the priority queue until the removed variable turns out to be unassigned. It is then used as the next decision variable. Note that, during backtracking, this lazy scheme still requires to insert variables back into the priority queue, as they are unassigned, in order to make sure that the priority queue contains all unassigned variables (but assigned ones are not eagerly removed). | |
While the original implementation of VSIDS in Chaff [5] can be considered to be lazy too, variable selection is still imprecise, since rescoring is delayed. An attempt to provide a more efficient implementation of rescoring with precise variable selection was implemented in the JeruSAT solver [29]. It still uses counters, i.e., inaccurate integer scores, but instead of using one sorted array for all variables, partitions them into doubly linked lists of variables with the same score. This allows faster insertion, removal, update, and rescoring. | |
Another invention in MiniSAT, particularly important for EVSIDS, is to use a precise floating-point representation instead of integers as in previous solvers. Even though we do not have separate experimental evidence in this paper, our experience suggests that using integer scores dramatically deteriorates performance compared to using floating-point scores. Even fixed-point scores (as in PrecoSAT [11]) need additional techniques like clause based decision heuristics in order to be competitive with floating-point based EVSIDS. | |
Every 5000th conflict, f is increased by 0.01, starting at 0.8 until 0.95 is reached | |
However, gi usually grows very fast: Note that 1.014459, 1.2244 > 264, and, more severely, 1.0171333, 1.23894 > 1.797·10308 (≈ maximum value in 64 bit IEEE double floating-point representation). Thus, even for EVSIDS with floatingpoints, the variable scores and the score increment have to be rescored occasionally, as in the VSIDS scheme. This also becomes necessary if the score of a bumped variable would overflow during an update. We will report how often this occurs and how much time is spent on rescoring in our experiments. | |
VMTF. | |
Variable selection heuristics can be seen as online sorting algorithms of variable scores. This view suggests to use online algorithms with efficient amortized complexity, such as move-to-front (MTF) [30]. A similar motivation was given in the master thesis of Lawrence Ryan [8], which precedes MiniSAT [7] and introduced the Siege SAT solver as well as the variable move-to-front (VMTF, or vmtf in the experiments) strategy. As in Chaff, the restriction in Siege’s VMTF bumping scheme was to only move variables in the learned clause. Actually, only a small subset of those variables, e.g., of size 8, was selected, according to [8]. | |
The restriction in Siege to move only a small subset of variables might have been partially motivated by the cost of moving many. It is not uncommon that tens of thousands variables occur in antecedents of a learned clause, which also are rather long for some instances. In our experiments in Sect. 4, the default decision heuristic (evsids in Tab. 2) bumped on average 276 literals per learned clause of average length 105 (on 275 considered instances). Unfortunately, details on how even this restricted version of VMTF is implemented in Siege were not provided. The source code is not available either. We give details for a fast implementation of unrestricted VMTF in Sect. 3. | |
ACIDS. |
|
As further extension to the proposed SUM heuristic we want to introduce the average conflict-index decision score (ACIDS, or acids in our experiments). While SUM realizes a certain amount of smoothing (compared to INC) by giving a larger weight to later conflicts, this effect is rather small when compared to the exponential kind of smoothing that is applied in VSIDS and EVSIDS. However, as smoothing is conjectured to be an important part for variable score heuristics [6], the latter kind of smoothing might be preferable. We realize this as follows. In the ACIDS scheme, in the same way as for INC, SUM, VSIDS, and EVSIDS, we keep a score for each variable. Whenever a variable is bumped, its score is updated to be s = (s+i)/2, with i being the conflict-index. Compared to SUM, much stronger smoothing is realized by ACIDS. In addition to giving a larger weight to later conflicts, the influence of earlier conflicts decreases exponentially in the number of times the variable is bumped. | |
To compare the influence of the current conflict with that of earlier ones, we can represent the score of the variable by s = sc+sp, with sc and sp representing the contribution of the current conflict and the previous conflicts, respectively. As before, we define i to be the current conflict-index. Further, Ip is the set of indices of all previous conflicts the variable was involved in. For SUM, sc = i and sp = ΣIp ip, with ip being the elements of Ip. By definition, this will lead to sp > sc in most cases, particularly after a certain number of conflicts occurred. | |
Table 1. Summary of considered variable scoring schemes, where s and s denote current and updated variable scores, i the conflict-index, and f a damping factor with 0 <f< 1,="" used="" in="" our="" reformulation="" nvsids="" of="" vsids="" as="" exponential="" moving="" average="" [6].="" for="" evsids,="" we="" use="" the="" inverse="" g="1/f" f="" (thus=""> 1). For the VSIDS version implemented in Chaff, we set hm i = 0.5 if m divides i, and hm i = 1 otherwise Similarly for INC, sc = 1 and sp = |Ip|, which already implies sp > sc as soon as a variable is bumped twice. However, for the ACIDS heuristic, we obviously have sp < sc at every point in the search. |
|
Note that, in contrast to VSIDS and NVSIDS, scores of variables that are not bumped do not change for ACIDS. This not only allows to keep track of accurate scores in each step, but also avoids (delayed) variable rescoring. Additionally, compared to EVSIDS, the scores of variables grow much slower when using the ACIDS heuristic. In particular, the score of a variable in ACIDS is bounded by the conflict-index i, instead of being exponential in the number of conflicts, as it was the case for EVSIDS. Thus, also rescoring of variables to prevent overflow does not occur in practice. Considering overall performance, our experiments in Sect. 4 show that ACIDS works as well as EVSIDS and VMTF. | |
Clause Based Decision Heuristics |
|
There also is related work on using recently learned clauses in variable selection, such as the BerkMin heuristic [9], or clause-move-to-front (CMTF) strategies [10,11]. In our experience, they are inferior to variable scoring schemes as considered in this paper, and we leave it to future work for a more detailed comparison. The same applies to one-sided schemes which select literals instead of variables (without phase saving). | |
5 Conclusion
In this paper, we evaluated several important CDCL decision schemes, including VSIDS [5] and the related EVSIDS [6] heuristic, which are considered to be one of the major reasons for good performance of modern SAT solvers on application benchmarks. 译文:在本文中,我们评估了几个重要的CDCL决策方案,包括VSIDS[5]和相关的EVSIDS[6]启发式,这被认为是现代SAT求解器在应用基准上表现良好的主要原因之一. While some reasons for the efficiency of VSIDS have been conjectured before [6], there is still a lot of ongoing research on finding good explanations for its performance, particularly related to problem structure [14–16]. 译文:虽然在[6]之前就已经推测了VSIDS效率的一些原因,但仍有很多正在进行的研究,以寻找对其性能的良好解释,特别是与问题结构相关的[14-16]。 Understanding VSIDS and related decision heuristics in a better way would help us to further improve performance of SAT solvers from a practical point of view, as well as open up possibilities for formal analysis in a theoretical sense. 译文:更好地理解VSIDS和相关的决策启发式,将有助于我们从实践的角度进一步提高SAT求解器的性能,同时也为理论意义上的形式分析开辟可能性。 |
|
To take a major step into that direction, we gave a detailed evaluation, comparing VSIDS and EVSIDS to several other heuristics, including static decision heuristics, a non-smoothing version of VSIDS and approximations of smoothing versions. 译文:为了朝着这个方向迈出重要的一步,我们给出了详细的评估,将vsid和evsid与其他几种启发式方法进行了比较,包括静态决策启发式、vsid的非平滑版本和平滑版本的近似。 We also proposed ACIDS, a new decision heuristic with similar properties as VSIDS, and revisited the VMTF scheme [8], which is easy to implement and also offers an alternative perspective on the meaning of the decision order of variables. We further provided a formalization of the score update as a function for each heuristic to capture its effect in a clear way. 译文:我们还提出了ACIDS,这是一种具有类似vsid属性的新的决策启发式算法,并重新访问了VMTF方案[8],它易于实现,并且还提供了一个关于变量的决策顺序含义的替代视角。我们进一步将分数更新形式化,将其作为每个启发式的函数,以清晰地捕捉其效果。 |
|
In our experiments, it turned out that EVSIDS, VMTF, and ACIDS perform very similarly. Since efficient implementation is crucial and non-trivial for all those heuristics, we pointed out differences in underlying data structures and discussed important aspects of implementation in detail. We further provided detailed results, allowing us to analyze the effect variations in heuristics and implementations cause on the time spent in the individual steps of a search. 译文:在我们的实验中,evsid、VMTF和ACIDS的表现非常相似。由于有效的实现对于所有这些启发式是至关重要的,我们指出了底层数据结构的差异,并详细讨论了实现的重要方面。我们进一步提供了详细的结果,允许我们分析启发式和实现的变化对搜索的各个步骤花费的时间的影响。 | |
In addition, our results also shed new light on the performance of decision heuristics from an algorithmic point of view, as well as on many beliefs about decision heuristics that have been held previously. For instance, EVSIDS, VMTF, and ACIDS have in common that they put a very strong focus on variables that participated in the most recent conflicts. 译文:此外,我们的结果还从算法的角度阐明了决策启发式的性能,以及许多以前持有的关于决策启发式的信念。例如,evsid、VMTF和ACIDS有一个共同点,它们都非常关注参与最近冲突的变量. This is in contrast to heuristics, such as INC and SUM, where the occurrence in earlier conflicts also contributes significantly to the score of a decision variable throughout the whole progress of the search. While VSIDS, EVSIDS, and ACIDS implement explicit smoothing schemes to realize this kind of focus, the good performance of VMTF in our experiments shows that this is not necessarily required when directly using a more aggressive bumping strategy for recent conflict variables. 译文:这与启发式算法(如INC和SUM)形成了对比,在这些算法中,早期冲突的发生也会显著地影响整个搜索过程中决策变量的得分。虽然VSIDS、EVSIDS和ACIDS实现了显式平滑方案来实现这种焦点,但VMTF在我们的实验中良好的性能表明,当直接对最近的冲突变量使用更积极的碰撞策略时,平滑方案是不必要的。 |
|
For future work, it will be interesting to analyze the contribution of the individual components in detail. Having provided a formal way of describing general scoring schemes and given several implementations of flexible data structures in a simpler way, the next steps could be motivated by theory as well as practice. 译文:对于未来的工作,详细分析单个组件的贡献将是很有趣的。提供了描述一般评分方案的正式方法,并以更简单的方式给出了灵活数据结构的几种实现,接下来的步骤可以由理论和实践推动。 For instance, combining aggressive bumping strategies in combination with particularly adapted smoothing schemes could yield even more efficient decision heuristics. Similarly, more refined functions for updating the variable scores could be beneficial as well. 译文:例如,将激进的碰撞策略与特别适应的平滑方案相结合,可以产生更有效的决策启发式。类似地,使用更精细的函数来更新变量分数也会有帮助。On the other hand, simple but yet efficient heuristics, such as VMTF, might allow us to analyze CDCL more formally, e.g., in the context of proof complexity.译文:另一方面,简单但有效的启发式方法,如VMTF,可能允许我们更正式地分析CDCL,例如,在证明复杂性的上下文中。 |
|
References
1. Balint, A., Belov, A., Heule, M.J.H., J¨arvisalo, M. (eds.): Proceedings of SAT Competition 2013. Volume B-2013-1 of Department of Computer Science Series of Publications B. University of Helsinki (2013) 2. Belov, A., Heule, M.J.H., J¨arvisalo, M. (eds.): Proceedings of SAT Competition 2014. Volume B-2014-2 of Department of Computer Science Series of Publications B. University of Helsinki (2014) 3. Marques-Silva, J.P., Lynce, I., Malik, S.: Conflict-driven clause learning SAT solvers. [41], 131–153 4. Marques-Silva, J.P., Sakallah, K.A.: GRASP: A search algorithm for propositional satisfiability. IEEE Trans. Computers 48(5), 506–521 (1999) 5. Moskewicz, M.W., Madigan, C.F., Zhao, Y., Zhang, L., Malik, S.: Chaff: engineering an efficient SAT solver. In: Proceedings of the 38th Design Automation Conference, DAC 2001, pp. 530–535. ACM, Las Vegas, June 18–22, 2001 6. Biere, A.: Adaptive restart strategies for conflict driven SAT solvers. In: Kleine B¨uning, H., Zhao, X. (eds.) SAT 2008. LNCS, vol. 4996, pp. 28–33. Springer, Heidelberg (2008) 7. E´en, N., S¨orensson, N.: An extensible SAT-solver. In: Giunchiglia, E., Tacchella, A. (eds.) SAT 2003. LNCS, vol. 2919, pp. 502–518. Springer, Heidelberg (2004) 8. Ryan, L.: Efficient algorithms for clause-learning SAT solvers. Master’s thesis, Simon Fraser University (2004) 9. Goldberg, E.I., Novikov, Y.: Berkmin: a fast and robust sat-solver. In: 2002 Design, Automation and Test in Europe Conference and Exposition (DATE 2002), pp. 142–149. IEEE Computer Society, Paris, March 4–8, 2002 10. Gershman, R., Strichman, O.: Haifasat: A new robust SAT solver. In: Ur, S., Bin, E., Wolfsthal, Y. (eds.) Hardware and Software Verification and Testing. LNCS, vol. 3875, pp. 76–89. Springer, Heidelberg (2006) 11. Biere, A.: P{re, i}coSAT@SC 2009. In: SAT 2009 Competitive Event Booklet, pp. 42–43 (2009) 12. Heule, M.J.H., Kullmann, O., Wieringa, S., Biere, A.: Cube and conquer: guiding CDCL SAT solvers by lookaheads. In: Eder, K., Louren¸co, J., Shehory, O. (eds.) HVC 2011. LNCS, vol. 7261, pp. 50–65. Springer, Heidelberg (2012) 13. Heule, M., van Maaren, H.: Look-ahead based SAT solvers. [41], 155–184 14. Ans´otegui, C., Gir´aldez-Cru, J., Levy, J.: The community structure of SAT formulas. In: Cimatti, A., Sebastiani, R. (eds.) SAT 2012. LNCS, vol. 7317, pp. 410–423. Springer, Heidelberg (2012) 15. Newsham, Z., Ganesh, V., Fischmeister, S., Audemard, G., Simon, L.: Impact of community structure on SAT solver performance. In: Sinz, C., Egly, U. (eds.) SAT 2014. LNCS, vol. 8561, pp. 252–268. Springer, Heidelberg (2014) 16. Ans´otegui, C., Bonet, M.L., Gir´aldez-Cru, J., Levy, J.: The fractal dimension of SAT formulas. In: Demri, S., Kapur, D., Weidenbach, C. (eds.) IJCAR 2014. LNCS, vol. 8562, pp. 107–121. Springer, Heidelberg (2014) 17. Davis, M., Logemann, G., Loveland, D.W.: A machine program for theoremproving. Commun. ACM 5(7), 394–397 (1962)
18. Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Trans. Computers 35(8), 677–691 (1986) 19. Biere, A., Cimatti, A., Clarke, E., Zhu, Y.: Symbolic model checking without BDDs. In: Cleaveland, W.R. (ed.) TACAS 1999. LNCS, vol. 1579, p. 193. Springer, Heidelberg (1999) 20. Jeroslow, R.G., Wang, J.: Solving propositional satisfiability problems. Annals of Mathematics and Artificial Intelligence 1(1–4), 167–187 (1990) 21. Marques-Silva, J.: The impact of branching heuristics in propositional satisfiability algorithms. In: Barahona, P., Alferes, J.J. (eds.) EPIA 1999. LNCS (LNAI), vol. 1695, pp. 62–74. Springer, Heidelberg (1999) 22. Pipatsrisawat, K., Darwiche, A.: A lightweight component caching scheme for satisfiability solvers. In: Marques-Silva, J., Sakallah, K.A. (eds.) SAT 2007. LNCS, vol. 4501, pp. 294–299. Springer, Heidelberg (2007) 23. Zhang, H.: SATO: an efficient propositional prover. In: McCune, William (ed.) CADE 1997. LNCS, vol. 1249, pp. 272–275. Springer, Heidelberg (1997) 24. Biere, A.: PicoSAT essentials. JSAT 4(2–4), 75–97 (2008) 25. Beame, P., Kautz, H.A., Sabharwal, A.: Towards understanding and harnessing the potential of clause learning. J. Artif. Intell. Res. (JAIR) 22, 319–351 (2004) 26. Han, H., Somenzi, F.: On-the-fly clause improvement. In: Kullmann, O. (ed.) SAT 2009. LNCS, vol. 5584, pp. 209–222. Springer, Heidelberg (2009) 27. Hamadi, Y., Jabbour, S., Sais, L.: Learning for dynamic subsumption. In: 21st IEEE International Conference on Tools with Artificial Intelligence, Newark, New Jersey, USA, ICTAI 2009, pp. 328–335. IEEE Computer Society, November 2–4, 2009 28. van der Tak, P., Ramos, A., Heule, M.J.H.: Reusing the assignment trail in CDCL solvers. JSAT 7(4), 133–138 (2011) 29. Nadel, A.: Backtrack search algorithms for propositional logic satisfiability: Review and innovations. Master’s thesis, Hebrew University (2002) 30. Sleator, D.D., Tarjan, R.E.: Amortized efficiency of list update and paging rules. Commun. ACM 28(2), 202–208 (1985) 31. Biere, A.: Lingeling and friends entering the SAT challenge 2012. In: Balint, A., Belov, A., Diepold, D., Gerber, S., J¨arvisalo, M., Sinz, C. (eds.) Proceedings SAT Challenge 2012: Solver and Benchmark Descriptions. Volume B-2012-2 of Department of Computer Science Series of Publications B., University of Helsinki, pp. 33–34 (2012) 32. Biere, A.: Yet another local search solver and Lingeling and friends entering the SAT Competition 2014. [2], 39–40 33. Audemard, G., Simon, L.: Predicting learnt clauses quality in modern SAT solvers. In: Boutilier, C. (ed.) Proceedings of the 21st International Joint Conference on Artificial Intelligence, IJCAI 2009, Pasadena, California, USA, pp. 399–404, July 11–17, 2009 34. Audemard, G., Simon, L.: Glucose 2.3 in the SAT 2013 Competition. [1], 42–43 35. Oh, C.: MiniSat HACK 999ED, MiniSat HACK 1430ED and SWDiA5BY. [2], 46–47 36. J¨arvisalo, M., Heule, M.J.H., Biere, A.: Inprocessing rules. In: Gramlich, B., Miller, D., Sattler, U. (eds.) IJCAR 2012. LNCS, vol. 7364, pp. 355–370. Springer, Heidelberg (2012) 37. Audemard, G., Simon, L.: Refining restarts strategies for SAT and UNSAT. In: Milano, M. (ed.) CP 2012. LNCS, vol. 7514, pp. 118–126. Springer, Heidelberg (2012)
38. E´en, N., Biere, A.: Effective preprocessing in SAT through variable and clause elimination. In: Bacchus, F., Walsh, T. (eds.) SAT 2005. LNCS, vol. 3569, pp. 61–75. Springer, Heidelberg (2005) 39. Wallner, J.P.: Benchmark for complete and stable semantics for argumentation frameworks. [2], 84–85 40. Biere, A., Heule, M.J.H., J¨arvisalo, M., Manthey, N.: Equivalence checking of HWMCC 2012 circuits. [1], 104 41. Biere, A., Heule, M.J.H., van Maaren, H., Walsh, T. (eds.): Handbook of Satisfiability. Volume 185 of Frontiers in Artificial Intelligence and Applications. IOS Press (2009) |
|