📜  双SAT是NP完成

📅  最后修改于: 2021-05-20 07:00:28             🧑  作者: Mango

问题陈述给定公式f ,问题是确定f是否具有两个令人满意的赋值。

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

如果仅满足第二个条件,则该问题称为NP-Hard
但是不可能始终将每个NP问题都简化为另一个NP问题以显示其NP完整性。因此,要证明问题是NP完全的,则证明问题出在NP上,并且任何NP完全问题都可简化为该问题,即,如果B是NP完全且B≤P C。对于NP中的C,则C为NP-Complete。因此,可以使用以下命题证明Double SAT问题是NP-Complete:

  1. 双卫星在NP中
    如果NP中存在任何问题,则给它一个“证书”,它是问题的解决方案和问题的实例(公式f ),则它可以识别多项式中的证书(无论解决方案是否正确)时间。这可以通过给一组满足对于F中的变量赋值来完成,并验证是否每个子句f中满足。
  2. Double Sat是NP-Hard
    为了证明双坐是NP-Hard,然后将已知的NP-Hard问题3-SAT(在这种情况下)减少到我们的问题。
    这可以通过以下方式完成:
    给定一个3-CNF函数g,然后通过向f的每个子句添加一对字面量(x V x’)来创建布尔函数f ,其中x是一个附加变量。这种减少可以在多项式时间内起作用。
    现在,以下两个命题成立:
    • 如果g不满足,则g的某些子句必须为FALSE ,因此f也必须为不满足的。
    • 如果3-SAT公式g是可满足的,则使用g中包含的同一组赋值变量,我们可以将x = 0x = 1都作为对g的有效赋值。

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