cnf文件下载:http://people.sc.fsu.edu/~jburkardt/data/cnf/cnf.html
一、Minisat
简介:MiniSAT是简约的求解器,开源的布尔可满足问题求解器。给SAT求解器一个逻辑命题,包含与或非逻辑符号以及若干布尔变量,SAT求解器根据这个表达式判定该逻辑命题是否可满足从而决定该命题是否成立。
下载:https://github.com/niklasso/minisat
编译:
1. exportMROOT=<minisat-dir>
2. cd { core | simp }
3. gmake rs (or make rs)
4. cp minisat_static<minisat-dir>
运行:
输入文件 | 输出文件 | 可满足性 |
simple_v3_c2.cnf | simple_v3_c2.out | Satisfiable |
输入文件 | 输出文件 | 可满足性 |
aim-50-1_6-yes1-4.cnf | aim-50-1_6-yes1-4.out | Satisfiable |
输入文件 | 输出文件 | 可满足性 |
aim-100-1_6-no-1.cnf | aim-100-1_6-no-1.out | Unsatisfiable |
二、Sat4j
简介:SAT4j基于Minisat,是一个用Java实现的SAT求解器,其支持可满足问题、部分极大可满足问题和带权的极大可满足问题。
运行:java -jar org.sat4j.core.jar <Cnf File>
输入文件 | 可满足性 |
simple_v3_c2.cnf | Satisfiable |
输入文件 | 可满足性 |
aim-50-1_6-yes1-4.cnf | Satisfiable |
输入文件 | 可满足性 |
aim-100-1_6-no-1.cnf | Unsatisfiable |