Vor's Antwort gibt die Standarddefinition. Lassen Sie mich versuchen, den Unterschied etwas intuitiver zu erklären.
Sei ein Algorithmus mit begrenzter fehlerwahrscheinlicher Polynomzeit für eine Sprache L , die mit einer Wahrscheinlichkeit von mindestens p ≥ 1 korrekt antwortetM.L.. Seixdie Eingabe undndie Größe der Eingabe.p ≥ 12+ δxn
Was einen beliebigen -Algorithmus von einem B P P -Algorithmus unterscheidet, ist die positive Lücke zwischen der Wahrscheinlichkeit, x ∈ L zu akzeptieren, und der Wahrscheinlichkeit, x ∉ L zu akzeptieren . PPBPPx∈Lx∉LDas Wesentliche an ist, dass die Lücke mindestens n - O beträgt ( 1 ) . Ich werde versuchen zu erklären, warum diese Unterscheidung von Bedeutung ist und es uns ermöglicht, B P P als effiziente Algorithmen zu betrachten (sogar als P angenommenBPPn−O(1)BPPP) wohingegen als ineffizient angesehen wird (tatsächlich enthält P P N P ). All dies kommt von dieser Lücke.PPPPNP
Beginnen wir mit einem genaueren Blick auf PP
Es ist zu beachten, dass, wenn ein Algorithmus während seiner Ausführung höchstens Zufallsbits verwendet und die Fehlerwahrscheinlichkeit kleiner als 2 - r ( n ) ist, die Fehlerwahrscheinlichkeit tatsächlich 0 ist , es keine Auswahl von Zufallsbits geben kann, die den Algorithmus machen antworte falsch.r(n)2−r(n)0
Darüber hinaus kann ein Algorithmus mit der Laufzeit nicht mehr als t ( n ) Zufallsbits verwenden. Wenn also der Fehler eines probabilistischen Algorithmus mit der Laufzeit t ( n ) im ungünstigsten Fall besser ist alst(n)t(n)t(n)
Mit einem ähnlichen Argument können wir zeigen, dass der Fall, in dem der Unterschied zwischen der Wahrscheinlichkeit, ein zu akzeptieren, und der Wahrscheinlichkeit, ein x ∉ L zu akzeptieren, zu gering ist, dem Fall ähnlich ist, in dem wir fast keinen Unterschied wie in haben P P Fall.x∈Lx∉LPP
Lassen Sie uns nun in Richtung bewegen .BPP
In probabilistischen Algorithmen können wir die Wahrscheinlichkeit für eine korrekte Antwort erhöhen. Angenommen, wir möchten die Korrektheitswahrscheinlichkeit auf erhöhen, beispielsweise die Fehlerwahrscheinlichkeit ϵ = 2 - n (exponentiell kleiner Fehler).1−ϵϵ=2−n
Die Idee ist einfach: Führen Sie mehrmals aus und nehmen Sie die Antwort der Mehrheit.M
Wie oft sollten wir ausführen , um die Fehlerwahrscheinlichkeit auf höchstens ϵ zu bringen ? Θ ( δ - 1 lg ϵ ) mal. Der Beweis wird am Ende dieser Antwort gegeben.MϵΘ(δ−1lgϵ)
MΘ(δ−1lnϵ)=nO(1)
δ−1lgϵ=nO(1)
ϵ2−nn12−nO(1)
δ02−nn−ω(1)BPP
BPP
PP
ϵ(12−δ,12+δ)M Θ(δ−1lgϵ)
NkMkk
x∈Lx∉L
Pr{M(x) accepts}=p≥12+δ
Nkk
Xii0Xi
E[Xi]=Pr{Xi=1}=Pr{M(x) accepts}=p≥12+δ
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
Deshalb haben wir
Pr{Y<k2}≤Pr{|Y−(k2+kδ)|>kδ}≤Pr{|Y−kp|>αkp}<e−α24kp
und wenn Sie die Berechnungen durchführen, werden Sie das sehen
α24kp≤δ24δ+2k=Θ(kδ)
wir haben
Pr{Y<k2}<e−Θ(kδ)
ϵ
e−Θ(kδ)≤ϵ
oder mit anderen Worten
Θ(δ−1lgϵ)≤k
NkkM
12