DOUBLE-SATがNP完全であることの証明


13

参考のために、よく知られているSAT問題をここで定義します。

DOUBLE-SAT問題は次のように定義されます

DOUBLE-SAT={⟨ϕ⟩∣ϕ has at least two satisfying assignments}

NP完全であることをどのように証明しますか?

証明する方法は複数あります。

回答:


25

1つの解決策を次に示します。

明らかダブルSATが属する次のようにNTMダブル-SATを決定することができるので、:ブール入力式でφ (X 1、... 、xはN)、非決定的2つの割り当てを推測し、両方満たしているかどうかを確認しますφNPϕ(x1,…,xn)ϕ。

Double-SATが完全であることを示すために、次のようにSATからDouble-SATに縮約します。NP

入力:ϕ(x1,…,xn)

  1. 新しい変数導入します。y
  2. 出力式。ϕ′(x1,…,xn,y)=ϕ(x1,…,xn)∧(y∨y¯)

場合 SATに属し、その後、φは、少なくとも1つの満足割り当て、従って有するφ '(X 1、... 、X N、Yを)我々が満たすことができるように少なくとも2つの満足割り当てを有します新しい句(Y ∨ ˉ Yのいずれかで割り当てることにより)、Y = 1またはY = 0を新たな変数にYので、φ '(Xϕ(x1,…,xn)ϕϕ′(x1,…,xn,y)y∨y¯y=1y=0yϕ′x1、...、、y)∈Double -SAT。xny∈

一方、、その後明らかにφ '(X 1、... 、X N、Y )= φ (X 1、... 、xはN)∧ (Y ∨ ˉ yは)ので、いずれか全く満足割り当てを有していないφ '(X 1、... 、Xはϕ(x1,…,xn)∉SATϕ′(x1,…,xn,y)=ϕ(x1,…,xn)∧(y∨y¯)ϕ′(x1,…,xn,y)∉Double-SAT。

SAT≤pDouble-SATNP


それは私の提案よりもいいです。
— ラファエル

10

SATSATDOUBLE-SAT

φ, the formula φ∨f(φ) has at least twice the number of satisfying assingments as φ, with f a homomorphism that renames all variables to new names.

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.