随笔 - 260
文章 - 0
评论 - 0
阅读 -
52987
随笔分类 - SAT求解器代码分析
CDCL框架下求解器基本技术代码分析。
代码的阅读流程建议
摘要:2022-9-19回复消息提问的作答。 互相交流。我三月份前也在学习kissat,好一阵没看其代码,刚才又看了一下,凭回忆记录如下,算是简要分享以下的我早前的阅读流程。 (1)从application.c文件最后的一个如下函数看起。该函数实际是真正的主函数。 int kissat_applicati
阅读全文
duplicate learnts version相关知识笔记
摘要:文献: Stepan Kochemazov, Oleg Zaikin, Alexander A. Semenov, Victor Kondratiev:Speeding Up CDCL Inference with Duplicate Learnt Clauses. ECAI 2020: 339-3
阅读全文
训练营作业将microsat改进为microsat_Scave
摘要:最近参加了2022约束求解基础与应用训练营,受益良多。感谢包括蔡少伟教授在内的全体组织者。将其中完成的一项作业发布到这里,做阶段小结的备查资料。 一、改进说明 本人阅读并了解 CDCL 求解器 microsat 的代码,按照课程作业要求将microsat改进为microsat_Scavel。主要改进
阅读全文
求解器代码分析-Kissat的输出代码
摘要:屏幕输出相关结果分散在多个.c文件中 一个典型的求解输出: 1 Administrator@PC-20170726RROZ /cygdrive/d/SATceshi2021-11 2 $ ./kissat.exe dist8.c.cnf 3 c [ banner ] 4 c 5 c KISSAT S
阅读全文
simplify相关代码分析
摘要:早期对SAT求解器代码解读最重要的文献是: [MZ01] M.W. Moskewicz, C.F. Madigan, Y. Zhao, L. Zhang, S. Malik. “Chaff:Engineering an Efficient SAT Solver” in Proc. of the 38
阅读全文
文献阅读-Early Conflict Detection Based BCP for SAT Solving
摘要:作者: MDT Lewis,T Schubert,B Becker 摘要: This paper describes a new BCP algorithm that improves the performance of Cha class solvers by reducing the tota
阅读全文
minisat中用到的数据结构
摘要:通用的数据结构在文件夹mtl中可以查询 基本的数据结构在SolverTypes.h中定义 1. Lit 1 struct Lit { 2 int x; 3 4 // Use this as a constructor: 5 friend Lit mkLit(Var var, bool sign );
阅读全文
minisat数据成员ok的使用分析及两大类化简操作
摘要:定义 // Solver state: // bool ok; // If FALSE, the constraints are already unsatisfiable. No part of the solver state may be used! 初始化 , ok (true) 使用 在以
阅读全文
Solver数据成员step_size的作用
摘要:在Solver类型中有数据成员及其调整与使用: 数据成员 double step_size; double step_size_dec; double min_step_size; step-size被使用情况 1 // Revert to the state at given level (kee
阅读全文
2020SAT竞赛综述解读2——文献学习Relaxed Backtracking with Rephasing_求解器Relaxed LCMDCBDL系列
摘要:作者: Xindi Zhang1,2 and Shaowei Cai1,2*1State Key Laboratory of Computer Science, Institute of Software, Chinese Academy of Sciences, Beijing, China2Sc
阅读全文
代码解读——给定已知赋值文字序列交由求解函数solveLimited传播并处理冲突
摘要:在主函数main.cc中 在化简求解代码段之后: vec<Lit> dummy; lbool ret = S.solveLimited(dummy); 在Solver.h文件中 inline lbool Solver::solveLimited (const vec<Lit>& assumps){
阅读全文
代码解读——collectFirstUIP(CRef confl)
摘要:代码解读: 功能——collectFirstUIP(CRef confl)函数功能是基于蕴含图做基于第一唯一蕴含点fristUIP切割线,对参与冲突的变元计算活跃度增量。 基本思想——冲突子句各文字及其对应reason子句的各个文字参与了冲突的形成,这些文字变元活跃度需要更新; 更新的增量基于:(1
阅读全文