Z3优化中尽力而为(最大|最小)的模仿

时间:2018-03-02 11:36:36

标签: optimization z3 smt

我对Z3给我一个模型感兴趣,同时如果它试图将一个目标函数作为启发式算法考虑我会很高兴,但我不想支付找到实际的性能代价(最大值|分钟)。imum

这在Z3中是否可行?

1 个答案:

答案 0 :(得分:2)

这已经可以在Z3中实现软超时,请参阅以下答案:Z3 Time Restricted Optimization

实现目标的方法是使用增量求解:

  • 断言所有硬约束。 (即需要满足的那些)
  • 执行check-sat并获取模型
  • 断言所有“优化”约束。
  • 使用软时间,如下所述:Z3 Time Restricted Optimization

在最后一步中,您可以调整您想要等多少,即您愿意支付的罚金。

相关注释:您可能还希望使用软约束,解算器可以选择“满足”,如果没有则会受到惩罚。也许这更适合您的用例。请参阅此处:https://rise4fun.com/Z3/tutorialcontent/optimization#h23