我可以要求Z3从某些起始值中搜索以满足约束条件吗?
说,如果我有两个RealExprs
x
和y
,我有x==y
作为约束。
我可以要求Z3从x=-9999, y=-9997
进行搜索,以便Z3可能会向我返回一个x=-9998 and y=-9998
并说“SAT”的模型吗?
答案 0 :(得分:1)
据我了解你的问题,你正在寻找最大化/最小化问题的解决方案,即以下功能
f(x, y) = |x + 9999| + |y + 9997|
与约束x = y
一起使用。正如this question的答案中所述,Z3目前不直接支持这一点。但是,如上所述,您可以尝试通过在Python循环中查询Z3来解决此类问题,该循环将先前找到的解决方案添加为下一个查询的新约束。