📜  SAT是NP完整的证明

📅  最后修改于: 2021-04-23 05:23:26             🧑  作者: Mango

SAT问题 SAT(布尔可满足性问题)是确定是否存在满足给定布尔公式的解释的问题。它询问给定布尔公式的变量是否可以用值TRUE或FALSE一致地替换,从而使公式的计算结果为TRUE 。在这种情况下,该公式称为“可满足的” 。另一方面,如果不存在这样的分配,则对于所有可能的变量分配,由公式表示的函数为FALSE ,并且该公式不满足

问题给定布尔公式f ,问题在于确定公式f是否具有令人满意的赋值。

说明问题的一个实例是为问题指定的输入。问题的一个例子是布尔公式f 。由于NP完全问题既是NP又是NP-Hard的问题,所以证明问题是NP-Complete的证明或陈述包括两部分:

如果仅满足第二个条件,则该问题称为NP-Hard

但是不可能将每个NP问题一直化为另一个NP问题以始终显示其NP完全性,即表明一个问题是NP完全的,然后证明该问题在NP中,并且任何NP完全问题都可以还原为。也就是说,如果B是NP完全且B≤P C对于NP中的C,则C是NP完全。因此,可以使用以下命题来验证SAT问题是否是NP-Complete:

SAT在NP中
NP中有任何问题,然后给出“证书”,这是问题的解决方案,并且是问题的实例(布尔公式f ),我们将可以检查(标识解决方案是否正确)证书在多项式时间内这可以通过检查给定的变量分配是否满足布尔公式来完成。

SAT是NP-Hard
为了证明这个问题是NP-Hard然后减少了一个已知问题,在这种情况下Circuit-SAT对我们的问题进行了处理。布尔电路C可以更正为布尔公式,如下所示:

  • 对于每条输入线,添加一个新变量y i
  • 对于每条输出线,添加一个新变量Z。
  • 为每个门准备一个方程。
  • 这些组方程由分离,并在末处加入∩ž。

可以在线性时间内完成此转换。现在,以下命题成立:

  • 如果存在一组满足电路要求的输入,可变值,则可以得出满足公式的公式f的赋值。这可以通过计算电路中每个门的输出来模拟。
  • 如果公式f有令人满意的赋值,则可以在除去新添加的变量后满足布尔电路。

例如:如果下面是电路,则:

因此, SAT问题是NP完全的。