Generalizations of watched literals for backtracking search
Allen Van Gelder
237 B.E., University of California, Santa Cruz, CA 95064
E-mail avg@cs.ucsc.edu.
October 3, 2001
Gelder A V . Generalizations of watched literals for backtracking search[J]. seventh int’l symposium on ai & mathematics ft, 2001.
Abstract
The technique of watching two literals per clause to determine when a clause becomes a unit clause was introduced recently in the Chaff satisfiability program. 译文:最近在Chaff可满足性程序中引入了观察每个子句的两个字面量以确定一个子句何时成为单位子句的技术。 That program does not perform either equivalent-literal detection or binary-clause detection. We describe a generalization of the technique that handles the tracking necessary to support equivalent-literal detection and binary-clause detection. 译文:该程序既不执行等价文本检测,也不执行二进制子句检测。我们将描述一种泛化的技术,该技术处理支持等价文本检测和二进制子句检测所需的跟踪。 Both generalizations are designed to preserve the important property of the original method that unbinding a variable is very efficient. 译文:这两种推广都是为了保留原始方法的重要性质,即解绑定变量是非常有效的。 We decribe a data-structure technique called "lazy deletion" that permits several operations to be performed in amortized constant time, where the more straightforward implementation might require linear time per operation. 译文:我们描述了一种名为“延迟删除”的数据结构技术。这允许多个操作在平摊常数时间内执行,而更直接的实现可能需要每个操作的线性时间。 The overall efficiency of generalized technique is analyzed. Preliminary implementation results are reported。译文:分析了广义技术的整体效率。报告了初步实施结果。 |
|
1 Introduction
A new technique for boolean constraint propagation was reported recently, as part of the satisfiability solver named Chaff2 [MMZ+01]. The previously favored technique was published by Dalal and Etherington [DE92], and involved maintaining an exact count of how many literals in each clause were not currently contradicted. The new technique, which may be called watching two literals, only keeps track of whether at least two literals in the clause are not currently contradicted. In the Chaff2 environment, this is enough information because it only processes unit clauses. 译文:这种新技术可以称为观察两个字面量,它只跟踪子句中至少两个字面量目前是否不矛盾。在Chaff2环境中,这是足够的信息,因为它只处理单元子句。
The main problem is that in the Chaff2 environment (essentially a DPLL environment [DLL62]) a variable v has three possible states: free, true, or false, whereas in the presence of equivalent-literal identification there are 2(n 1) additional states: equivalent-to u, where u is any other variable in the formula. |
|
A major point made by the authors of Chaff2 is that the bookkeeping techniques can make an order-of-magnitude difference in the program’s speed. In particular, they point out that watching two literals requires “no” work when a literal binding is retracted during backtracking. 译文:他们特别指出,当回溯过程中收回文字绑定时,观察两个文字需要“no”工作。 Another point they make is that the cache is used very efficiently, compared to earlier techniques. 译文:他们提出的另一个观点是,与早期技术相比,缓存的使用非常有效。 The generalizations we propose try to preserve these properties. For that reason, we would like to avoid straightforward methods such as replacing equivalent literals throughout the formula, or setting all literals in an equivalence class to true when one of them is set to true. 译文:出于这个原因,我们希望避免直接的方法,比如在整个公式中替换等价的字面值,或者当一个字面值被设为真时,将等价类中的所有字面值设为真。 |
|
First we review the basic method (filling in some details omitted from the Chaff2 paper), then we describe the We note that equivalent-literal identification has been found to be effective in earlier studies [Pre95, VGT96, Li00]. 译文:我们注意到,在早期的研究中发现等效文字识别是有效的。 In this note we do not study how to detect equivalent literals, but only how to utilize the information, once they are detected. 译文:在这篇文章中,我们不研究如何检测等价文字,而只研究如何利用信息,一旦他们被检测。 |
|
Nearly all complete satisfiability solvers are in the DPLL family (for Davis, Putnam, Loveland, and Logemann They search for a satisfying assignment by fixing variables one by one and backtracking when an assignment forces the formula to be false.译文:他们通过逐个固定变量,并在某个赋值迫使公式为假时回溯,来寻找一个令人满意的赋值。 The procedure is not very effective in its original form, but it has been enhanced with various techniques to reduce the search space. Techniques to choose the branch variable are a separate topic, not treated here. 译文:该方法在最初的形式中效果不太好,但通过各种技术对其进行了改进,以减少搜索空间。选择分支变量的技术是一个单独的主题,这里不讨论。 Reasoning techniques can be broadly classified as preorder and postorder. 译文:推理技术大致可分为预购和后置两种。 Preorder techniques are applied as the search goes forward, and include unit-clause propagation (also called boolean constraint propagation), binary-clause reasoning, equivalent-literal identification, and others [BS92, Pre95, VGT96, Li00].译文:随着搜索的进行,将应用预定技术,包括单元子句传播(也称为布尔约束传播)、二进制子句推理、等价文本标识等[BS92, Pre95, VGT96, Li00]。 |
|
Postorder techniques are applied when the search is about to backtrack, because a “conflict” has been discovered [SS96, Zha97, BS97, MMZ+01]. 译文:当搜索要回溯时,会应用Postorder技术,因为发现了“冲突” Postorder techniques are variously called non-chronological backtracking, conflictdirected back-jumping, and learning. 译文:Postorder技术被称为非时间回溯、冲突定向回溯和学习。 The “learning” label is based on the fact that new clauses can be added to the formula; we call these clauses postorder lemmas. 译文:“学习”标签是基于这样一个事实,即新的子句可以添加到公式中;我们称这些子句为后storder引理。 A postorder lemma consists of the negations of the literals that make up a conflict set. In none of these works have preorder and postorder techniques been combined (except for unit-clause propagation). 译文:后置引理由构成冲突集的字面值的否定组成。在这些作品中,没有一个作品结合了preorder和postorder技术(除了单元子句传播)。 A companion paper (also submitted to AMAI-02) addresses this issue. For this note we do not study how to derive postorder lemmas, but we assume they will be derived and might have hundreds or thousands of literals in one clause. 译文:另一篇论文(也提交给AMAI-02)解决了这个问题。为了说明这一点,我们不研究如何导出后置引理,但我们假设它们将被导出,并且可能在一个子句中有成百上千的字面量。 It is in such long clauses that watching only two literals pays major dividends. 译文:在如此长的从句中,只看两个字面意思就会得到很大的好处。 |
|
2 Notation and Basic Data Structures
3 The Two-Watched-Literal strategy
4 Three Watched Literals
5 Equivalent Literals and Watched Literals
6 Conclusion
The procedures described have been implemented using a two-literal watching policy and equivalent literal processing. 译文:所描述的过程是使用两个字面值观察策略和等价的字面值处理实现的。
The original formula is handled by older methods. 译文:原始公式由旧方法处理。 |
|
The implementation is grafted onto an existing program, 2clVER which is described in greater detail in a companion paper also submitted to AMAI-02. 译文:该实现被移植到一个现有的程序2clVER上,该程序在另一篇同样提交给AMAI-02的论文中有更详细的描述。 The situation in which watching only two literals pays greatest dividends is when very long clauses are present. Postorder lemmas tend to be long clauses. 译文:当出现非常长的子句时,只看两个字会得到最大的好处。后置引理往往是长子句。 |
|
The most important statement we can make at this time is that the method works correctly in hundreds of tests. 译文:此时我们可以做的最重要的声明是,该方法在数百次测试中都能正确工作。
The bottlenecks for the program are elsewhere: the memory use is too high due to keeping too many postorder lemmas, and the time is too great due to inefficiencies in binary clause processing. 译文:该程序的瓶颈在其他地方:由于保留了太多的后置语料,内存使用太高,而由于二进制子句处理效率低下,时间又太长。 |
|
One of the purposes of preparing this report is to assist other researchers to incorporate the literal-watching strategy in environments that perform equivalent-literal processing (e.g., [Li00]), hopefully starting from a better base that we did. 译文:准备这份报告的目的之一是帮助其他研究人员在执行等量文字处理的环境中结合文字观察策略(例如,[Li00]),希望从我们所做的更好的基础开始。 |
|