Comprensione concreta della differenza tra definizioni di PP e BPP


9

Sono confuso su come sono definiti PP e BPP . Supponiamo χ è la funzione caratteristica di un linguaggio L . M essere la probabilistica Turing Machine. Le seguenti definizioni sono corrette:
BPP={L:Pr[χ(x)M(x)]12+ϵxL, ϵ>0}
PP={L:Pr[χ(x)M(x)]>12}

Se la definizione è errata, provare ad apportare modifiche minime per renderle corrette (ovvero non fornire altre definizioni equivalenti che utilizzano la macchina di conteggio o un modello modificato). Non riesco a distinguere correttamente le condizioni sulla probabilità su entrambe le definizioni.

Alcuni esempi concreti con una chiara visione dei punti sottili sarebbero molto utili.

Risposte:


10

Mi sembra corretto. La differenza tra BPP e PP è che per BPP la probabilità deve essere superiore a per una costante , mentre per PP potrebbe essere 1 / 2 + 1 / 2 n . Quindi per i problemi di BPP puoi fare l'amplificazione di probabilità con un piccolo numero di ripetizioni, mentre per i problemi di PP generale non puoi.1/2 1/2+1/2n


12

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.p12+δ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 . PPBPPxLxLLa 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 PBPPnO(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)2r(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.xLxLPP

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ϵϵ=2n

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ϵ2nn. Possiamo passare da uno di questi all'altro rimanendo nel tempo polinomiale.12nO(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 .δ02nnω(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 1xLxL Per analizzare la probabilità di correttezza diNkdobbiamo stimare la probabilità che la maggior parte dellecorsekaccettino.

Pr{M(x) accepts}=p12+δ
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}=p12+δ

Sia . Dobbiamo stimare la probabilità che la maggioranza accetta, cioè la probabilità che Y kY=Σi=1kXi .Yk2

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

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[Σi=1kXi]=Σi=1kE[Xi]=kpk2+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{|Ykp|>αkp}<eα24kp

e se scegliamo α tale che abbiamo finito, allora scegliamo α = δαkp=kδ .α=δp2δ2δ+1

Pertanto abbiamo

Pr{Y<k2}Pr{|Y(k2+kδ)|>kδ}Pr{|Ykp|>α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.


7

Usando la tua notazione:

un probabilistica polinomiale Turing macchina M , e una costante 0 < c 1 / 2 tali chexBPP={L:M,0<c1/2xPr[χL(x)=M(x)]12+c}

PP={L:MxPr[χL(x)=M(x)]>12}

La differenza è stata evidenziata da AdrianN e puoi anche dare un'occhiata a Wikipedia PP vs BPP

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.