BPP (complessità): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 49:
In pratica, una probabilità di errore di 1/3 potrebbe non essere accettabile, tuttavia, la scelta di 1/3 nella definizione è arbitraria. Può essere qualsiasi [[Costante matematica|costante]] fra 0 e 1/2 (esclusiva) e l'insieme '''BPP''' sarà immutato. Non dece essere nemmeno costante: la same classe di problemi è dedinita consentendo un errore elevato fino a 1/2 − ''n''<sup>−''c''</sup> da un lato, o richiedendo un errore piccolo fino a 2<sup>−''n<sup>c</sup>''</sup> dall'altro, dove ''c'' è una qualsiasi costante positiva, ed ''n'' è la lunghezza dell'input. L'idea è che c'è una probabilità di errore, ma se l'algoritmo è eseguito molte volte, la possibilità che la maggior parte delle esecuzioni siano sbagliate [[Decadimento esponenziale|cala esponenzialmente]] come conseguenza del [[vincolo di Chernoff]].<ref>[http://www.cs.sfu.ca/~kabanets/cmpt710/lec16.pdf]</ref> Questo rende possibile creare un algoritmo estremamente accurato semplicemente eseguendo l'algoritmo parecchie volte e prendendo un "voto a maggioranza" delle risposte. Ad esempio, se si è definita la classe con la restrizione che l'algoritmo possa essere sbagliato con probabilità al massimo 1/2<sup>100</sup>, questo darebbe luogo alla stessa classe di problemi.
<!--▼
== Definizione ==
Un linguaggio ''L'' è in '''BPP''' se e solo se esiste una macchina di Turing probabilistica ''M'', tale che
* ''M'' funziona per un tempo polinomiale su tutte le immissioni
* For all ''x'' in ''L'', the fraction of strings ''y'' of length ''p''(|''x''|) which satisfy ''M(x,y)'' = 1 is greater than or equal to 2/3▼
*
* Per tutti gli ''x'' non in ''L'', ''M'' emette 1 con probabilità minore o uguale a 1/3
Diversamente dalla classe di complessità '''[[ZPP (complessità)|ZPP]]''', è richiesto che la macchina ''M'' funzioni per un tempo polinomiale su tutte le immissioni, indipendentemente dall'esito dei lanci casuali di monete.
Alternativamente, '''BPP''' può essere definito usando soltanto macchine di Turing deterministiche. Un linguaggio ''L'' è in '''BPP''' se e solo se esiste un tempo polinomiale ''p'' e una macchina di Turing deterministica ''M'', tali che
* ''M'' funziona per un tempo polinomiale su tutte le immissioni
▲*
* Per tutti gli ''x'' non in ''L'', la frazione di stringhe ''y'' di lunghezza ''p''(|''x''|) che soddisfano ''M(x,y)'' = 1 è minore o uguale a 1/3
In questa definizione, la stringa ''y'' corrisponde al risultato dei lanci casuali di monete che la macchina di Turing probabilistica avrebbe fatto. Per alcune applicazioni questa definizione è preferibile poiché non menziona le macchine di Turing probabilistiche.
▲<!--
== Problems ==
{{unsolved|computer science|Is '''P''' {{=}} '''BPP''' ?}}
|