Z3 nlsat求解器的增量求解

Z3 nlsat求解器的增量求解,z3,Z3,我正在尝试用“nlsat”解算器实现快速解释算法。 由于算法需要多次求解原始约束集的子集,所以我决定使用Z3/C++接口中的PUP/POP函数。 选择器变量用于暗示添加/删除约束 但我在解决约束集时遇到了一个问题。z3能够在不到1分钟的时间内告诉我整个约束集未设置。但当检查原始约束集的子集时,它在超过1小时的时间内没有给出结果 整个约束集 原始约束集的子集 是什么显著改变了性能?通常,什么会影响nlsat解算器的性能 感谢您的建议。nlsat解算器不会公开增量,因此当您创建多个查询时,它将从头开

我正在尝试用“nlsat”解算器实现快速解释算法。 由于算法需要多次求解原始约束集的子集,所以我决定使用Z3/C++接口中的PUP/POP函数。 选择器变量用于暗示添加/删除约束

但我在解决约束集时遇到了一个问题。z3能够在不到1分钟的时间内告诉我整个约束集未设置。但当检查原始约束集的子集时,它在超过1小时的时间内没有给出结果

整个约束集

原始约束集的子集

是什么显著改变了性能?通常,什么会影响nlsat解算器的性能


感谢您的建议。

nlsat解算器不会公开增量,因此当您创建多个查询时,它将从头开始。对于较短的公式,搜索空间可能更大