这是用Haskell编写的用于解决SAT的经典DPLL算法的简单实现 它使用Happy解析器来解析公式。 要运行它只需 cabal install alex cabal install happy cabal configure cabal run < cnf
2023-04-04 15:36:33 9KB Haskell
1
小 SAT 求解器 强调代码的简单性,而不是性能,至少现在是这样 灵感来自: 运行基准 您可以从这里下载 .cnf 文件 ,提取文件以便 Makefile 可以看到它们(例如,提取 uf20-91.tar.tar.gz)。 gz 进入目录“uf20-91”,确保该目录包含在 SRC 变量中) 去做 看了minisat论文,界面不是很好... 有协程吗? 尝试找到一种方法来解决所有可能的解决方案,知道我们只会得到第一个 CNF / 基准 介绍 ( ) 进一步阅读 维基百科 http://en.wikipedia.org/wiki/Boolean_satisfiability_problem http://en.wikipedia.org/wiki/Satisfiability_Modulo_Theories http://en.wikipedia.org/wiki/DPLL_a
2022-12-22 20:08:21 13KB Dylan
1
cdcl-sat-solver 用于大学课程的用Java实现的CDCL SAT求解器。 先决条件 Java 8 测试用例 样本测试用例 文件夹inputs中提供了一些示例CNF公式。 生成新的测试用例 在src/com/kentnek/cdcl/FormulaHelper.java运行main()方法。 生成的CNF公式将被写入inputs/generated文件夹。 运行求解器 使用所需测试用例的路径更新src/com/kentnek/cdcl/Main.java中的INPUT_FILE_PATH常量的值。 运行main()方法。 如果公式是可满足的,则求解器将输出一个分配并进行验证。 如果公式不满足要求,则求解器将生成反驳证明,对其进行验证并将其写入proofs文件夹中的输出文件。 作者 肯特·阮( Kent Nguyen) -初期工作- 执照 此项目已获得MIT许可证的许可-
2021-11-05 20:22:19 2.01MB Java
1
完整的SAT解算器练习 简单的完整SAT求解器。 您可以在找到该存储库的副本。 解算器 $ python solvers/ *[] *仅适用于base_sat.py 解算器列表: solver_exp.py:实验性求解器(太慢,无法正常工作) original_dpll.py:基本求解器,随机选择 base_sat.py:具有更多分支启发式方法的求解器 linked_sat.py:具有链表结构的求解器(仅适用于JW分支启发式) race_sat.py:具有2面jeroslow wang分支启发式的base_solver noflags_linked_sat.py:不带标志的linked_sat.py的更快版本 base_sat分支启发法 FRE (弗里曼(Freeman))
2021-08-21 01:15:40 14KB python sat-solver dpll-algorithm Python
1