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. [js函数] shallowEqual

    const isBasicType = (t: any) => { return t === "number" || t === "string" || ...

  2. Linux安装oracle jdk

    jdk8下载地址:Java Archive Downloads - Java SE 8 (oracle.com) ##安装oracle linux时自带的jdk [root@mylinux7 ~]# ...

  3. 关于import-route static 和default-route-advertise区别知识总结

    关于import-route static 和default-route-advertise区别知识总结 一.相关解释 import-route static  命令不能引入外部路由的默认路由,OSP ...

  4. 【FPGA & Verilog】手把手教你实现一个DDS信号发生器

    信号发⽣器的设计与实现 1.输出波形:⽅波(占空⽐50%).锯⻮波.三⻆波.脉冲信号(占空⽐连续可调).正弦波.任意波等 2.输出频率:100KHz 3.波形选择:使⽤拨码开关选择   思路: 使用F ...

  5. C# Visual Studio等,学习地址

    Visual Studio 2022 学习地址 Visual Studio系列学习地址 Csharp11 学习地址 Csharp 学习地址 W3School公营,推广技术,免费学习 W3CSchool ...

  6. Java 03-基础 堆和栈(另,理解Java内存)

    概述: 栈区(STACK)堆区(HEAP) 1.栈中主要存放一些基本类型的变量,且每一个基本数据类型有固定的大小(byte,short,int,long,float,double,boolean,ch ...

  7. centos7 yum安装配置Lnmp和负载配置

    首先配置防火墙CentOS 7.0默认使用的是firewall作为防火墙1.关闭firewall: systemctl stop firewalld.service #停止firewallsystem ...

  8. 2020icpc济南 - A

    组合数学 + 高斯消元 [A-Matrix Equation_第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南) (nowcoder.com)](https://codeforces.c ...

  9. 假设页面左侧有一个列表,点击列表某一项时,将根据当前id发起一个请求,并将响应结果展示在右侧。如果快速多次点击不同列表项,当网络不稳定时,请求返回的顺序与我点击顺序不符,导致展示的结果不是我最后一次点击的对应结果,怎么办?

    1.防抖/节流方案 ,不可完全避免,请求数据时间不一致2.如果使用ajax/axios,发起请求时可直接取消上一次未完成的请求可实现3.临时记录最后一次的id,要求服务器返回时携带id,对比选择后渲染 ...

  10. ABAP 范围表 range table

    范围表定义: DATA gr_test TYPE RANGE OF char6. 做选择屏幕的时候 范围选择框 默认就是一个范围表 范围表内容: 通过断点调试可以看到,范围表有4列 sign opti ...