Clause vivification by unit propagation in CDCL SAT solvers

 

 

提出了一种子句复活方法,通过应用单元传播来消除冗余文字.


Abstract

 

Original and learnt clauses in Conflict-Driven Clause Learning (CDCL) SAT solvers often contain redundant literals. This may have a negative impact on solver performance, because redundant literals may deteriorate both the effectiveness of Boolean constraint propagation and the quality of subsequent learnt clauses.

To overcome this drawback, we propose a clause vivification approach that eliminates redundant literals by applying unit propagation.译文:为了克服这一缺点,我们提出了一种子句复活方法,通过应用单元传播来消除冗余文字.

The proposed clause vivification is activated before the SAT solver triggers some selected restarts, and only affects a subset of original and learnt clauses, which are considered to be more relevant according to metrics like the literal block distance (LBD).译文:在SAT求解器触发一些选定的重新启动之前,所提议的子句激活,只影响原始子句和已学习子句的一个子集,根据文字块距离(LBD)等度量,这些子句被认为更相关

Moreover, we conducted an empirical investigation with instances coming from the hard combinatorial and application categories of recent SAT competitions.译文:此外,我们以最近SAT竞赛的硬组合和应用类别的实例进行了实证调查。

The results show that a significant number of additional instances are solved when the proposed approach is incorporated into five of the best performing CDCL SAT solvers (Glucose, TC_Glucose, COMiniSatPS, MapleCOMSPS and MapleCOMSPS_LRB).译文:结果表明,当将所提出的方法合并到五个性能最好的CDCL SAT求解器(Glucose, TC_Glucose, COMiniSatPS, MapleCOMSPS和MapleCOMSPS_LRB)中,可以解决大量的额外实例。

More importantly, the empirical investigation includes an in-depth analysis of the effectiveness of clause vivification. 译文:更重要的是,在实证研究中对条款具体化的有效性进行了深入的分析。It is worth mentioning that one of the SAT solvers described here was ranked first in the main track of SAT Competition 2017 thanks to the incorporation of the proposed clause vivification. That solver was further improved in this paper and won the bronze medal in the main track of SAT Competition 2018.

   

Keywords

Satisfiability Conflict-driven clause learning Clause vivification Redundant literal
       

 

1. Introduction

 

The theory of NP-completeness shows that any NP problem can be encoded to SAT in polynomial time [1].

Because of the high expressive power of SAT and the progress made on SAT solving techniques, modern Conflict-Driven Clause Learning (CDCL) SAT solvers are nowadays routinely used as core solving engines in many real-world applications.

Their ability to solve challenging problems comes from the combination of different components: variable selection heuristics, unit clause propagation, clause learning, restarts, clause database management, data structures, pre- and inprocessing. 

   
 

In particular, formula simplification techniques applied during preprocessing have proven useful in enabling efficient SAT solving for real-world application domains (e.g. [2][3][4]).译文:特别是,在预处理过程中应用的公式简化技术已被证明在实现对真实应用领域(如[2]、[3]、[4])的高效SAT解决方面是有用的。

The most successful preprocessing techniques include variants of bounded variable elimination, addition or elimination of redundant clauses, detection of subsumed clauses and suitable combinations of them. They aim mostly at reducing the number of clauses, literals and variables in the input formula.

译文:最成功的预处理技术包括有界变量的变体消除、冗余子句的添加或消除、被包含子句的检测以及它们的适当组合。

 

预处理技术包括:

    • 有界变量的变体消除;
    • 冗余子句的添加或消除;
    • 被包含子句的检测;
    • 以及它们的适当组合。
  •  interleaving formula simplification techniques with CDCL search 

         在CDCL搜索框架下开展的动态交叉公式简化技巧

   
 

More recently, interleaving formula simplification techniques with CDCL search has provided significant performance improvements. Among such inprocessing techniques [5], we mention local and recursive clause minimization [6][7], which remove redundant literals from learnt clauses immediately after their creation; clause vivification in a concurrent context [8][9]; incremental inprocessing [10] and on-the-fly clause subsumption [11][12].

译文:在这些inprocessing技术中,我们注意到局部和递归子句最小化技术,该技术在学习子句创建后,立即删除冗余的文字;

   
   

 补充知识

1

在minisat2.2的说明文档中介绍改进之处时,解释了观察体系懒散机制在BCP中的运行方式。

Improved unit-propagation by Blocking Literals. 译文:通过阻塞字面值来改进单元传播。For each entry in the watcher lists, pair the pointer to a clause with some (arbitrary) literal from the clause. 当每次进入watcher列表时,将指针与子句的任意一些文字配对。The idea is that if the literal is currently true (i.e. the clause is satisfied) the watchers of the clause does not need to be altered.译文:如果文字当前是真实的(即子句被满足),子句的观察者不需要被改变。 This can thus be detected without touching the clause's memory at all.译文:因此,可以在不触及子句内存的情况下检测到这一点。 As often as can be done cheaply, the blocking literal for entries to the watcher list of a literal 'p' is set to the other literal watched in the corresponding clause.译文:在尽可能廉价的情况下,将文字‘p’的观察者列表条目的阻塞文字设置为在相应子句中监视的另一个文字。

   
posted on 2020-07-07 16:31  海阔凭鱼跃越  阅读(451)  评论(0编辑  收藏  举报