LSTECH_MAPLE
介绍
LSTECH_MAPLE 是一款高性能的 SAT 开源求解器,获得了2021年 SAT Competition 中 Main Track SAT 的亚军,能够求解 SAT 和 UNSAT 问题。LSTECH_MAPLE 改进了冲突驱动子句学习(Conflict Driven Clause Learning,CDCL)算法,在松弛了 CDCL 过程的同时加入了 Local Search。LSTECH_MAPLE 由 C++ 开发,支持读写 CNF格式 (opens new window)(Conjunctive Normal Form)的文件。
参数
CORE OPTIONS
| 参数 | 含义 | 默认 | 
|---|---|---|
step-size |  初始步长  |  0.40 | 
step-size-dec |  步长衰减  |  0.000001 | 
min-step-size |  最小步长  |  0.06 | 
var-decay |  变量活动衰减因子  |  0.80 | 
cla-decay |  子句活动衰减因子  |  0.999 | 
rnd-freq |  启发式随机选择变量的频率  |  0 | 
rnd-seed |  随机选择变量的随机数种子 | 91648253 | 
ccmin-mode |  控制冲突子句的最小化 (0=none, 1=basic, 2=deep) | 2 | 
phase-saving |  phase saving的等级 (0=none, 1=limited, 2=full) | 2 | 
rnd-init |  随机化初始活动 | false | 
rfirst |  基础重启的间隔  |  100 | 
rinc |  重启间隔增加因子  |  2 | 
gc-frac |  触发垃圾内存收集之前允许浪费的内存比例  |  0.20 | 
chrono |  控制是否执行时间回溯  |  100 | 
confl-to-chrono |  控制执行时间回溯的冲突数量  |  4000 | 
DUP-LEARNTS OPTIONS
| 参数 | 含义 | 默认 | 
|---|---|---|
lbd-limit |  指定duplicates learnts检测的最大lbd(Literals Blocks Distance). | 14 | 
min-dup-app |  指定加入DB的最小的learnts的数量. | 2 | 
dupdb-init |  指定初始的最大duplicates DB的大小. | 1000000 | 
MAIN OPTIONS
| 参数 | 含义 | 默认 | 
|---|---|---|
verb |  详细的级别(0=silent, 1=some, 2=more) | 1 | 
pre |  完全打开/关闭预处理. | true | 
dimacs |  如果指定了文件,预处理后就停止并将结果写入该文件. | |
cpu-lim |  最大CPU时间,以秒计.   |  INT32_MAX = 2147483647 | 
mem-lim |  最大内存,以MB计.   |  INT32_MAX | 
drup |  生成DRUP UNSAT证明. | false | 
drup-file |  DRUP UNSAT证明的输出文件. | "" | 
SIMP OPTIONS
| 参数 | 含义 | 默认 | 
|---|---|---|
asymm |  通过不对成分支缩小子句. | false | 
elim |  执行变量消除. | true | 
rcheck |  检查子句是否已被暗含.(运行成本高) | false | 
simp-gc-frac |  在简化过程中触发垃圾内存收集之前允许浪费的内存比例. | 0.5 | 
grow |  允许一次变量消除所产生的子句数. | 0 | 
cl-lim |  如果产生的分解长度超过该值,则不进行变量消除. -1指无限制 | 20 | 
sub-lim |  不检查长度大于该值的子句是否与其他子句有包含关系. -1指无限制 | 1000 | 
HELP OPTIONS
| 参数 | 含义 | 
|---|---|
help |  输出帮助信息. | 
help-verb |  输出详细的帮助信息. | 
使用示例
./lstech_maple [options] <input-file> <result-output-file>
 1
./lstech_maple --help
 1
注意:HELP OPTIONS前都要使用--,其余OPTIONS前加-,设定参数时的=前后都不能有空格。
求解CNF文件
./lstech_maple ./input.cnf
 1
./lstech_maple -cpu-lim=1000 ./input.cnf ./output.cnf
 1
← LEAVES