我想知道大整数值是否会影响SMT的性能。有时我需要使用大值。大多数情况下,我对它们进行算术运算(主要是加法和乘法)(即不同的整数项),并且需要将结果值与约束(即一些其他整数项)进行比较。
答案 0 :(得分:1)
输入问题中的大整数和/或有理数不是硬度的确定指标。 即使输入仅包含小数字,Z3也可能在内部生成大数字。 我观察过许多Z3花费大量时间处理大型有理数的例子。 计算分子和分母的GCD花费了大量时间。 每次GCD计算都需要相对较少的时间,但在硬问题上,Z3将执行数百万次计算。 注意,Z3使用有理数来求解纯整数问题,因为它使用基于Simplex的算法来求解线性算术。 如果你发布你的例子,我可以给你一个更准确的答案。