s
我有一个 SMT 应用程序(基于 Haskell SBV 库构建),它使用 Z3 针对实逻辑中的单个变量求解一些复杂方程。就我而言,找到解决方案大约需要 30 秒。
为了加快速度,我添加了额外的约束s < 40000
,因为我对解决方案有一些估计。我在想这样的约束会缩小搜索空间并使求解器更快地返回结果。然而,这只会让它变慢(实际上它甚至没有在 10 分钟内完成)。
问题是:是否可以假设附加约束总是减慢/加速求解过程,或者没有一般规则并且总是取决于情况?
我担心即使是我的 30 秒算法也可能包含一些不必要的额外约束,但只会减慢进程。