Z3 限时优化

Z3 Time Restricted Optimization

我看到 Z3 支持优化,例如断言软。据我了解,如果有足够的时间,Z3 将报告给定 SMT 公式的最佳解决方案。

但是,我感兴趣的是是否可以 运行 Z3 在有限的时间内报告它可以找到的最佳解决方案(这并不一定意味着它是最佳解决方案)。

如果我在SMT公式上运行 Z3并限制时间(通过参数-T),如果没有最优解它只会报告'timeout'。我读到默认的 wmax 求解器使用一个简单的过程来限制权重,并且很好奇是否可以从上限而不是下限来限制权重。

此致, 埃米尔

超时选项 -T 会导致进程终止,因此它不会 return 任何中间值。如果您使用 -t 选项(软超时),则进程不会终止。相反,Z3 将在检查取消的某个点停止搜索。然后它会产生迄今为止的最佳答案。对应设置取消状态。我希望这对你有用。