3SATのランダム化アルゴリズム


8

3SATを指定すると、(期待どおりに)句の少なくとも7/8を満たす割り当てを生成する非常に単純なランダム化アルゴリズムがあります。ランダム割り当てを選択します。ランダム割り当ては、各句を確率7/8で満たします。したがって、期待値の線形性は、ランダム割り当てによって満たされる句の期待される割合が7/8であることを示します。

これは決定論的な方法で行うことができますか?もしそうなら、なぜランダム化アルゴリズムに興味があるのですか?

回答:


6

ランダム割り当てアルゴリズムは、条件付き期待値の方法を使用して、ランダム化(決定論的)できます。

3SATインスタンスをC1,,Cm句で構成するとします。アルゴリズムの実行中に、変数に値を割り当てます。条項Cスコアは次のように定義されます。C

  • 場合はC満たされ、そのスコアが1です。
  • 場合C成立し、有していないk割り当てられていないリテラルそのスコアは、12k

最初に、各句のスコアは、123=7/8、等合計スコアがある(7/8)m。変数x1,,xnに順に値を割り当てます。変数x1,,xi1に値を割り当て、現在の合計スコアがS=S(C1)++S(Cm)。LETS0,S1、我々は値割り当てると、合計スコア0,1(それぞれ)にxi。私は、任意の条項 CについてS0(C)+S1(C)=2S(C)であると主張しているため、 S 0 + S 1 = 2 Sです。確かに:CS0+S1=2S

  • 場合C満たされる(のみ与えられx1,,xi1)または含まないxi、次にS0(C)+S1(C)=2S(C)
  • Cx iを含むk割り当てられていないリテラルが含まれているとします。次に、S C = 1 2 kS 0C = 1 2 k 1 、およびS 1C = 1です。したがって、 S 0C + S 1C = [xiS(C)=12kS0(C)=12(k1)S1(C)=1
    S0(C)+S1(C)=[122k]+1=2(12k)=2S(C).
  • 場合にも、同様の引数は働きC含まれているx¯i

S0+S1=2SS0SS1SSS

(7/8)mC120=0(7/8)m

決定論的アルゴリズムがあるのに、なぜランダム化アルゴリズムに関心があるのでしょうか。いくつかの理由があります。

  1. ランダム化されたアルゴリズムははるかに単純です。
  2. ランダム化されたアルゴリズムは、潜在的に高速です。
  3. ランダム化されたアルゴリズムは、条件付き期待の方法を使用して決定論的アルゴリズムに変換できます。これは決定論的アルゴリズムを構築するためのレシピと考えることができます。

P=BPP

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