Z3:设置起始值

时间:2013-02-14 22:26:09

标签: z3

我可以要求Z3从某些起始值中搜索以满足约束条件吗?

说,如果我有两个RealExprs xy,我有x==y作为约束。 我可以要求Z3从x=-9999, y=-9997进行搜索,以便Z3可能会向我返回一个x=-9998 and y=-9998并说“SAT”的模型吗?

1 个答案:

答案 0 :(得分:1)

据我了解你的问题,你正在寻找最大化/最小化问题的解决方案,即以下功能

f(x, y) = |x + 9999| + |y + 9997|

与约束x = y一起使用。正如this question的答案中所述,Z3目前不直接支持这一点。但是,如上所述,您可以尝试通过在Python循环中查询Z3来解决此类问题,该循环将先前找到的解决方案添加为下一个查询的新约束。