Minisat 中的 Unsat 核心

Unsat core in Minisat

minisat 中是否有任何 API 调用来提取 unsat 核心或任何其他方法。

我想为求解器的每次调用提取 unsat 核心,然后处理 unsat 核心。

MiniSat 在这一点上是一个相当古老的程序。至少,您应该查看使用 -c 选项进入 recent SAT competition, e.g. Glucose. The competitions have required SAT solvers to emit DRAT proofs of unsatisfiability since 2013. Run whichever solver you choose and have it dump its DRAT proof into proof.out. Feed proof.out into the drat-trim 实用程序的解算器之一,它将生成 DIMACS 格式的 UNSAT 核心。即

drat-trim originalproblem.cnf proof.out -c core.cnf

请注意,您不必使用 MiniSat 克隆;任何发出 DRAT 证明的现代求解器都可以将其证明输入 drat-trim 以产生 UNSAT 核心。