首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Z3中允许正误的限界数

Z3中允许正误的限界数
EN

Stack Overflow用户
提问于 2021-06-16 13:39:22
回答 1查看 222关注 0票数 1

假设我在Z3中有一组逻辑断言,并且我想检查可满足性。在满意的模型中,是否有一种方法可以确定真/假的总数?

例如,我可能有一个涉及100个布尔变量的断言集合,但我只对至少90个Trues的解决方案感兴趣。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-16 16:53:25

是。要做到这一点,有两种相对简单的方法:

  • 用于一般的SMT解决程序,只需断言:

(assert (<= 90 (+ (ite v1 1 0) (ite v2 1 0) ...)))

v1v2等是你的布尔人。这将确保其中至少有90个是正确的。

如果使用的是

请注意,您甚至可以让z3“最大化”真正的布尔值。这将使用优化引擎,并通过最大化上面第一个选项中的求和表达式来工作。在如何使用优化器方面,您可以找到许多引用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68003832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档