La réponse de Vor donne la définition standard. Permettez-moi d'essayer d'expliquer la différence un peu plus intuitivement.
Soit M un algorithme à temps polynomial probabiliste d'erreur bornée pour un langage L qui répond correctement avec une probabilité d'au moins p≥12+δ. Soitxl'entrée etnla taille de l'entrée.
Ce qui distingue un arbitraire algorithme à partir d' un B P P algorithme est l' écart positif entre la probabilité d'accepter x ∈ L et la probabilité d'acceptation x ∉ L . PPBPPx∈Lx∉LL'essentiel de est que l'écart est au moins n - O ( 1 ) . Je vais essayer d'expliquer pourquoi cette distinction est significative et permet de considérer B P P comme des algorithmes efficaces (même conjecturés pour être égaux à PBPPn−O(1)BPPP) alors que est considéré comme inefficace (en fait P P contient N P ). Tout cela vient de cet écart.PPPPNP
Commençons par regarder plus attentivement.PP
Notez que si un algorithme utilise au plus bits aléatoires pendant son exécution et que la probabilité d'erreur est inférieure à 2 - r ( n ) alors la probabilité d'erreur est en fait de 0 , il ne peut y avoir de choix de bits aléatoires qui rendront l'algorithme répondre incorrectement.r(n)2−r(n)0
De plus, un algorithme avec un temps d'exécution ne peut pas utiliser plus de t ( n ) bits aléatoires, donc si l'erreur d'un algorithme probabiliste avec le pire temps d'exécution t ( n ) est meilleure quet(n)t(n)t(n)
Avec un argument similaire, nous pouvons montrer que le cas où la différence entre la probabilité d'accepter un et la probabilité d'accepter un x ∉ L est trop petite est similaire au cas où nous n'avons presque pas de différence comme dans P P cas.x∈Lx∉LPP
Allons maintenant en voie .BPP
Dans les algorithmes probabilistes, nous pouvons augmenter la probabilité de répondre correctement. Disons que nous voulons augmenter la probabilité de correction à pour une probabilité d'erreur ϵ = 2 - n (erreur exponentiellement petite).1−ϵϵ=2−n
L'idée est simple: lancez plusieurs fois et prenez la réponse de la majorité.M
Combien de fois faut-il exécuter pour que la probabilité d'erreur soit au plus ϵ ? Θ ( δ - 1 lg ϵ ) fois. La preuve est donnée au bas de cette réponse.MϵΘ(δ−1lgϵ)
Prenons maintenant en considération que les algorithmes dont nous discutons doivent être polynomiaux. Cela signifie que nous ne pouvons pas exécuter plus de plusieurs fois de façon polynomiale. En d'autres termes, Θ ( δ - 1 ln ϵ ) = n O ( 1 ) , ou plus simplementMΘ(δ−1lnϵ)=nO(1)
δ−1lgϵ=nO(1)
Cette relation classe les algorithmes probabilistes d'erreur bornée en classes en fonction de leur probabilité d'erreur. Il n'y a pas de différence entre la probabilité d'erreur étant 2 - n ou une constante positive (c'est-à-dire ne change pas avec n ) ou 1ϵ2−nn. On peut passer de l'un à l'autre tout en restant dans le temps polynomial.12−nO(1)
Toutefois , si est trop petit, disons 0 , 2 - n , ou même n - ω ( 1 ) nous n'avons pas une façon de renforcer la probabilité exactitude et de réduire la probabilité d'erreur suffisamment pour entrer dans B P P .δ02−nn−ω(1)BPP
Le point principal ici est que dans nous pouvons réduire efficacement la probabilité d'erreur de façon exponentielle, nous sommes donc presque certains des réponses et c'est ce qui nous fait considérer cette classe d'algorithmes comme des algorithmes efficaces. La probabilité d'erreur peut être réduite à tel point qu'une défaillance matérielle est plus probable ou même qu'un météore tombant sur l'ordinateur est plus probable que de commettre une erreur par l'algorithme probabiliste.BPP
Ce n'est pas vrai pour , nous ne savons pas comment réduire la probabilité d'erreur et nous nous retrouvons presque comme si nous répondions en lançant une pièce pour obtenir la réponse (nous ne sommes pas complètement, les probabilités ne sont pas à moitié et moitié, mais il est très proche de cette situation).PP
Cette section donne la preuve que pour obtenir la probabilité d'erreur lorsque l'on part d'un algorithme avec gap ( 1ϵnous devrions exécuterMΘ(δ-1lgϵ)fois.(12−δ,12+δ)M Θ(δ−1lgϵ)
Soit l'algorithme qui exécute M pendant k fois, puis répond selon la réponse de la majorité. Pour simplifier, supposons que k est impair, donc nous n'avons pas de liens.NkMkk
Prenons le cas que . Le cas x ∉ L est similaire. Alors
P r { M ( x ) accepte } = p ≥ 1x∈Lx∉L
Pour analyser la probabilité d'exactitude deNk,nous devons estimer la probabilité que la majorité deskexécutions acceptent.
Pr{M(x) accepts}=p≥12+δ
Nkk
Soit Xje 1 si le ème passage accepte et 0 s'il le rejette. Notez que chaque exécution est indépendante des autres car elles utilisent des bits aléatoires indépendants. Ainsi, X i s sont des variables aléatoires booléennes indépendantes où
E [ X i ] = P r { X i = 1 } = P r { M ( x ) accepte } = p ≥ 1je0Xje
E [ Xje] = P r { Xje= 1 } = P r { M( x ) accepte } = p ≥ 12+ δ
Soit . Nous devons estimer la probabilité que la majorité accepte, c'est-à-dire la probabilité que Y ≥ kOui= Σki = 1Xje .Oui≥ k2
P r { Nk( x ) accepte } = P r { Y≥ k2}
Comment faire? Nous pouvons utiliser la borne de Chernoff qui nous indique la concentration de probabilité proche de la valeur attendue. Pour toute variable aléatoire de valeur attendue μ , nous avonsZμ
P r { | Z- μ | > α μ } < eα24μ
Zα μμαOui<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
Nous avons donc
Pr{Y<k2}≤Pr{|Y−(k2+kδ)|>kδ}≤Pr{|Y−kp|>αkp}<e−α24kp
et si vous faites les calculs, vous verrez que
α24kp≤δ24δ+2k=Θ(kδ)
on a
Pr{Y<k2}<e−Θ(kδ)
ϵ
e−Θ(kδ)≤ϵ
ou en d'autres termes
Θ(δ−1lgϵ)≤k
NkkM
12