我正在尝试在 Z3 中使用策略求解器来解决一些 X 约束的问题,而不是通用求解器。
我正在使用以下策略 -
simplify purify-arith elim-term-ite reduce-args propagate-values solve-eqs symmetry-reduce smt sat sat-preprocess
我通过使用Z3_tactic_and_then
API 将策略一个接一个地应用到问题上。我也在使用这种技术来配置求解器的超时。
现在,对于同样的问题,如果我使用通用求解器,它会在指定超时的查询中超时。但是,如果我对求解器使用上述策略,那么它不会在给定时间内超时。它运行的时间更长。
例如,我指定了超时180*1000 milliseconds
,但它在 730900 毫秒后超时。我试图删除上面提到的一些策略,但行为仍然相同。
Z3 版本 4.1