質問

次の質問があります:

\ begin {align} L_2={a、k \ \ mid \ text {aは3dnf(同族の通常の形式)と} \\です。 \ text {instries $ k $ x句を満たす$ Z $が存在する$ Z $} \} \ end {align}

$ l_2 \ in $ npc。

$ npは比較的簡単です、その部分をスキップします。

$ \ leq_p l_2 $ $ npcであることを示すようにします。スパン>(VCは、そのNPCで知っている頂点カバー)

iは、次の関数を定義しました $ f $

$$ f(g、k)=(a、k)$$

私は各ノード $ i $ $ g $ のようなものを考えました。リテラル $ x_i $ 、および3DNF形式で、 $ A=BIGVEE(x_i \ WEDGE X_I \ WEDGE X_I) $ ここで、 $ 1 \ leq i \ leq n $ ここで、 $ n $ は数の数です。 $ g $ のノード。 $ z $ を次のように定義することができます。 $ z $ を閉じる $ K $ 句は、 $ '1' $ リテラル $ x_i $ ノード $ i $ がvcに入っており、 $ '0' $ がそうでなければ、そのような $ Z $ が存在します。

$(g、k)\ in $ vc $ \ incipe(a、k) L_2 $ では、明示的にこのような $ z $ を表示しているため、 $ k $ を示しています。包囲;

しかし、他方の側が $(g、k)\ in $ vc $ "であるとわかりません\ Incifies(a、k)\ nではなく、サイズ $ k $ にVCを持っていないグラフが与えられますが、予定だと思いますa(span class="math-container"> $ a=bigvee(x_i \ wedge x_i \ wedge x_i)$ )$ を見つけることができます $ z $ 厳密に $ k $ 句を守る(実際には $ z $ を見つけることができます。 $ x $ $ 1 \ leq x \ leq n $ ここで $ n $ は、 $ g $ のノード数です。

だから私の減少は存在しませんか?

役に立ちましたか?

解決

問題を抱えている理由は、あなたの解決策が機能しないためです。特に、問題は、式がVC問題ステートメントをキャプチャしないことです。より正確には、 $ k $ 変数を設定するだけで、常にビルドする数式は常に $ k $ 句を満たす割り当てを持っています。 trueと休んでからfalseへ。

では、 $ g=(v、e)$ $ x \ subeteqv $ $ g $ のVCになります。 その後、Edge $ vw \ in $ の場合、 $ v \ x x $ または $ w \ x $ で、私達に3つの相互に排他的な可能性を与えます( $ v \ vee w $ を本質的に書き換えることによって)。 DNF):

  • $ v \ in x $ ですが $ w \ notin x $
  • $ v \ notin x $ ですが x $
  • $ v \ x $ $ w \ x $

したがって、エッジ $ vw $ は、式<の場合に限り、 $ x $ でカバーされています。 SPAN CLASS="Math-Container"> $ \ PSI(vw)=(v \ wedge w)\ vee(\ gred v wedg w)\ vee(v \ wedge \ neg w)$ chentified句( $ x $ に対応する代入下)。

各エッジのためのそのような式を構築し、それらの異議を唱えると、DNF式が得られます $$ \ psi ^ \ text {vc}(g)=bigvee_ {e \ in e \ psi(e)=bigvee_ {vw \ in e}(V \ Wedge w)\ vee(\ Neg V \ Wedge w)\ vee(v \ wedge \ neg w)$$ $ | e | $ 句は $ g $ のVCでなければなりません。 これで、VCのサイズをすべて符号化する方法が必要です。 定義する $$ \ psi(g)=psi ^ \ text {vc}(g)\ vee \ bigvee_ {v \ in v} v $$ そして、2番目の部分の満足句の数は、我々が選択する頂点のセットのサイズによって与えられるので、いくつかのVC $ g $ の$ x $ は $ | e | + | X | $

ここに残っている問題が1つしかありません。 VCに対応していないが、望ましいVCがより多くの範囲を満たすための頂点を含む任意の頂点を得ることができる。 対策として、最初の式を繰り返すことができます $ | v | + 1 $ 時刻が、選択した頂点の数に関係なく、満たされた句の総数は常に低すぎます。

したがって最終式を得る $$ \ psi ^ \ AST(g)=bigvee_ {i= 1} ^ {| V | + 1} \ psi ^ \ text {vc}(g)\ vee \ bigvee_ {v \ in v} v $$ そして、 $ g $ の場合、vc $ x $ がある場合、対応する割り当ては正確に $(| | v | + 1)\ cdot | e | + | X | x | $ \ psi ^ \ ast(g)$ 。 逆方向には、 $ \ alpha $ をいくつか割り当てする $(| v | + 1)\ cdot | e | .. + k $ $ \ PSI ^ \ AST(G)$ 。 その後、 $ \ alpha $ は、gのg内のVCをgで表す必要があります。 $ \の最初の部分の満足句の数PSI ^ \ AST(g)$ $(| + 1)\ Cdot(| | - 1)= | V | \ Cdot | e | + | e | - | V | - 1 $ として、 $ \ alpha $ として、 $ | $ 第二の部分では、満足した節の総数は最大になります $$(| V | + 1)\ cdot(| | - 1)+ | V |= | V | \ Cdot | e | + | e | - 1 <(| V | + 1)\ Cdot | e | $$ ただし、これは、最初の部分の満足のある句の総数が厳密に $(| v | + 1)\ Cdot | e | $ 、したがって正確に< Span Class="Math-Container"> $ k $ 2番目の部分の句は、 $ \ alpha $ によって満たされます。 $ \ alpha $ size $ k $のvc $ x_ \ alpha $ に対応 $ g $

明確にするために、 $ 3 $ -dnf式を指定しませんでした。ただし、 $ \ psi ^ \ ass(g)$ のすべての句は、 $ 2 $ あなたはjusのことができます

t節に冗長リテラルを追加して、それらを抽出する $ 3 $ が必要な場合は

これがこれを行うための最良の方法であることはわかりませんが、それはうまくいくはずです。私は簡潔さのためのいくつかの詳細を省略しました。

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top