我有一个可以通过旧版Z3(版本2.18)非常有效地解决的实例。它会在几秒钟内返回SAT。 但是,当我在当前版本的Z3(版本4.3.1)上尝试时。 10分钟后它不会返回任何结果。
以下是有关该实验的一些细节。可以有人给出一些建议吗?
有4000个Bool变量和200个Int变量
所有约束都在命题逻辑中,比较整数,如< B'/ p>
平台:打开suse linux 12.3@thinkpad T400s
去年Z3 v2.18作为Linux二进制文件下载(我现在找不到链接)
Z3 v4.3.1作为源代码下载,我使用默认设置在笔记本电脑上编译
smt文件中有大约50,000行,所以我不能在这里发布。如果有兴趣的话,我很乐意通过电子邮件发送文件。 感谢。
答案 0 :(得分:1)
Z3是一系列求解器。默认配置从版本更改为版本。 进步永远不会是单调的。也就是说,新版本可以解决更多问题,但可能会更慢并且在某些问题上失败。
备注:作者已通过电子邮件将其基准发送给Z3作者。
在“正在进行中”分支中,我设法使用
重现Z3 2.19性能 (set-option :smt.auto-config false)
Here是有关如何下载“正在进行中的工作”分支的说明。
为了获得相同的行为,我们还必须更换 (检查-SAT) 同 (check-sat-using smt)
BTW,在正式版中,我们必须使用 (set-option :auto-config false)
而不是
(set-option :smt.auto-config false)