Vorの答えは標準的な定義です。違いをもう少し直感的に説明してみましょう。
LET言語用の有界誤差確率多項式時間アルゴリズムである回答正確確率で少なくともその。ましょう入力となるの入力の大きさ。、L 、P ≥MLXNP ≥ 12+ δバツん
任意のアルゴリズムとアルゴリズムを区別するのは、を受け入れる確率とを受け入れる確率の間の正のギャップです。B P Pのx ∈ L X ∉ L PPBPPx∈Lx∉Lの本質的なことは、ギャップが少なくともです。この違いが重要であり、が効率的なアルゴリズム(等しいと推測されても)であると見なすことができる理由を説明しようとしますが、は非効率であると見なされます(実際には含まれるN - O (1 ) B P P PBPPn−O(1)BPPPP P N PPPPPNP)。これはすべて、このギャップから生じます。
まず、を注意深く見てみましょう。PP
アルゴリズムが実行中に最大でランダムビットを使用し、エラー確率がより小さい場合、エラー確率は実際にはであり、ランダムビットを選択できないことに注意してください。アルゴリズムが正しく答えないようにします。2 − r (n ) 0r(n)2−r(n)0
さらに、時間実行しているアルゴリズム以上を使用することができないワーストケース実行時間と確率的アルゴリズムのエラーもしそうであれば、ランダムビットより良好ですt (n )t (n )t(n)t(n)t(n)
同様の議論により、を受け入れる確率とを受け入れる確率の差が小さすぎる場合は、ほとんど差がない場合と同様であることがわかります。同様にケース。X ∉ L P Px∈Lx∉LPP
それでは移りましょう。BPP
確率的アルゴリズムでは、正しく答える確率を高めることができます。たとえば、エラー確率(指数的に小さなエラー)の場合に、正しさの確率をにブーストしたいとします。ϵ = 2 − n1−ϵϵ=2−n
アイデアは単純です数回実行して、大多数の答えを受け取ります。M
エラー確率が最大でになるようにを何回実行する必要がありますか?回。証明はこの回答の最後にあります。ε Θ (δ - 1 LG ε )MϵΘ(δ−1lgϵ)
ここで、ここで説明するアルゴリズムは多項式時間である必要があることを考慮してみましょう。つまり、多項式で何回も実行することはできません。言い換えれば、またはより簡単にΘ (δ - 1 LN ε )= N O (1 )MΘ(δ−1lnϵ)=nO(1)
δ−1lgϵ=nO(1)
この関係は、有界エラー確率アルゴリズムをエラー確率に応じてクラスに分類します。エラー確率がか、正の定数(つまり、変化しない)であるか、またはあるかの違いはありません。多項式時間内にとどまりながら、これらの1つから他の1つに移動できます。2 − n n 1ϵ2−nn12−nO(1)
ただし場合小さすぎる、と言うである、、あるいはそして、私たちは正確確率を高め、十分に誤り確率を減少させる方法はありません。入る。0 2 - N、N - ω (1 ) B P Pδ02−nn−ω(1)BPP
ここでの主なポイントは、では、エラー確率を指数関数的に効率的に削減できるため、回答についてほぼ確実であり、このクラスのアルゴリズムを効率的なアルゴリズムと見なすことができるということです。エラーの確率は、ハードウェア障害が発生する可能性が非常に高くなるか、または確率論的アルゴリズムによってエラーを発生させるよりも、コンピューターに流星が落下する可能性が高くなるほど減らすことができます。BPP
それがために真実ではない、我々は、エラー確率を減少させる任意の方法を知らないと、我々は残っているほとんど我々は完全に、確率があるれていない(我々は答えを得るためにコインを投げることによって応答されるかのように半分ではありませんが、その状況に非常に近いです)。PP
このセクションでは、エラー確率得るという証拠が得られる我々はギャップを有するアルゴリズムで始まる場合我々は実行する必要が回。(1ϵ(12−δ,12+δ)M Θ(δ−1lgϵ)
してみましょう実行されるアルゴリズムでため倍して、大多数の答えに応じて応答します。簡単にするために、が奇数であると仮定して、タイを持たないようにします。NkMkk
場合を考えてみましょう。の場合も同様です。次に、
の正確さの確率を分析するには、実行が受け入れます。x∈Lx∉L
Pr{M(x) accepts}=p≥12+δ
Nkk
レッツあれば1も番目の実行が受け入れるとなるそれが拒否した場合。独立したランダムビットを使用するため、各実行は他の実行から独立しています。したがって、はある独立したブール確率変数です
Xii0Xi
E[Xi]=Pr{Xi=1}=Pr{M(x) accepts}=p≥12+δ
LET。過半数が受け入れる確率、つまりの確率を推定する必要があります。Y=Σki=1XiY≥k2
Pr{Nk(x) accepts}=Pr{Y≥k2}
どうやってするの?期待値に近い確率の集中を示すチャーノフ境界を使用できます。期待値を持つ確率変数について、Zμ
Pr{|Z−μ|>αμ}<eα24μ
これは、が期待値からである確率が増加につれて指数関数的に減少することを示しています。の確率を制限するために使用します。ZαμμαY<k2
期待値の線形性により、
E[Y]=E[Σki=1Xi]=Σki=1E[Xi]=kp≥k2+kδ
これで、チャーノフ境界を適用できます。の確率の上限が必要です。チャーノフ限界は、の確率に上限を与えますで十分です。我々は持っていますY<k2|Y−(k2+kδ)|>kδ
Pr{|Y−kp|>αkp}<e−α24kp
そして、となるようにを選択した場合、これで完了なので、。ααkp=kδα=δp≤2δ2δ+1
したがって、
Pr{Y<k2}≤Pr{|Y−(k2+kδ)|>kδ}≤Pr{|Y−kp|>αkp}<e−α24kp
あなたが計算をするとあなたはそれを見るでしょう
α24kp≤δ24δ+2k=Θ(kδ)
我々は持っています
Pr{Y<k2}<e−Θ(kδ)
エラーを最大でにしたいので、ϵ
e−Θ(kδ)≤ϵ
言い換えれば
Θ(δ−1lgϵ)≤k
ここでの重要なポイントの1つは、プロセスでさらに多くのランダムビットを使用し、実行時間も増加することです。つまり、最悪の場合のの実行時間は、実行時間のおよそ倍になります。NkkM
ここでギャップの中間点はでした。しかし、一般的にはこれが当てはまる必要はありません。受け入れの大多数の代わりに他の分数を取ることにより、他の値にも同様の方法を採用できます。12