【发布时间】:2014-07-15 04:32:26
【问题描述】:
我认为检测共享表达式的技术已应用于大多数现代 SMT 求解器。当它处理一系列相似的表达式时,性能应该非常好。但是,在 input1 和 input2 上运行 Z3 后,我得到了意想不到的结果。不是在“input1”中建立一个长约束A,而是定义了一些中间变量来映射到“input2”中A的子表达式。在这种情况下,input1 的变量较少,应该比 input2 解决得更快。我无法从统计数据中找到有用的信息,因为除了求解时间和消耗的内存外,它们完全相同:
如果有人能回答/解释对 SMT 求解器的性能影响更大的因素、变量的数量或子表达式的数量,我将不胜感激?
【问题讨论】:
-
对此没有普遍有效的答案。启发式方法可能对具有更多变量的文件很幸运,或者它们可能对具有较少变量的文件不走运。我不知道这个特定文件会发生什么,因为我无法访问您的输入文件。你能把这些公开吗?
-
感谢您的提醒!他们现在是公开的。我不应该忘记分享它们。提前感谢您的进一步帮助!
标签: preprocessor z3 smt simplification