PP定義とBPP定義の違いの具体的な理解


9

PPBPPの定義方法について混乱しています 。が言語の特性関数であると仮定します。Mは確率的チューリングマシンです。次の定義は正しいですか:BPP = \ {\ mathcal {L}:Pr [\ chi(x)\ ne M(x)] \ geq \ frac {1} {2} + \ epsilon \ quad \ forall x \ in \ mathcal {L}、\ \ epsilon> 0 \} PP = \ {\ mathcal {L}:Pr [\ chi(x)\ ne M(x)]> \ frac {1} {2} \}LχL
P P = { LPがR [ χ X M X ] > 1BPP={L:Pr[χ(x)M(x)]12+ϵxL, ϵ>0}
PP={L:Pr[χ(x)M(x)]>12}

定義が間違っている場合は、最小限の変更を加えて修正してください(つまり、カウンティングマシンまたは一部の変更されたモデルを使用する他の同等の定義を指定しないでください)。どちらの定義でも確率の条件をきちんと区別できません。

微妙な点について明確な洞察を持ついくつかの具体的な例は非常に役立ちます。

回答:


10

それは私には正しいようです。BPPとPPの違いは、BPPの場合、確率は定数1/2より大きい必要があることですが、PPの場合、確率は1/2 + 1/2 ^ nになる可能性があります。したがって、BPP問題の場合、少数の繰り返しで確率増幅を実行できますが、一般的なPP問題の場合はできません。1/2 1/2+1/2n


12

Vorの答えは標準的な定義です。違いをもう少し直感的に説明してみましょう。

LET言語用の有界誤差確率多項式時間アルゴリズムである回答正確確率で少なくともその。ましょう入力となるの入力の大きさ。、L 、P MLXNp12+δxn

任意のアルゴリズムとアルゴリズムを区別するのは、を受け入れる確率とを受け入れる確率の間の正のギャップです。B P Pのx L X L PPBPPxLxLの本質的なことは、ギャップが少なくともです。この違いが重要であり、が効率的なアルゴリズム(等しいと推測されても)であると見なすことができる理由を説明しようとしますが、は非効率であると見なされます(実際には含まれるN - O 1 B P P PBPPnO(1)BPPPP P N PPPPPNP)。これはすべて、このギャップから生じます。

まず、を注意深く見てみましょう。PP

アルゴリズムが実行中に最大でランダムビットを使用し、エラー確率がより小さい場合、エラー確率は実際にはであり、ランダムビットを選択できないことに注意してください。アルゴリズムが正しく答えないようにします。2 r n 0r(n)2r(n)0

さらに、時間実行しているアルゴリズム以上を使用することができないワーストケース実行時間と確率的アルゴリズムのエラーもしそうであれば、ランダムビットより良好ですt n t n t(n)t(n)t(n)

同様の議論により、を受け入れる確率とを受け入れる確率の差が小さすぎる場合は、ほとんど差がない場合と同様であることがわかります。同様にケース。X L P PxLxLPP

それでは移りましょう。BPP

確率的アルゴリズムでは、正しく答える確率を高めることができます。たとえば、エラー確率(指数的に小さなエラー)の場​​合に、正しさの確率をにブーストしたいとします。ϵ = 2 n1ϵϵ=2n

アイデアは単純です数回実行して、大多数の答えを受け取ります。M

エラー確率が最大でになるようにを何回実行する必要がありますか?回。証明はこの回答の最後にあります。ε Θ δ - 1 LG ε MϵΘ(δ1lgϵ)

ここで、ここで説明するアルゴリズムは多項式時間である必要があることを考慮してみましょう。つまり、多項式で何回も実行することはできません。言い換えれば、またはより簡単にΘ δ - 1 LN ε = N O 1 MΘ(δ1lnϵ)=nO(1)

δ1lgϵ=nO(1)

この関係は、有界エラー確率アルゴリズムをエラー確率に応じてクラスに分類します。エラー確率がか、正の定数(つまり、変化しない)であるか、またはあるかの違いはありません。多項式時間内にとどまりながら、これらの1つから他の1つに移動できます。2 n n 1ϵ2nn12nO(1)

ただし場合小さすぎる、と言うである、、あるいはそして、私たちは正確確率を高め、十分に誤り確率を減少させる方法はありません。入る。0 2 - N、N - ω 1 B P Pδ02nnω(1)BPP

ここでの主なポイントは、では、エラー確率を指数関数的に効率的に削減できるため、回答についてほぼ確実であり、このクラスのアルゴリズムを効率的なアルゴリズムと見なすことができるということです。エラーの確率は、ハードウェア障害が発生する可能性が非常に高くなるか、または確率論的アルゴリズムによってエラーを発生させるよりも、コンピューターに流星が落下する可能性が高くなるほど減らすことができます。BPP

それがために真実ではない、我々は、エラー確率を減少させる任意の方法を知らないと、我々は残っているほとんど我々は完全に、確率があるれていない(我々は答えを得るためにコインを投げることによって応答されるかのように半分ではありませんが、その状況に非常に近いです)。PP


このセクションでは、エラー確率得るという証拠が得られる我々はギャップを有するアルゴリズムで始まる場合我々は実行する必要が回。1ϵ(12δ,12+δ)M Θ(δ1lgϵ)

してみましょう実行されるアルゴリズムでため倍して、大多数の答えに応じて応答します。簡単にするために、が奇数であると仮定して、タイを持たないようにします。NkMkk

場合を考えてみましょう。の場合も同様です。次に、 の正確さの確率を分析するには、実行が受け入れます。xLxL

Pr{M(x) accepts}=p12+δ
Nkk

レッツあれば1も番目の実行が受け入れるとなるそれが拒否した場合。独立したランダムビットを使用するため、各実行は他の実行から独立しています。したがって、はある独立したブール確率変数です Xii0Xi

E[Xi]=Pr{Xi=1}=Pr{M(x) accepts}=p12+δ

LET。過半数が受け入れる確率、つまりの確率を推定する必要があります。Y=Σi=1kXiYk2

Pr{Nk(x) accepts}=Pr{Yk2}

どうやってするの?期待値に近い確率の集中を示すチャーノフ境界を使用できます。期待値を持つ確率変数について、Zμ

Pr{|Zμ|>αμ}<eα24μ

これは、が期待値からである確率が増加につれて指数関数的に減少することを示しています。の確率を制限するために使用します。ZαμμαY<k2

期待値の線形性により、

E[Y]=E[Σi=1kXi]=Σi=1kE[Xi]=kpk2+kδ

これで、チャーノフ境界を適用できます。の確率の上限が必要です。チャーノフ限界は、の確率に上限を与えますで十分です。我々は持っていますY<k2|Y(k2+kδ)|>kδ

Pr{|Ykp|>αkp}<eα24kp

そして、となるようにを選択した場合、これで完了なので、。ααkp=kδα=δp2δ2δ+1

したがって、

Pr{Y<k2}Pr{|Y(k2+kδ)|>kδ}Pr{|Ykp|>αkp}<eα24kp

あなたが計算をするとあなたはそれを見るでしょう

α24kpδ24δ+2k=Θ(kδ)

我々は持っています

Pr{Y<k2}<eΘ(kδ)

エラーを最大でにしたいので、ϵ

eΘ(kδ)ϵ

言い換えれば

Θ(δ1lgϵ)k

ここでの重要なポイントの1つは、プロセスでさらに多くのランダムビットを使用し、実行時間も増加することです。つまり、最悪の場合のの実行時間は、実行時間のおよそ倍になります。NkkM

ここでギャップの中間点はでした。しかし、一般的にはこれが当てはまる必要はありません。受け入れの大多数の代わりに他の分数を取ることにより、他の値にも同様の方法を採用できます。12


7

表記法を使用する:

BPP={L:確率多項式時間チューリングマシンし、コスタントがM,0<c1/2xPr[χL(x)=M(x)]12+c}

M XPP={L:確率的な多項式時間チューリングマシンため、MxPr[χL(x)=M(x)]>12}

違いはadrianNによって指摘されており、ウィキペディアのPPとBPPを比較することもできます。

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