z3 - 如何从可满足的公式中恢复估值,关于模型的问题
问题描述
我正在使用带有 ml 接口的 Z3。根据求解器
Solver.mk_simple_solver ctx
r,我创建了一个可满足的公式 f(x_i)。
问题是:我可以得到一个模型,但他只为公式的一些变量找到我的值,而不是全部(我的一些Model.get_const_interp_e
r 以无类型结尾)
模型怎么可能只给我x_i
r的一部分?据我了解,如果模型适用于其中一个值,则意味着该公式是可满足的(在我的情况下是可满足的),因此可以给出所有值...
我不明白的东西.. 感谢您阅读我!
解决方案
您应该始终发布完整的示例,以便人们可以帮助解决实际的编码问题;如果没有看到您的实际代码,就不可能知道可能是什么实际原因。
话虽如此,这听起来很像以下问题:为什么 Z3Py 没有提供所有可能的解决方案所以,也许那里给出的答案会对您有所帮助。
长话短说:Z3 模型将只包含对模型很重要的变量的值。对于未明确分配的任何内容,任何值都可以。当然,有一些方法可以获得“完整”模型,如该答案中所述;我敢肯定,这也可以通过 ML 界面实现。
推荐阅读
- python-3.x - 如何通过ip地址请求https?
- arrays - 需要帮助使用类显示随机数生成器选择并输出到文件
- swift - 当我在另一个类中声明一个类时有什么问题吗?
- python - 为什么我的 Python POST 请求会引导我进入初始网页?
- python - PyCharm-Project 可执行文件
- reactjs - 嵌套形式的反应和派生状态
- swift - 2 .onReceive() 功能与定时器不工作
- python - 基于模糊匹配查找和替换列表中的值
- python - 分类变量处理期间的数据泄漏?
- javascript - 由于某些奇怪的原因,Js 在控制台中输出错误的日期