《布尔可满足性问题SAT入门指南》

主要介绍了SAT求解器和DPLL/CDCL等算法,作为SAT入门的介绍

持续更新中!!!!


目录

1. Boolean Satisfiability(SAT)综述

2. CDCL

2.1 DPLL

2.2 子句学习

2.3 非时序回溯

2.4 搜索重启

2.5 数据结构(lazy)

3. 总结


1. Boolean Satisfiability(SAT)综述

SAT是命题逻辑的决策问题,其中元素包括合适的命题公式、变量、逻辑运算符和括号。

使用输入文件严格要求是CNF(conjunctive normal form,合取范式),最后确定公式是否具有令人满意的赋值(SAT)。

《布尔可满足性问题SAT入门指南》_第1张图片 图1:SAT求解器的性能

图1是基于CDCL(conflict-driven clause learning,基于冲突的子句学习) SAT求解器的性能分析,我们可以看出解决问题的规模是很大的,在百万变量级别。

它针对CNF输入进行优化,可用于很多应用,如图形优化问题、基于模型的诊断、协作路径查找以及机器学习模型的验证和解释等。

CDCL算法可以分为以下几个部分:

1)DPLL算法(Davis-Putnam-Logemann-Loveland)

2)子句学习

3)非时序回溯

4)搜索重启

5)数据结构(lazy)

2. CDCL

2.1 DPLL

2.2 子句学习

2.3 非时序回溯

2.4 搜索重启

2.5 数据结构(lazy)

3. 总结

你可能感兴趣的:(EDA,c++)