Z3是否支持优化问题
我在去年八月的一篇文章中看到Z3不支持优化。 不过,它也表示,开发商正计划增加此类支持 我在消息来源中找不到任何迹象表明发生了这种情况 有谁能告诉我,我的假设没有支持是正确的,还是添加了支持,但我不知怎么错过了 谢谢,Z3是否支持优化问题,z3,Z3,我在去年八月的一篇文章中看到Z3不支持优化。 不过,它也表示,开发商正计划增加此类支持 我在消息来源中找不到任何迹象表明发生了这种情况 有谁能告诉我,我的假设没有支持是正确的,还是添加了支持,但我不知怎么错过了 谢谢, Omer目前不支持优化。这在待办事项清单上,但尚未实施。以下幻灯片介绍了Z3中使用的方法: 用于无穷小计算的库已经实现,可在不稳定(正在进行的工作)分支中获得,并联机访问 如果您的优化有一个整数值的目标函数,一种相当有效的方法是对最优值进行二进制搜索。假设您正在求解约束集
Omer目前不支持优化。这在待办事项清单上,但尚未实施。以下幻灯片介绍了Z3中使用的方法:
用于无穷小计算的库已经实现,可在
不稳定
(正在进行的工作)分支中获得,并联机访问 如果您的优化有一个整数值的目标函数,一种相当有效的方法是对最优值进行二进制搜索。假设您正在求解约束集C(x,y,z)
,最大化目标函数f(x,y,z)
(x0,y0,z0)
到C(x,y,z)
f0=f(x0,y0,z0)
。这将是您的第一个下限C(x,y,z)∧ f(x,y,z)>2*L
,其中L
是您的最佳下限(最初,f0
,然后是您发现更好的值)C(x,y,z)∧ 2*f(x,y,z)>(U-L)
。如果公式是可满足的,则可以使用该模型计算新的下限。如果它是不可满足的,(U-L)/2
是一个新的上限push
和pop
逐步解决一系列问题。此外,您还需要能够为中间步骤提取模型,并对其进行评估
我们在我们的工作中使用了这种方法,并取得了合理的成功