python - 将逻辑门转换为 cnf python

标签 python sat cnf

我有一个从门对象创建的面向对象的逻辑电路 (类似于这里的第二个例子:

http://www.openbookproject.net/books/pythonds/Introduction/ObjectOrientedProgramminginPythonDefiningClasses.html )

我需要将电路表示为 CNF: 例如https://ibb.co/W2Z4M3y

有什么库可以做到这一点吗? 或者任何其他解决方案?

最佳答案

有两个库:

Sympy它具有 to_cnf 函数以及 to_dnf 函数。

同样还有 PyEDA它还具有 to_cnfto_dnf 函数。

您应该检查这两个文档,看看哪一个适合您的需要。

您可以使用Pysathq将文本转换为 DIMACS CNF 格式

关于python - 将逻辑门转换为 cnf python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67416582/

相关文章:

python - 在每隔一行的开头和结尾添加引号,忽略空行

python - 如何在 Django 过滤器中使用 AND?

sat - MiniSat 中非决策变量的语义是什么?

algorithm - 为什么 WSAT 优于模拟退火?

constraints - pyeda方法 "to abstract syntax tree"

python - mod_wsgi 在压力下失败

python - Apache 2.4 无法在 Yosemite 上加载 mod_wsgi.so

z3 - 如何在 SMTLIB/Z3/CVC4 中声明 forall 量词?

从 Linux 终端加载 Java 类

c - 关于 SAT 求解器和 cnf 文件