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)(yy¯)

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

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

SATpDouble-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.