Z3 输入顺序对约束求解器性能的影响

Z3 输入顺序对约束求解器性能的影响,z3,solver,constraint-programming,gecode,Z3,Solver,Constraint Programming,Gecode,输入(布尔和算术方程)的顺序对像Gecode这样的约束解算器和像microsoft Z3这样的SMT解算器重要吗??如果是的话,如果我可以利用Gecode中使用分支函数的一些已知的启发式方法,这两种方法中的哪一种性能更好 (注意:我不知道Z3中是否存在类似于Gecode中branch()的函数)理论上,没有;秩序不重要。断言的顺序不应该有什么区别。但在实践中,它们可能会产生影响,因为启发式可能会在死胡同中花费大量时间。SMT解算器通常像黑匣子一样工作,也就是说,除非您知道它们的确切内部结构,否则

输入(布尔和算术方程)的顺序对像Gecode这样的约束解算器和像microsoft Z3这样的SMT解算器重要吗??如果是的话,如果我可以利用Gecode中使用分支函数的一些已知的启发式方法,这两种方法中的哪一种性能更好


(注意:我不知道Z3中是否存在类似于Gecode中branch()的函数)

理论上,没有;秩序不重要。断言的顺序不应该有什么区别。但在实践中,它们可能会产生影响,因为启发式可能会在死胡同中花费大量时间。SMT解算器通常像黑匣子一样工作,也就是说,除非您知道它们的确切内部结构,否则很难看到它们的进展情况。但是,您可以打开详细性(使用z3的
-v
标志),并查看输出以查看是否发现任何不同的行为

与任何一般的“SMT求解器的性能”问题一样,抽象地回答是不可能的。每个问题实例都有特定的特征,可能有不同的编码方式,以使解算器更轻松。如果您发布特定的问题,您可以得到更好的建议。

类似于