RP (complexitate)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În teoria complexității de calcul , RP ( Randomized Polynomial Time ) este clasa de complexitate a problemelor de decizie efectuate pe o mașină probabilistică de Turing .

Putem defini și o clasă foarte apropiată: co-RP .

Definiție

O primă definiție

Clasa RP este ansamblul de probleme, sau într-un mod echivalent de limbaje , pentru care există o mașină probabilistică de Turing în timp polinomial care îndeplinește următoarele condiții de acceptare:

  • Dacă cuvântul nu este în limbă, aparatul îl respinge.
  • Dacă cuvântul este în limba, aparatul îl acceptă cu o probabilitate mai mare de 1/2.

Se spune că mașina „nu funcționează decât pe o parte”.

Definiție formală

Pentru un polinom cu dimensiunea de intrare , este definit , setul de limbi pentru care există o mașină probabilistică de Turing , la timp , astfel încât pentru fiecare cuvânt :

  • .
  • .

Apoi RP poate fi definit ca: .

Rolul constantei

Constanta 1/2 este de fapt arbitrară, puteți alege orice număr (constant) între 0 și 1 (cu excepția) [1] .

Ideea este că prin efectuarea calculului independent de un număr polinomial de ori , poate reduce probabilitatea de eroare la În cazul în care (în timp ce păstrează un răspuns sigur în caz ).

Clasa co-RP

Clasa co-RP este setul de limbi pentru care există o mașină probabilistică de Turing în timp polinomial care îndeplinește următoarele condiții de acceptare:

  • Dacă cuvântul este în limba, aparatul îl acceptă.
  • Dacă cuvântul nu este în limbă, aparatul îl respinge cu o probabilitate mai mare de 1/2.

(Aceeași observație pentru constantă.)

Relațiile cu alte clase

Cu cursuri „clasice”

Avem următoarea relație cu clasele P și NP :

Demonstrație

Folosim definiția unei mașini probabilistice Turing cu bandă aleatorie.

: doar faceți calculul mașinii din P (ignorând banda aleatorie); probabilitatea de eroare este atunci zero în ambele cazuri (aparținând sau nu).

: Fie M o mașină care decide în timp polinomial . Este construită o mașină M 'de NP care oferă o bandă aleatorie astfel încât M să accepte. Dacă banda dorită chiar acceptă M, atunci M 'acceptă, altfel respinge.

Dacă există o bandă „bună”, deoarece M nu este greșit, cuvântul considerat este în . Reciproc, dacă cuvântul este în , M acceptă cu o probabilitate de cel puțin 1/2, adică M acceptă pe jumătate din casetele aleatorii; prin urmare, există cel puțin o bandă aleatorie care face ca aceasta să fie acceptată și, prin urmare, M 'o prevede și o acceptă.

Observăm că această clasă nu mai este interesantă dacă P = NP .

Cu celelalte clase probabiliste

Includeri de clase de complexitate probabilistică

Următoarele incluziuni pun în joc clasele ZPP și BPP .

Acest lucru rezultă direct din definiții: ZPP este intersecția dintre RP și co-RP și BPP cu condiții de acceptare mai puțin stricte (eroare „pe două fețe”).

Probleme în RP și co-RP

Cele ale RP sunt probleme pentru care există un algoritm probabilistic care îndeplinește condițiile descrise mai sus.

De exemplu, problema cunoașterii dacă un întreg este prim se află în clasa de complexitate co-RP datorită testului de primărie Miller-Rabin . De fapt, această problemă este aceeași în P , datorită testului de primărie AKS .

O problemă de co-RP care nu se știe că se află în P este problema „ testării identității polinomiale ”, care constă, dat fiind un polinom multivariat în orice formă, în a decide dacă este identic nul sau nu. Datorită lemei Schwartz-Zippel , polinoamele nule pot fi recunoscute cu o probabilitate bună prin evaluarea lor într-un număr mic de puncte.

Istorie

Clasa complexității RP a fost introdusă de John Gill [2] în articolul Complexitatea calculațională a mașinilor probabilistice Turing ( Gill (1977) ).

Notă

  1. ^ Arora și Barak (2009) , capitolul 7 .
  2. ^ Complexity Zoo , pe complexzozoo.uwaterloo.ca . Adus la 12 martie 2014 (arhivat din original la 21 iulie 2017) .

Bibliografie

linkuri externe