SAT问题: SAT(布尔可满足性问题)是确定是否存在满足给定布尔公式的解释的问题。它询问给定布尔公式的变量是否可以用值TRUE或FALSE一致地替换,从而使公式的计算结果为TRUE 。在这种情况下,该公式称为“可满足的” 。另一方面,如果不存在这样的分配,则对于所有可能的变量分配,由公式表示的函数为FALSE ,并且该公式不满足。
问题:给定布尔公式f ,问题在于确定公式f是否具有令人满意的赋值。
说明:问题的一个实例是为问题指定的输入。问题的一个例子是布尔公式f 。由于NP完全问题既是NP又是NP-Hard的问题,所以证明问题是NP-Complete的证明或陈述包括两部分:
- The problem itself is in NP class.
- All other problems in NP class can be polynomial-time reducible to that.
(B is polynomial-time reducible to C is denoted as ≤ PC)
如果仅满足第二个条件,则该问题称为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完全的。