La risposta di Vor fornisce la definizione standard. Vorrei provare a spiegare la differenza un po 'più intuitivamente.
Sia un algoritmo probabilistico a tempo polinomiale limitato per un linguaggio L che risponde correttamente con probabilità almeno p ≥ 1ML. Siaxl'input enla dimensione dell'input.p≥12+δxn
Ciò che distingue un arbitrario algoritmo da un B P P algoritmo è il gap positivo tra la probabilità di accettare x ∈ L e la probabilità di accettare x ∉ L . PPBPPx∈Lx∉LLa cosa essenziale di è che il divario è almeno n - O ( 1 ) . Proverò a spiegare perché questa distinzione è significativa e ci consente di considerare B P P da considerare algoritmi efficienti (anche ipotizzati pari a PBPPn−O(1)BPPP) mentre è considerato inefficiente (attualmente P P contiene N P ). Tutto questo deriva da questo divario.PPPPNP
Cominciamo guardando con più attenzione.PP
Si noti che se un algoritmo utilizza al massimo bit casuali durante la sua esecuzione e la probabilità di errore è inferiore a 2 - r ( n ), allora la probabilità di errore è effettivamente 0 , non ci sarà alcuna scelta di bit casuali che renderà l'algoritmo rispondere in modo errato.r(n)2−r(n)0
Inoltre, un algoritmo con tempo di esecuzione non può utilizzare più di t ( n ) bit casuali, quindi se l'errore di un algoritmo probabilistico con il tempo di esecuzione nel caso peggiore t ( n ) è migliore dit(n)t(n)t(n)
Con un argomento simile possiamo dimostrare che il caso in cui la differenza tra la probabilità di accettare una e la probabilità di accettare una x ∉ L è troppo piccola è simile al caso in cui non abbiamo quasi alcuna differenza come in Caso P P.x∈Lx∉LPP
Passiamo ora verso .BPP
Negli algoritmi probabilistici, possiamo aumentare la probabilità di rispondere correttamente. Diciamo che vogliamo aumentare la probabilità di correttezza a per dire probabilità di errore ϵ = 2 - n (errore esponenzialmente piccolo).1−ϵϵ=2−n
L'idea è semplice: esegui più volte e prendi la risposta della maggioranza.M
Quante volte dovremmo eseguire per ottenere la probabilità di errore al massimo ϵ ? Θ ( δ - 1 lg ϵ ) volte. La prova è fornita in fondo a questa risposta.MϵΘ(δ−1lgϵ)
Consideriamo ora che gli algoritmi di cui stiamo discutendo devono essere polinomiali. Ciò significa che non possiamo eseguire più del polinomio molte volte. In altre parole, Θ ( δ - 1 ln ϵ ) = n O ( 1 ) , o più semplicementeMΘ(δ−1lnϵ)=nO(1)
δ−1lgϵ=nO(1)
Questa relazione classifica gli algoritmi probabilistici di errore limitati in classi in base alla loro probabilità di errore. Non vi è alcuna differenza tra la probabilità di errore essere 2 - n o una costante positiva (cioè non cambia con n ) o 1ϵ2−nn. Possiamo passare da uno di questi all'altro rimanendo nel tempo polinomiale.12−nO(1)
Tuttavia, se è troppo piccolo, diciamo 0 , 2 - n , o anche n - ω ( 1 ) , allora non abbiamo un modo di aumentare la probabilità di correttezza e riducendo la probabilità di errore sufficiente per entrare in B P P .δ02−nn−ω(1)BPP
Il punto principale qui è che in possiamo ridurre in modo esponenziale la probabilità di errore in modo esponenziale, quindi siamo quasi certi delle risposte e questo è ciò che ci fa considerare questa classe di algoritmi come algoritmi efficienti. La probabilità di errore può essere ridotta al punto che è più probabile che si verifichi un guasto hardware o che una meteora che cade sul computer sia più probabile che commettere un errore dall'algoritmo probabilistico.BPP
Questo non è vero per , non conosciamo alcun modo per ridurre la probabilità di errore e restiamo quasi come se stessimo rispondendo lanciando una moneta per ottenere la risposta (non siamo completamente, le probabilità non sono la metà e mezzo, ma è molto vicino a quella situazione).PP
Questa sezione fornisce la prova che per ottenere la probabilità di errore quando iniziamo con un algoritmo con gap ( 1ϵdovremmo eseguireMΘ(δ-1lgϵ)volte.(12−δ,12+δ)M Θ(δ−1lgϵ)
Sia l'algoritmo che esegue M per k volte e quindi risponde in base alla risposta della maggioranza. Per semplicità, supponiamo che k sia strano, quindi non abbiamo legami.NkMkk
Si consideri il caso che . Il caso x ∉ L è simile. Quindi
P r { M ( x ) accetta } = p ≥ 1x∈Lx∉L
Per analizzare la probabilità di correttezza diNkdobbiamo stimare la probabilità che la maggior parte dellecorsekaccettino.
Pr{M(x) accepts}=p≥12+δ
Nkk
Lascia che sia 1 se l' i run è accettato e sia 0 se rifiuta. Si noti che ogni esecuzione è indipendente dalle altre in quanto utilizzano bit casuali indipendenti. Quindi X i sono variabili casuali booleane indipendenti in cui
E [ X i ] =Xii0Xi
E[Xi]=Pr{Xi=1}=Pr{M(x) accepts}=p≥12+δ
Sia . Dobbiamo stimare la probabilità che la maggioranza accetta, cioè la probabilità che Y ≥ kY=Σki=1Xi .Y≥k2
Pr{Nk(x) accepts}=Pr{Y≥k2}
Come farlo? Possiamo usare il limite di Chernoff che ci dice la concentrazione di probabilità vicino al valore atteso. Per ogni variabile casuale con valore atteso μ , abbiamoZμ
Pr{|Z−μ|>αμ}<eα24μ
che dice che la probabilità che sia α μ distante dal suo valore atteso μ diminuisce esponenzialmente all'aumentare di α . Lo useremo per limitare la probabilità di Y < kZαμμα .Y<k2
Si noti che per linearità di aspettativa abbiamo
E[Y]=E[Σki=1Xi]=Σki=1E[Xi]=kp≥k2+kδ
Ora possiamo applicare il limite di Chernoff. Vogliamo un limite superiore sulla probabilità di . Il limite di Chernoff darà un limite superiore alla probabilità di| Y-(kY<k2che è sufficiente. abbiamo|Y−(k2+kδ)|>kδ
Pr{|Y−kp|>αkp}<e−α24kp
e se scegliamo α tale che abbiamo finito, allora scegliamo α = δαkp=kδ .α=δp≤2δ2δ+1
Pertanto abbiamo
Pr{Y<k2}≤Pr{|Y−(k2+kδ)|>kδ}≤Pr{|Y−kp|>αkp}<e−α24kp
e se fai i calcoli lo vedrai
α24kp≤δ24δ+2k=Θ(kδ)
noi abbiamo
Pr{Y<k2}<e−Θ(kδ)
Vogliamo che l'errore sia al massimo , quindi vogliamoϵ
e−Θ(kδ)≤ϵ
o in altre parole
Θ(δ−1lgϵ)≤k
Un punto essenziale qui è che nel processo useremo molti più bit casuali e anche il tempo di esecuzione aumenterà, vale a dire il tempo di esecuzione nel caso peggiore di Nk sarà approssimativamente volte l'esecuzione del tempo di M .kM
Qui il punto centrale del divario era 12 . Ma in generale questo non deve essere il caso. Possiamo adottare un metodo simile per altri valori prendendo altre frazioni al posto della maggioranza per accettarle.