我正在将我的问题转换为 SMT,并且我注意到 SMT 求解器(MathSat5 和 CVC4)在求解 sat 实例时速度很慢。我的暂停是我的翻译中有一些东西让它变慢了。
我附上了一个示例 cnf 实例和 smt2 翻译以供参考,下面我提供了较大实例的求解器时间(不包括翻译时间)以比较 MathSat5、CVC4 和 MiniSat。
Solver Solver Time (s)
-------------------------------------
MiniSat 0.028062 s
MathSat5 2.629702 s
CVC4 7.488870 s
CVC4(QF_SAT) 1.253978 s
那么有没有人知道为什么这些时代截然不同?PS。cvc4 说它花费了 5.862 秒:theory uf Symmetry_breaker
Sample cnf:
-------------------------------------
p cnf 20 91
4 -18 19 0
...
4 -16 -5 0
Sample smt2:
-------------------------------------
(set-logic QF_UF)
(set-info :smt-lib-version 2.0)
(set-option :produce-models true)
(declare-fun v1 () Bool)
...
(declare-fun x20 () Bool)
(assert (or v4 (not x18) x19))
...
(assert (or v4 (not v16) (not v5)))
(check-sat)
(get-value ( v1 ... x20))
(exit)
谢谢