鉴于一系列条款,我想首先检查它们是否令人满意。如果它们是,我想简化它们并创建CNF,例如,(a OR b)^(NOT b)应简化为:a ^(NOT b)。我只使用命题公式。我试图使用Java SAT4j库来做到这一点。它可以告诉我这些条款是否可以满足,但似乎没有任何方法可以让我返回简化的CNF。我能做些什么来有效地简化CNF?是否有任何Java或Python实现?
答案 0 :(得分:3)
您可以使用Norbert Manthey的 Riss3g Coprocessor来简化您的CNF
。
SAT
解算器minisat 2允许store the preprocessed CNF
in a file。
Lingeling,来自奥地利的SAT
求解程序有一个选项"-s"
来简化CNF
条款。
要将布尔表达式转换为简化的CNF
,您可以使用bc2cnf。