将问题转换为CIRCUIT-SAT

时间:2015-07-29 16:54:30

标签: sat

我有兴趣将部分加权最大SAT转换为SAT。我被推荐通过CIRCUIT SAT。

部分加权最大SAT由一组硬条款和一组加权软条款组成。我们寻求一个满足所有硬条款的任务,并从软条款中获得至少一个k的权重。

我如何将其编码为布尔组合电路?

我可以看到如何轻松编码硬条款。但是我如何编码软条款,并将权重与它们相关联,并确保通过令人满意的赋值来实现至少为k的权重?

由于

1 个答案:

答案 0 :(得分:1)

您需要将Partial Weighted Max SAT编码为伪布尔问题。

只需将硬条款视为权重较高的加权条款,并调整目标值(总和)。

要将其编码为SAT公式,您可以使用SMT求解器中嵌入的技术,例如:

要了解如何,这是一篇来自MiniSAT +创作者的文章(Translating Pseudo-Boolean Constraints into SAT),他将帮助您理解。

从SAT到Circuit SAT,你将不得不使用Tseitin transformation,你的问题将得到解决:)。