需求是解析一个复杂的表达式,并将值赋给满足条件的变量。 例如 ((.(($weatherResult.cityName=="Seattle")||($weatherResult.cityName=="Portland")))&&($weatherResult.cityName=="F ...
需求是解析一个复杂的表达式,并将值赋给满足条件的变量。 例如 ((.(($weatherResult.cityName=="Seattle")||($weatherResult.cityName=="Portland")))&&($weatherResult.cityName=="F ...
PySAT 是否支持 DNF 公式? 例如,我可以使用此模块在 DNF 公式上调用 SAT 求解器吗? 特别是有没有办法使用这个 python 模块将 DNF 转换为 CNF? 我查看了文档,但似乎根本没有提及 DNF 公式。 ...
虽然我对开发并不陌生,但我对 SAT 解决方案非常陌生。 我有一个旧代码库来解决模式问题(不使用 SAT),我正在尝试使用 google OR 工具以及“员工调度”和“工作车间问题”的组合。 基本问题:每个员工都有自己的日程安排。 每天都有 X 次必须有人值守的攻击 为了允许员工被分配到景点,他/她 ...
z3.Bool() 和 z3.FreshBool() 函数有什么区别? 当我使用 Bool() 时,我在 python 上的 z3 中的代码失败(当求解器不应该返回 unsat 时),但是当我使用 FreshBool() 时工作正常(观察到所需的行为)。 我不能在这里提供代码的详细信息,因为它是 ...
我是 Z3 的新手,正在尝试制作一个求解器,它将每个可满足的解决方案返回到 boolean 公式。 从其他 SO-posts 做笔记,我编写了我希望能工作的代码,但不是。 问题似乎是通过添加以前的解决方案,我删除了一些变量,但是它们在以后的解决方案中返回了? 目前我只是想解决 a 或 b 或 c。 ...
我对 MaxSat 有一个想法,并且已经使用 MSU3 以及使用 minisat API 的顺序编码实现了一个简单的 Maxsat 求解器我想知道是否有办法加快这个求解器的速度。 我附带了这篇论文: https://www.researchgate.net/publication/26493666 ...
我知道上述两种算法都属于迭代解决方案,以找到 MAXSAT 问题的最佳解决方案,但我想知道为什么从可满足方面开始,同时为 MAXSAT 找到解决方案比从不可满足方面搜索更好? 同样在这里,可满足方面意味着放宽所有可能的软条款,直到我们达到 UNSAT 和不可满足方面意味着从不放宽条款开始增加数量,直 ...
我和我的朋友从标题收到问题来解决。 我们发现了很好用的 SAT Solver Cryptominisat 。 我们还发现了一篇关于将 VTML 转换为 Sat Article的长文章。 我们将从 python 生成规则/限制。 我们实际上发现了将整个 Graph 转换为 Boolean 规则的障碍 ...
我有两个逻辑 output 我知道它们在逻辑上是等效的(使用 SAT 求解器证明)。 现在我从两个信号中选择相同的位。 我可以说既然完整的信号是等效的,那么子信号也将是等效的吗? 例如。 N 位信号 - Signal-1 和 Signal-2 这两者在逻辑上是等效的。 现在我从 Signal-1 ...
minisat 中是否有任何 API 调用来提取 unsat 核心或任何其他相同的方法。 我想为求解器的每次调用提取 unsat 核心,然后在 unsat 核心上工作。 ...
我知道,给定最多 k 个 N 工具,我可以通过将其更改为最多 (nk) 个 N 来获得至少 K 个 N。 但我似乎无法理解这是怎么回事。 我可能会遗漏一些非常微不足道的东西 例如,如果 K=2 且 N=6,那么 6 个中的至少 2 个等于 6 个中的最多 4 个 任何帮助,将不胜感激 ...
一般来说,一阶逻辑是Undecidable 。 然而,一阶逻辑的一些片段如一元逻辑、BSR 片段、分离片段是可判定的。 存在将 SAT/SMT 求解器求解为 Z3 的工具。 是否有任何工具/语言可以检查 FOL 公式的可满足性? ...
给定每个变量和两个方程的一组可能值,我编写了下面的代码来获取确切的变量值。 但是 Z3 给出了 Unsat 的结果。 我创建了 7 个实例并将它们组合成一个实例。 并将实例传递给 z3 求解器。 但是得到不满意的结果作为响应,但显然可以看出存在一个有效的解决方案。 下面是我写的代码: ...
我正在尝试使用Z3py优化基于最小化的集合覆盖问题(SCP41)的实例。 结果如下: 运用 (1)我知道Z3支持优化( https://rise4fun.com/Z3/tutorial/optimization )。 很多时候我在SCP41和其他情况下达到了最佳状态,有些则没 ...
Z3 输入格式是SMT-LIB 2.0标准定义的格式的扩展。 输入表达式需要以前缀形式书写。 例如rise4fun , x + (y * 2) = 20需要以“ (= (+ x (* 2 y)) 20)) ”的形式给出输入。 Z3 支持JAVA API 。 例如,让我们考虑以下评估和检查可 ...
我正在尝试在我的程序生成的一堆 cnf 编码上运行 SAT 求解器。 我已经通过自制软件在我的笔记本电脑 (MacOS) 上安装了 minisat,我可以在终端上运行 minisat,如下所示: $ minisat INPUT_FILE.cnf OUTPUT_FILE.txt 但是因为我有数百种 ...
我正在研究 CDCL SAT-Solver。 我不知道如何实现非时间顺序回溯。 这甚至可以通过递归实现还是只能在迭代方法中实现。 实际上我所做的 jet 是实现了一个 DPLL Solver,它可以与递归一起使用。 与 DPLL 和 CDCL 的最大区别在于树中的回溯不是按时间顺序排列的。 甚至有 ...
我目前正在使用ocaml 4.06.0,并且正在尝试使用Z3 sat求解器。 我正在使用opam的绿洲来编译文件(这将成功构建所有文件)。 但是,当我运行生成的本机代码时,出现以下错误: error while loading shared libraries: libz3.so 。 我尝 ...
DPLL SAT 求解器通常应用Phase Saving启发式方法。 这个想法是记住每个变量的最后一次赋值,并首先在分支中使用它。 为了试验分支极性和相位节省的效果,我尝试了几个 SAT 求解器并修改了相位设置。 都是Windows 64 位端口,以单线程模式运行。 我总是使用中等复杂度的相同示 ...
这是我的程序,当图中存在循环时返回SAT,而在没有循环时返回UNSAT: 我想在没有周期时获得模型(UNSAT)。 我意识到我应该使用命令(get-unsat-core)并将选项设置为(set-option:produce-unsat-cores true): 我收到此错误: ...