Norbert Manthey
nmanthey@conp-solutions.com
Dresden, Germany

Proceedings of SAT Competition 2022: Solver and Benchmark Descriptions, volume B-2022-1 of Department of Computer Science Series of Publications
B, University of Helsinki 2022.


 

I. UNIT PROPAGATION IMPROVEMENTS

 

A. Watching Clauses in Propagation

The two watched literals scheme has been implemented first in [7]. The next major improvement to skip processing clauses early was to move literals, so called blocking literals, from the clause into the watch list data structure.

双观察字面值方案在[7]中首先实现。尽早跳过处理子句的下一个主要改进是将字面量(所谓的阻塞字面量)从子句移动到观察列表数据结构中

B. How to Handle Satisfied Clauses

One difference between CADICAL and MINISAT 2.2 based solvers is the way how they treat these satisfied clauses.

Not processing a satisfied clause during propagation soon again can result in a different order of propagated literals, as well as different conflicts, and consequently in different heuristic updates and many different follow-up search steps of the solver.

在传播过程中没有很快处理一个满意的子句,可能会导致传播文字的顺序不同,以及不同的冲突,从而导致不同的启发式更新和求解器的许多不同的后续搜索步骤。

(1) MINISAT 2.2-based SAT solvers

In MINISAT 2.2, the blocking literal of a clause is typically the other watched literal.

When propagating a clause, first the truth value of the blocking literal is checked. In case the blocking literal is satisfied, the related clause is known to be satisfied. Therefore, the clause does not have to be processed further.

在传播子句时,首先检查阻塞字面值的真值。如果阻塞字面值被满足,则已知相关子句被满足。因此,该子句不需要进一步处理。

MIN-ISAT 2.2 based solvers watch the satisfied literal.

(2) CADICAL

CADICAL implements further extensions, like memorizing the literal in a clause that was tested when last processing the clause [4].

a) Always Watching the Satisfied Literal:

在传播字本时,在子句中检测到满意的文字时,该子句将从当前监视列表中删除。同时,将子句附加到满足的文字的观察列表中

这两个操作都是常量时间,但需要访问另一个监视列表 (这可能导致缓存丢失[6]和TLB丢失[3] )。

在搜索树中,其他文字的观察列表可以放在更高的位置,这样在搜索的剩余部分中,就不会频繁地接触到该子句。

b) Just Update the Blocking Literal: 

作为替代方案,CADICAL继续观察当前的字面量,它现在是falsified的,但更新阻塞字面量到满意的字面量.虽然这打破了伪字面量只监视冲突从句或单元从句的假设,但我们仍然知道该从句是满足的。因此,打破这个假设不会有什么后果。

积极的影响是,该条款不必从当前的观察名单中删除。这不会导致缓存丢失,也不会导致TLB丢失。但是,当搜索继续进行时,在回溯之后,可能需要再次处理相同的子句。如果满足的文字仍然满足,则只需要处理阻塞文字。否则,回溯也删除了阻塞字字面量的赋值,因此需要重新处理整个子句。

c) Watching the Satisfied Literal in CADICAL and KISSAT:

在用MERGESAT进行初步测试时,如果只是更新子句的阻塞文字,就会导致性能下降。求解器CADICAL-WATCH-SAT和KISSAT-WATCH-SAT实现了这一修改.

(3)MERGESAT

In MERGESAT, when watching a satisfied literal during unit propagation, the clause is moved to the watch list of that literal.在MERGESAT中,当在单元传播期间观察一个满意的文字时,子句被移动到该文字的观察列表中。

In 2021, KISSAT and CADICAL just update the blocking literal of the clause and keep the clause in the current watch list.

   
 

II. GENERIC IMPROVEMENTS

 

Besides modifying the algorithm directly, other parameters of the environment can be influenced as well. 除了直接修改算法外,环境的其他参数也会受到影响。

这个编译时标志已经被添加到KISSAT和CADICAL的构建文件中.This compile time flag has been added to the build files for
both KISSAT and CADICAL

   
   REFERENCES
 

[1] A. Biere, M. Heule, H. van Maaren, and T. Walsh, Eds., Handbook of
Satisfiability.
Amsterdam: IOS Press, 2009.
[2] N. E´en and N. S¨orensson, “An extensible SAT-solver,” in SAT 2003, ser.
LNCS, E. Giunchiglia and A. Tacchella, Eds., vol. 2919.
Heidelberg:
Springer, 2004, pp. 502–518.
[3] J. K. Fichte, N. Manthey, J. Stecklina, and A. Schidler, “Towards faster
reasoners by using transparent huge pages,” in Principles and Practice of
Constraint Programming, H. Simonis, Ed.
Cham: Springer International
Publishing, 2020, pp. 304–322.
[4] I. P. Gent, “Optimal implementation of watched literals and more general
techniques,” J. Artif. Intell. Res., vol. 48, pp. 231–251, 2013. [Online].
Available: https://doi.org/10.1613/jair.4016
[5] R. Hickey and F. Bacchus, “Trail saving on backtrack,” in Theory and
Applications of Satisfiability Testing – SAT 2020, L. Pulina and M. Seidl,
Eds.
Cham: Springer International Publishing, 2020, pp. 46–61.
[6] S. H¨olldobler, N. Manthey, and A. Saptawijaya, “Improving resource-
unaware SAT solvers,” ser. LNCS, C. G. Ferm¨uller and A. Voronkov,
Eds., vol. 6397.
Heidelberg: Springer, 2010, pp. 519–534.
[7] M. W. Moskewicz, C. F. Madigan, Y. Zhao, L. Zhang, and S. Malik,
“Chaff: Engineering an efficient SAT solver,” in DAC 2001.
New York:
ACM, 2001, pp. 530–535.
[8] A. Nadel and V. Ryvchin, “Chronological backtracking,” in Theory and
Applications of Satisfiability Testing – SAT 2018, O. Beyersdorff and
C. M. Wintersteiger, Eds. Cham: Springer International Publishing, 2018,
pp. 111–121.
[9] 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.

   

文献阅读——Watch Sat and LTO for CaDiCaL and Kissat的更多相关文章

  1. 文献阅读笔记——group sparsity and geometry constrained dictionary

    周五实验室有同学报告了ICCV2013的一篇论文group sparsity and geometry constrained dictionary learning for action recog ...

  2. 文献阅读 | The single-cell transcriptional landscape of mammalian organogenesis | 器官形成 | 单细胞转录组

    The single-cell transcriptional landscape of mammalian organogenesis 老板已经提了无数遍的文章,确实很nb,这个工作是之前我们无法想 ...

  3. 空间插值文献阅读(Geostatistical approaches for incorporating elevation into the spatial interpolation of rainfall)

    空间插值技术应用必读论文---P. Goovaerts, Geostatistical approaches for incorporating elevation into the spatial ...

  4. 文献阅读方法 & 如何阅读英文文献 - 施一公(转)

    附: 如何看懂英文文献?(好) 看需求,分层次 如何总结和整理学术文献? Mendeley & Everything 如何在pdf文献上做笔记?福晰阅读器 自己感悟: 一篇专业文献通常会有几页 ...

  5. phd文献阅读日志-博一上学期

    为了记住并提醒自己阅读文献,进行了记录(这些论文都是我看过理解的),论文一直在更新中. 博一上学期: 1.week 6,2017.10.16 2014-Automatic Semantic Model ...

  6. RTCM32编解码中的一些概念及相关文献阅读

    1. IODC和 IODE ——  导航电文相关.iode/iodc是在GPS系统的ICD2中定义的参数,iode指星历数据事件,iodc指星钟数据事件. IOD 是 issue of data ,数 ...

  7. AutoML文献阅读

    逐步会更新阅读过的AutoML文献(其实是NAS),以及自己的一些思考 Progressive Neural Architecture Search,2018ECCV的文章: 目的是:Speed up ...

  8. 文献阅读报告 - Social BiGAT + Cycle GAN

    原文文献 Social BiGAT : Kosaraju V, Sadeghian A, Martín-Martín R, et al. Social-BiGAT: Multimodal Trajec ...

  9. 文献阅读报告 - Social Ways: Learning Multi-Modal Distributions of Pedestrian Trajectories with GANs

    文献引用 Amirian J, Hayet J B, Pettre J. Social Ways: Learning Multi-Modal Distributions of Pedestrian T ...

  10. 文献阅读 - MonoLoco与关于Camera Matrix的笔记

    目录 概览 HighLights Camera Intrinsic Matrix 笔记 Intrinsic Matrix Task-Error - 不确定性任务下确界的计算 输出假设的Laplace分 ...

随机推荐

  1. SQLSERVER日期查询(年、月、日、季、周、时、分、秒)

     常用日期查询操作 SELECT GETDATE () [当前日期], DATENAME (YEAR, GETDATE ()) [年], DATENAME (MONTH, GETDATE ()) [月 ...

  2. LM393双电压比较器集成电路引脚图及功能_工作原理及应用电路

    lm393简介 LM393 是双电压比较器集成电路.输出负载电阻能衔接在可允许电源电压范围内的任何电源电压上,不受 Vcc端电压值的限制.此输出能作为一个简单的对地SPS开路(当不用负载电阻没被运用) ...

  3. 添加vscode到windows的右键菜单

    保存为bat Windows Registry Editor Version 5.00 ; Open files [HKEY_CLASSES_ROOT\*\shell\Open with VS Cod ...

  4. WPF_MVVM框架(5)

    1.NuGet引用MVVM框架包 引入该框架包之后, 默认会在目录下创建ViewModel层的示例代码 2.第二步, 通过在MainViewModel中创建一些业务代码, 将其与MainWindow. ...

  5. lxml库和BeautifulSoup库常用点小结

    算是本人的学习笔记吧,仅供个人学习使用. 以下内容摘自<Python3网络爬虫开发实战--崔庆才著> 1.lxml库 XPath 常用规则: 表达式 描述 nodename 选取此节点的所 ...

  6. call bind的实现以及数组常用方法

    1.call 实现(apply 类似) Function.prototype.call= function(context){    context = context || window;     ...

  7. 设置VScode中console.log快捷键

    "Print to console": { "prefix": "log", "body": [ "conso ...

  8. 获取内存及cpu信息

    <dependency> <groupId>com.github.oshi</groupId> <artifactId>oshi-core</ar ...

  9. 【剑指Offer】【数组】顺时针打印矩阵

    题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1 ...

  10. stm32 flash/sram 映射关系

    1.可以参考手册里关于Memory map的说明, 里面说明了Flash的起始地址与大小, SRAM起始地址与大小