satisfiability相关内容

如何使Z3';(Python)的SAT解算偏向某个标准,例如更倾向于有更多否定的文字

在Z3(Python)中,有没有办法将SAT搜索“偏向”“条件”? 一个案例:我希望Z3获得一个模型,但不是任何模型:如果可能,请给我一个有大量否定文字的模型。 例如,如果我们必须搜索A or B,可能的模型是[A = True, B = True],但我宁愿收到模型[A = True, B = False]或模型[A = False, B = True],因为它们有更多的False分 ..
发布时间:2022-08-21 21:35:15 其他开发

ANTLR - 布尔可满足性

我有一个 ANTLR 表达式解析器,它可以使用生成的访问者评估形式 ( A & ( B | C ) ) 的表达式.A 、 B 和 C 可以采用 true 或 false 两个值中的任何一个.但是,我面临着找到表达式正确的 A、B 和 C 的所有组合的挑战.我尝试通过以下方法解决此问题. 评估 3 个变量的表达式,每个变量取真假 这有 8 种组合,因为 2 ^ 3 是 8 我评估给变量提供 ..
发布时间:2021-11-11 03:52:31 Java开发

Z3 或 Z3Py 中的假设

有没有办法在 Z3 中表达假设(我使用的是 Z3Py 库),这样引擎就不会检查它们的有效性,而是将它们作为基础理论,就像在定理证明中一样? 例如,假设我有两个参数为 Real 类型的一元函数.我想告诉 Z3 引擎,对于所有输入值,f1(t) 等于 f2(t). 在 Z3Py 中编码,如下所示: t = Real("t") 假设 1 = ForAll(t, f1(t) = f2(t) ..
发布时间:2021-10-04 20:38:09 其他开发

SAT接地工具?

在ASP(答案集编程)中,程序以更高级别的声明性语言编写,然后以确定性方式进行基础化,以使用lparse或gringo等基础知识来生成ASP实例. SAT社区是否使用流行的基础生成实例?换句话说,是否有可以表达的东西,例如: vertex(a; b; c). isRed(V) \/ isBlue (V) \/ isGreen(V) :- vertex(V). 并从中生成DIMACS ..
发布时间:2020-06-22 18:53:39 其他开发

CNF简化

给定一组子句,我想首先检查它们是否可以满足要求.如果是的话,我想简化它们并创建一个CNF,例如(a OR b)^(NOt b)应该简化为:a ^(NOt b).我只使用命题公式.我尝试使用Java SAT4j库来执行此操作.它可以告诉我这组子句是否令人满意,但是似乎没有任何方法可以返回简化的CNF.如何有效简化CNF?有任何Java或Python实现吗? 解决方案 您可以使用 Riss3g ..
发布时间:2020-05-21 21:11:05 其他开发

布尔公式编码

我想知道对 这样的布尔公式进行编码需要多少位 @(x1,x2,x3,x4) = (x1 OR x2 OR NOT(x3) OR x4) AND ((NOT)x2 OR x3) AND (x1 OR (NOT)x4) @是SAT的一个实例.我认为这是4位,因为可能的组合总数为2(power4).那是对的吗?我应该计算OR,NOT和AND来计算编码所需的位数吗?我搜索了很多,但找不到任何东 ..
发布时间:2020-05-06 11:20:18 其他开发

ANTLR-布尔满意度

我有一个ANTLR表达式解析器,它可以使用生成的访问者来评估形式(A&(B | C))的表达式. A,B和C可以采用两个值true或false中的任何一个.但是,我面临着寻找表达式正确的A,B和C的所有组合的挑战.我试图通过以下方法解决这个问题. 计算3个变量分别为true和false的表达式 这是8种组合,因为2 ^ 3是8 我评估给变量提供000、001、010 ......... ..
发布时间:2020-05-03 09:00:40 Java开发

解决命题逻辑/布尔表达式的工具(SAT解算器?)

我是命题逻辑和布尔表达式的新手.所以这就是为什么我需要帮助.这是我的问题: 在汽车工业中,购买汽车时可以选择成千上万种不同的组件.并非每个组件都是可组合的,因此对于每辆汽车,都有很多以命题逻辑表示的规则.就我而言,每辆车都有2000到4000条规则. 它们看起来像这样: A→B∨C∨D C→¬F F∧G→D ... 其中“∧" =“和"/“∨" =“或"/“¬" =“ ..

SAT使用haskell SBV库解决问题:如何从解析的字符串生成谓词?

我想解析描述命题公式的 String ,然后用SAT求解器找到命题公式的所有模型。 现在我可以使用 hatt 包解析命题公式;请参阅下面的 testParse 函数。 我也可以使用SBV库运行SAT解算器调用;请参阅下面的 testParse 函数。 问题: ,在运行时,在SBV库中生成一个类型为 Predicate 类似 myPredicate 的值,该值代表刚刚解析的命题公 ..
发布时间:2018-06-04 14:52:48 其他开发

验证组合CNF SAT编码?

我正在通过使用 SAT Solver 来解决组合问题。 这涉及以下步骤: 将问题编码为一组布尔表达式。 将表达式的结合转换为 CNF / DIMACS (使用本土工具, bc2cnf , bool2cnf 或 Limboole ) 解决 CNF (使用SAT解析器,如 Cryptominisat , Plingeling ,表带或 Z3 ) 将解决方案(假设“SAT” ..

转换器从SAT至3-SAT

有谁知道一个很好的方案,以CNF文件转换任意数量的每个条款变量CNF文件,每个条款(3-CNF)正好3个变量的?我已经看到了这个算法,计算机科学书籍,但无法找到一个实现随时随地,真舍不得浪费时间实现它自己,如果别人已经做到了。谢谢! 解决方案 我不知道任何程序做,要么,但算法是非常简单,所以只是我写了下面的python脚本(的下载),它读取DIMACS格式的通用CNF和写入的等效3-SAT问题 ..
发布时间:2015-11-30 22:23:13 C/C++

是最小化的布尔EX pressions NP完全?

我知道,布尔可满足性是NP完全的,但是是一个布尔值前pression最小化/简化,我指的是采取​​一个给定的前pression以符号形式和产生一个等价的,但简单的前pression以符号形式,NP完全?我不知道这有一个从可满足到最小化的减少,但我觉得可能有。有谁知道肯定? 解决方案 好了,这样看的:用一个最小化的算法,可以压缩任何非可满足EX pression字面假,对不对?这有效地解决了周六 ..

把人分成小组的最大的满意

只是一个好奇的问题。还记得在课堂groupwork当教授会分裂人成一定数量的群体( N )? 我的一些教授将采取的列表 N 人一个人想与和 N 人1没有按工作'T想从每个学生的作业,然后神奇地变成组 N ,学生应该是匹配的人,他们preFER,避免与人合作,他们不要preFER。 要我这个算法听起来很像一个背包问题,但我想我会问周围约你的方式来这样的问题会。 修改:发现的一个ACM文章描述的 ..
发布时间:2015-11-30 16:26:50 C/C++